Java提供java.lang.Integer类,它就采用了与CaheImutale类相同的处理策略,如果采用new构造器来创建Integer对象,则***每次返回全新的Integer对象***,如果采用了valueOf方法来创建Integer对象,则会缓存该方法创建对象。下面程序示范了Integer类构造器和valueOf()方法存在的差异。
`public class IntegerCachTest {
public static void main(String[]args) {
//生成新的Integer对象
Integer int1=new Integer(5);
//生成新的Integer对象,并缓存中取出Integer对象
Integer in2=Integer.valueOf(6);
//直接从缓存中取出Integer对象
Integer in3=Integer.valueOf(6);
// System.out.println(in1in2);//false
System.out.println(in2in3); //true
//由于Integer只缓存-128~127之间的值
//因此200对应的Integer对象没有被缓存
Integer in4=Integer.valueOf(200);
Integer in5=Integer.valueOf(200);
System.out.println(in4);//200
System.out.println(in4==in5); //false
}
}`