Java中有 8 种基本数据类型,分别为:
6 种数字类型 :byte、short、int、long、float、double
1 种字符类型:char
1 种布尔型:boolean。
这八种基本类型都有对应的包装类分别为:Byte、Short、Integer、Long、Float、Double、Character、Boolean
基本类型 | 位数 | 字节 | 默认值 |
---|---|---|---|
int | 32 | 4 | 0 |
short | 16 | 2 | 0 |
long | 64 | 8 | 0L |
byte | 8 | 1 | 0 |
char | 16 | 2 | ‘u0000’ |
float | 32 | 4 | 0f |
double | 64 | 8 | 0d |
boolean | 1 | false |
Byte,Short,Integer,Long4 种包装类默认创建了数值[-128,127] 的相应类型的缓存数据;
Character 创建了数值在[0,127]范围的缓存数据;
Boolean 直接返回 True Or False。
如果超出对应范围仍然会去创建新的对象。
应用场景:
Integer i1=40;
Java 在编译的时候会直接将代码封装成 Integer i1=Integer.valueOf(40);
,从而使用常量池中的对象。
Integer i1 = new Integer(40);
这种情况下会创建新的对象。
Integer i1 = 40;
Integer i2 = new Integer(40);
System.out.println(i1 == i2); //false
但是下面这种情况,则需要考虑缓存的范围:
Integer a = 3, b = 3, c = 150, d = 150;
System.out.println(a == b); // true
System.out.println(c == d); // false