Advertisement

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)

还没有任何评论哟~