/*
*
* 包装类:将基本数据类型包装成一个类
* //为了使基本数据类型能够具备引用数据类型变量的相关特征(封装,继承,多态)
* 除 int -> Integer char -> Character
* 其它基本数据类型 均将开头首字母改为大写如:boolean -> Boolean
* //boolean 是基本数据类型,默认值为false Boolean(引用数据类) 默认值为null
*
* */
public class packageClass {
public static void main(String[] args) {
//基本数据类型转化为包装类
//使用方法式1
int age=10;
Integer i = new Integer(age);
System.out.println(i);
//推荐使用方式二:
Integer i1 = Integer.valueOf(age);
System.out.println(i1);
//以上为装箱
//包装类类型转化为基本数据(拆箱)
int i2 = i1.intValue();//找到基本数据进行操作
i1++;
System.out.println(i1);
//jdk5.0之后的新特性:自动拆箱,装箱
//基本数据类型转化为包装类
int age1=20;
Integer a1=age1;//直接就赋值了两种不同类型(自动装箱)
a1++;//自动装箱
Boolean b1=true;//自动装箱
boolean bb1=b1;//自动拆箱
System.out.println(bb1);
System.out.println();
//基本数据类型和包装类转String,使用String.调用valuesOf
int i3=9;
String str1 = String.valueOf(i3);
System.out.println(str1);//'9'
boolean b2 = true;
String str2 = String.valueOf(b2);
System.out.println(str2);
//String类型转化为基本数据类型和包装类
String str3="123";
int i4=Integer.parseInt(str3);//将字符串转化为int
i4+=10;
System.out.println(i4);//结果为133
String str4="true";
Boolean.parseBoolean(str4);
System.out.println(str4);
String str5="123a";
// int i5=Integer.parseInt(str4);//报错NumberFormatException: For input string: "true"
//-----------------------------------///
//底层都会调用Integer.valuesOf()这个方法
Integer m=1;
Integer n=1;
System.out.println(m==n);//true
Integer x=128;
Integer y=128;
System.out.println(x==y);//flase,与字节码文件有关,调用的方法int[-128,127]
//不在这个范围内会new Integer(i);
//Short Long Byte 也是这个范围 Character 0-127
Integer L=12;
int l=12;//自动拆箱
System.out.println(l==L);//true
}
}