java的一些缓存机制

	public static void main(String[] args) {
		/**
		 * Javadoc 详细的说明这个类是用来实现缓存支持,并支持 -128 到 127 之间的自动装箱过程。最大值 127 可以通过 JVM 的启动参数 
		 * -XX:AutoBoxCacheMax=size 修改。
		 */
		Integer a = 10; //this is autoboxing
		Integer b = Integer.valueOf(10); //under the hood
		System.out.println(a == b);
		
		Integer integer1 = 3;
        Integer integer2 = 3;
        
        if (integer1 == integer2)
            System.out.println("integer1 == integer2");
        else
            System.out.println("integer1 != integer2");

        Integer integer3 = 300;
        Integer integer4 = 300;

        if (integer3 == integer4)
            System.out.println("integer3 == integer4");
        else
            System.out.println("integer3 != integer4");
	}

结果:

true
integer1 == integer2
integer3 != integer4

其他缓存的对象

这种缓存行为不仅适用于Integer对象。我们针对所有整数类型的类都有类似的缓存机制。

有 ByteCache 用于缓存 Byte 对象

有 ShortCache 用于缓存 Short 对象

有 LongCache 用于缓存 Long 对象

有 CharacterCache 用于缓存 Character 对象

Byte,Short,Long 有固定范围: -128 到 127。对于 Character, 范围是 0 到 127。除了 Integer 可以通过参数改变范围外,其它的都不行。



你可能感兴趣的:(随笔)