java包装类
1.八个基本数据类型:
byte Byte
short Short
int Integer
long Long
float Float
double Double
char character
boolean Boolean
2.类所属的包:java.lang(不需要导包,可以直接使用)
3.类的关系:
6个与数字相关的(byte short int long float double)继承了Number
8个都实现了serializable comparable接口
4.是否可以创建对象:8个都有自己本身类型的构造方法
有7个(除了character)都有参数类型为String的构造方法的重载
5.Number类:
有xxxValue()方法,是包装类转基本类方法
6.在JDK1.5之前,没有自动拆装箱过程,需要手动转包装类和基本类型
如:Integer i = new Integer(1);int ii = i.intValue();
7.在JDK1.5之后,出现了自动拆装箱过程
如:Integer i = 1;int value = i;
8.笔试常见题
Integer i1 = 10;
Integer i2 = 10;
Integer i3 = new Integer(10);
Integer i4 = new Integer(10);
问:
i1 == i2 ? true
i1 == i3 ? false
i3 == i4 ? false
i1.equals(i2) ? true
i1.equals(i3) ? true
i3.equals(i4) ? true
aaa;Integer类加载的时候,自己的静态空间有一个Integer[],数组是-128 ~ 127 范围内的对象,所以如果你的数字超出范围,比如是1000,那么就会自动在堆内存中new一个对象
所以,如果把上述问题的10改成1000,那么i1 == i2 ? false
9.笔试题总结:
Integer类加载的时候,自己有一个静态空间,空间内有256个Integer对象,范围是-128 ~ 127之间,如果我们需要的对象超出范围的话,Integer i = 1000; 会帮我们在堆内存创建一个新的Integer对象,类似于Integer i = new Integer(1000);
转载于:https://my.oschina.net/u/2954291/blog/3099255