八种基本数据类型的包装类
byte ——Byte
short ——Short
int ——Integer
long-----Long
float-----Float
double----Double
char----Character
boolean---Boolean
自动装箱拆箱
-
自动装箱
Integer i=15;
-
自动拆箱
int i=new Integer(15);
引用数据类型是不能赋值给基本类型的,这里是自动拆箱的机制
int a1=1; Integer b1=1; a1==b1 true
int a2=333; Integer b2=333; a2==b2 ture
Integer a3=1; Integerb3=1; a3==b3 ture
Integer a4=333; Integerb4=333; a4==b4 false
Java自动拆箱和装箱。在自动装箱时,把int变成Integer的时候是有规则的,当你的int的值在
-128-IntegerCache.high(127) 时,返回的不是一个新new出来的Integer对象,而是一个已经缓存在堆 中的Integer对象,(我们可以这样理解,系统已经把-128到127之 间的Integer缓存到一个Integer数组中去了,如果你要把一个int变成一个Integer对象,首先去缓存中找,找到的话直接返回引用给你就 行了,不必再新new一个),如果不在-128-IntegerCache.high(127) 时会返回一个新new出来的Integer对象。
Integer a1=new Integer(5);
Integer a2=new Integer(5);
a1==a2 false new两个对象
Integer a1= Integer.valueOf(5);
Integer a2= Integer.valueOf(5);
a1==a2 true 装箱
Integer a1= Integer.valueOf(333);
Integer a2= Integer.valueOf(333);
a1==a2 false
-
int-->String
1.String s=i+””;
2.String s=Integer.toString(i);
3.String s=String.valueOf(i);
-
String-->int
1.int i=new Integer(s); 通过包裹类的构造方法
2.int i=Integer.parseInt(s);
3.int i=Integer.valueOf(s);