基本数据类型-----------------> 包装类
byte --------------------------------->Byte
short --------------------------------->Short
int --------------------------------->Integer
long ---------------------------------> Long
float --------------------------------->Float
double --------------------------------->Double
char --------------------------------->Character
boolean ---------------------------------> Boolean
自动拆装箱:
1.自动装箱 : 基本 --> 引用
2.自动拆箱 : 引用 --> 基本
基本类型与包装类对象比较问题 :
1.两个int类型比较,值相等就相等
2.两个new Integer比较,肯定不相等,new就新的地址
3.int与Integer|new Integer比较,只要值相等就相等,因为会先自动拆箱,再比值
4.两个Integer比较,如果值 在[-128,127]之间返回缓冲区对象相等,否则返回new Integer不相等
public class Class001_DataType {
public static void main(String[] args) {
int i = 123;
boolean flag = false;
//自动装箱
Integer in = i; //Integer.valueOf(i)
//自动拆箱
int i2 = in; //in.intValue()
System.out.println(Integer.valueOf(new StringBuilder(i+"").reverse().toString()));
getSum(1.1,2.2);
}
static void getSum(Double d1,Double d2){
System.out.println(d1+d2);
}
}
public class Class002_DataType {
public static void main(String[] args) {
int i1 = 127;
int i2 = 127;
Integer i3 = 127; //Integer.valueOf(127) Integer类valueOf方法内部有缓冲区对象能表示的数值方位[-128,127],其他包装类没有
Integer i4 = 127;
Integer i5 = new Integer(127);
Integer i6 = new Integer(127);
Integer i7 = 128;
Integer i8 = 128;
System.out.println(i1==i2); //T
System.out.println(i5==i6); //F
System.out.println(i3==i6); //F
System.out.println(i1==i6); //T
System.out.println(i1==i3); //T
System.out.println(i4==i3); //T
System.out.println(i7==i8); //F
}
}