1.为了解决8种基本数据类型的变量不能当成Object类型(所以类的父类都是Object)使用的问题,java提供了包装类的概念,为8种数据类型分别定义了相应的引用类型
byte Byte; short Short; int Integer; long Long;
char Character;float Float;double Double;boolean Boolean;
public class Autobox{
public static void main(String[] args){
int a = 5;
Integer inobj = a;
Integer inobj1 = new Integer(3);
int b = inobj1;
System.out.println(inobj);
System.out.println(b);
}
}
2.包装类还可以实现基本类型变量和字符创之间的转换。
1)利用包装类提供的parseXxx(String s)静态方法; 注:Character中没有parse方法
2)利用包装类提供能的Xxx(String s)的构造器;
同样的,String类也提供重载的方法,即String.valueof(),用于将基本数据类型转换为字符串。
public class change{
public static void main(String[] args){
int a = 3;
String name = "123"; //如果name的值过大,转换成某一类的时候可能会溢出,抛出NumberFormatException错误
boolean c = true;
String a1 = String.valueOf(a);
int name1 = new Integer(name); //调用构造器要用new
String c1 = String.valueOf(c); //valuOf中Of要大写O
long name2 = Long.parseLong(name); //parse后面要加转换成的类名
System.out.println(a1);
System.out.println(name1);
System.out.println(c1);
System.out.println(Integer.MAX_VALUE); //利用包装类名加MAX_VALUE可以查看该类的最大值 8大基本数据类型的包装类才可以
System.out.println(Byte.MIN_VALUE);
System.out.println(name2);
}
}
3.基本类型和""连接运算,系统会自动把基本类型转换为字符串类型 如int a = 4; String astr = a+“”;
4.系统会把一个-128~127的整数自动装箱成Integer实例,并放入名为cache的数组中保存起来。但每次把一个不在不在-128~127范围内的整数装箱成Integer实例时,系统总是创建一个Integer实例。
public class test2{
public static void main(String[] args){
Integer in1 = 128;
Integer in2 = 128;
System.out.println(in1 ==in2);
Integer in3 = 127;
Integer in4 = 127;
System.out.println(in3 ==in4);
} //因为-128~127中的数是保存在一个cache数组中的,所以,输出true
}