JDK中对java.lang.Integer类的源码进行详细解析
发布时间
阅读量:
阅读量
本文主要探讨了JDK8中java.lang.Integer包装类的相关缓存机制及其应用,并对其涉及的关键方法包括:valueOf()、stringSize()、toString()、getChars()和parseInt()等的缓存机制及其应用进行了深入剖析。
Integer缓存
先来看一段代码:
Integer a1 = Integer.valueOf(13);
Integer a2 = Integer.valueOf(13);
Integer a3 = Integer.valueOf(133);
Integer a4 = Integer.valueOf(133);
System.out.println(a1 == a2); // 输出 true
System.out.println(a3 == a4); // 输出 false
两个输出语句呈现出不同的输出结果,在于Integer类采用了静态嵌套类机制,并包含了一个名为cache[]的缓存数组。在默认情况下,默认值定义为[-128, 127]范围内的整数值会在首次调用时(即类加载阶段)被隐式转换并存入缓存数组中。该区间上限值high可以通过配置JVM参数-XX:AutoBoxCacheMax进行调节,默认值通常设置为127(
全部评论 (0)
还没有任何评论哟~
