基本数据类型包装类:Java将基本数据类型值封装成了对象。封装成对象有什么好处?——这样可以提供更多操作基本数值的功能。
基本数据类型:byte short int long float double boolean char
对应的类:Byte Short Integer Long Float Double Boolean Character
基本数据类型 | 包装类 | 长 度 |
---|---|---|
byte | Byte | 一个字节 |
short | Short | 两个字节 |
int | Integer | 四个字节 |
long | Long | 八个字节 |
float | Float | 四个字节 |
double | Double | 八个字节 |
boolean | Boolean | 一个字节 |
char | Character | 两个字节 |
最大值,最小值
System.out.println("int最小值:" + Integer.MIN_VALUE);
System.out.println("int最大值:" + Integer.MAX_VALUE);
int最小值:-2147483648
int最大值:2147483647
System.out.println("byte最小值:" + Byte.MIN_VALUE);
System.out.println("byte最大值:" + Byte.MAX_VALUE);
byte最小值:-128
byte最大值:127
System.out.println("double最小值"+Double.MIN_VALUE);
System.out.println("double最大值"+Double.MAX_VALUE);
double最小值4.9E-324
double最大值1.7976931348623157E308
System.out.println("float最小值"+Float.MIN_VALUE);
System.out.println("float最大值"+Float.MAX_VALUE);
float最小值1.4E-45
float最大值3.4028235E38
Integer
1.int是基本数据类型,Integer是包装类,是一个类
2.int类型的变量初始值为0,而Integer包装类初始值为null
3.Integer类的作用一是在类中拥有很多方法,方便Int和其他数据类型进行转换,比如parseInt()和toString()方法等等,二是:ArrayList或HashMap存数据时不能用基本类型,只能用包装类
自动装箱和自动拆箱
自动拆箱
Integer ii=200;
int ib=200;
自动装箱
int ab=200;
Integer ac=ab;
Integer a=100;
int b=100;
System.out.println(a==b);
自动拆箱,输出true
Integer ia=new Integer("100");
Integer ib=new Integer("100");
System.out.println(ia == ib); //输出 false
System.out.println(ia.equals(ib)); //输出 true
解释:ia==ib 为false 原因是创建的两个新对象,在内存中放一样的位置
ia.equals(ib) equals 比较的是两个的值 所以true
Integer i = new Integer(100);
int j = 100;
System.out.print(i == j);//true
解释:当一个 integer 变量和一个 int变量比较时,只要两个变量的值相等,那么结果就是true,因为 integer 本质是 int 的一个封装类,当两数比较时,java会自动将 integer拆包,所以本质上就是两个int 变量的比较。
Integer i = new Integer(100);
Integer j = 100;
System.out.print(i == j);//false
解释:当一个 new 创建的 Integer 变量和一个非 new 创建的 Integer 变量比较时,结果为false。因为非 new 创建的变量存在 java 常量池中,而 new 创建的变量指向堆中新建的对象,两者的内存地址不同。
Integer i = 110;
Integer j = 110;
System.out.print(i == j);//true
Integer c=130;
Integer d=130;
System.out.println(c==d); //false
解释:当两个非 new 的 Integer 变量比较时,如果两个变量的值在-128到127之间,那么结果就是 true,否则是 false。
欢迎大家指点指点是否还有些地方没有考虑周全的。