Java基本数据类型在常量池中的体现

Java基本数据类型在常量池中的体现

                                         老帅

        基本数据类型的使用量是很大的,java常量池,在节省内存方面是一个很好的机制,相同的数据,在常量池中只要保留一份即可。

        Java的8种基本类型(Byte, Short, Integer, Long, Character, Boolean, Float, Double), 除Float和Double以外, 其它六种都实现了常量池, 但是它们只在大于等于-128并且小于等于127时才使用常量池。

由如下例子可以看出:

 Java基本数据类型在常量池中的体现_第1张图片

结果如下:

等于127:
true
*****************
等于128:
false
*****************
等于-128:
true
*****************
等于-129:
false
*****************
测试Boolean
true
false

当我们给Integer赋值时,实际上调用了Integer.valueOf(int)方法,查看源码,其实现如下:

 Java基本数据类型在常量池中的体现_第2张图片

 

而IntegerCache实现如下:

 Java基本数据类型在常量池中的体现_第3张图片

注意cache数组是静态的。

你可能感兴趣的:(编程语言-Java)