美文网首页
Integer内部常量池实现详解

Integer内部常量池实现详解

作者: rainy618 | 来源:发表于2018-09-20 12:53 被阅读0次

      在Integer类的内部有一个IntegerCache的内部类,这个就是Integer常量池实现的有关类。

    在该类的内部有三个字段,分别是low,high 用于限定常量池的存储范围。还有一个Integer cache[] 数组,用于存储缓存的常量。

    low的设值被初始化为-128,这是在代码中写死的一个最低值。最高值的获取,所需会利用jdk里面的一个内部类去调用虚拟机的一个参数(也就是所Integer缓存池的最高范围并不是127,而是要看有没通过一个虚拟机进行设值)。

    如果使用这个vm参数进行Integer最高存储位的设置,则返回该值,(该值的返回还有几个条件判断,但设置的值小于127时,则返回127.当设置的值大于了Integer数值的最大值2^31-1时,则直接返回Integer.MAX_VALUE)

      确认好low,high值后,则会利用一个for循环,循环的去创建数值对应的Integer对象。

   

相关文章

  • Integer内部常量池实现详解

    在Integer类的内部有一个IntegerCache的内部类,这个就是Integer常量池实现的有关类。 ...

  • Integer Integer.valueOf和Integer.

    Integer Integer是int的包装类,在Integer中有个常量池类IntegerCache,在 In...

  • 浅析Integer常量池

    基本代码如下: 运行结果: JDK1.5之后,加入自动装箱和拆箱的新特性,Integer i1 = 127 ,就是...

  • Java-基础-数据类型-常量池

    整数类型常量池范围:[-128, 127],Byte Short Integer Long Character 都...

  • 常量池

    在compile的时候,放东西进常量池。 对于Integer 范围在 -128 - 127 对于 String, ...

  • javase part16 - java数字池

    不论是字符串常量池还是数字池,都属于常量池的范围 java种的8种包装类型种两种浮点类型未实现常量池,其余都实现了...

  • Java 8种基本类型包装类和String的常量池

    Byte,Short,Integer,Long 通过如下代码输出可以看出常量池数值范围为-128~127。 输出结...

  • java知识整理-包装类型

    Integer的缓存 Integer内部实现了一个缓存,会缓存-128~127之间的数字。Integer在赋值的时...

  • 方法区中的运行时常量池

    方法区内部包含了运行时常量池 常量池 就是一张表,虚拟机指令根据这张常量表找到要执行的类名,方法名,参数类型,字面...

  • 字符串常量池

    静态常量池,运行期常量池,字符串常量池 静态常量池 运行时常量池 字符串常量池 问题 结果: 验证new Stri...

网友评论

      本文标题:Integer内部常量池实现详解

      本文链接:https://www.haomeiwen.com/subject/jlognftx.html