类似于String中的常量池,Java对部分经常使用的数据采用缓存技术,即第一次使用该数据则创建该数据对象并对其进行缓存,当再次使用等值对象时直接从缓存中获取,从而提高了程序执行性能。
Java中只是对部分基本数据类型对应包装类的部分数据进行了缓存:
byte、short、int和long所对应包装类的数据缓存范围为 -128~127(包括-128和127);
Integer a = 127; Integer b = 127; System.out.println(a==b);//true; a = 128; b = 128; System.out.println(a==b);//false;float和double所对应的包装类没有数据缓存范围;
Double a = 1.0; Double b = 1.0; System.out.println(a==b);//false;char所对应包装类的数据缓存范围为 0~127(包括0和127);
Character a = 127; Character b = 127; System.out.println(a==b);//true; a = 128; b = 128; System.out.println(a==b);//false;boolean所对应包装类的数据缓存为true和false;
Boolean a = true; Boolean b = true; System.out.println(a==b);//true; Boolean a = false; Boolean b = false; System.out.println(a==b);//true;