1. 装箱(自动将基本数据类型封装成对象) Integer integer = 100;等效于Integer integer = Integer.valueOf(100); valueOf方法内部,将-128~127之间对应的Integer对象存到一个缓冲区中(数组中)。在自动装箱时,如果valueOf方法的参数在-128~127之间,就直接返回数组中的那个对象,而不会创建新的Integer对象。这样就避免的不必须的资源损耗。 2. 拆箱(自动将对象转成基本数据类型)。如:int x = new Integer(100); 3. 享元模式(flyweight):如果很多很小的对象有很多相同的东西,可以把它们变成一个对象,不同的东西作为外部的属性,作为方法的参数传入。 | public static void main(String[] args) { Integer a = new Integer(100); Integer b = 100; int c = 100; /* * int类型的数和Integer类型的对象相比较时, * 会将Integer类型的对象拆箱成int类型。 * 所以a==c,b==c。这样不同类型的变量可以相比较。 */ System.out.println(a==b);//false System.out.println(a==c);//true System.out.println(b==c);//true } | |
|