1、整数类型
 
在Java中,整数类型包括以下几个:
 
- byte 字节型 (8个bit,也就是1个字节)范围:-128~+127
 - short 短整形(16个bit,也就是2个字节)范围:-32768~+32767
 - int 整形(32个bit,也就是4个字节)最常用的类型:-2147483648 ~ +2147483647
 - long 长整形(64个bit,也就是8个字节)范围:-9223372036854775808 ~ +9223372036854775807
 
 
public class Main {public static void main(String[] args) {byte a=1;short b=10;int c=100;long d=1000;System.out.println(a+b+c+d);}}
 
隐式类型转换:
 
小的类型转大的类型会有隐式类型转换。
 
byte->short->int->long
 
而为变量赋值时也是会将数转为int类型
 
我们可以采用强制类型转换实现大转小
 
可以前面加这个类型名称也可以末尾加提示。
 
public class Main {public static void main(String[] args) {byte a=1;short b=10;int c=100;long d=1000;b=c;  c=d;//ERROR   大的不能隐式转为小的c=b;//True    小的可以隐式转为大的b=(short)c;//True   强制类型转换可以实现大转小a=(byte)d;  //Trued=9999999999999999;//ERROR  整数过大,超过int上限d=9999999999999999L;//True  常量转为long,没超上限System.out.println(a);  //输出为-24} }
 
但是强制类型转换没有考虑是否溢出,比如上述程序若要输出a则为-24。
 

 
因为long里存的值超过byte的范围会发生截断
 
特殊知识点:
 
(1)下划线分割  
 
(2)八进制,十六进制表示
 
 数字前有0为八进制,有0x为十六进制(x大小写均可)
 
public class Main {public static void main(String[] args) {int a=1_000_00_0000; //Trueint b=016;   //True 8进制int c=0x1a;  //True  16进制System.out.println(b);   //输出14,8+6System.out.println(c);  //输出26,16+10}}
 
(3)整数类型均为有符号整型
 
底层存储第一位均为符号位。
 
public class Main {public static void main(String[] args) {int a=2147483647;  a=a+1;byte b=127;       b=(byte)(b+1);   //TrueSystem.out.println(a);   //输出-2147483648System.out.println(b);  //输出-128}}
 
2、浮点类型
 
首先来看看Java中的小数类型包含哪些:
 
- float 单精度浮点型 (32bit,4字节)
 - double 双精度浮点型(64bit,8字节)
 
 
赋值与初始化:
 
浮点常量默认为double,需要强制转换。
 
public class Main {public static void main(String[] args) {float a=3.0;   //ERROR ,常量默认为doubledouble b=18.6;System.out.println(a);   System.out.println(b); }}
 
public class Main {public static void main(String[] args) {float a=3.0F;   // Truedouble b=18.6;System.out.println(a);System.out.println(b);}}
 
double可以隐式转换为float
 
public class Main {public static void main(String[] args) {float a=3.0F;   // Truedouble b=a;     //TrueSystem.out.println(a);System.out.println(b);}}
 
3、字符类型
 
- char 字符型(16个bit,也就是2字节,它不带符号)范围是0 ~ 65535
 - 采用Unicode字符集
 - 编码规则有GBK、UTF-8、UTF-16
 
 
赋值与初始化:
 
用字符赋值或用ACSCII码赋值均可 
 
public class Main {public static void main(String[] args) {char a='A';char b=67;System.out.println(a);System.out.println(b);}}
 
public class Main {public static void main(String[] args) {char a='我';int  b=a;System.out.println(a);  //输出我System.out.println(b);//输出25105}}
 
4、布尔类型
 
 
赋值与初始化:
 
public class Main {public static void main(String[] args) {boolean a=true;boolean b=false;System.out.println(a); System.out.println(b);}}
 
 5、类型转换总结
 
该图含义为下面可以隐式转上面,就是满足两条线的小到大都可以转
 

 
 short、char、byte可以转为int、long、float、double
 
short与char不能互相隐式转换,byte与char不能互相转,byte可以转short
 
但7种数据类型之间可以强转
 
boolean类型不能与其它7种类型相互转换(强转也不行)