简单证明jdk1.8字符串常量池

    科技2022-07-12  114

    jdk1.8jvm内存做了一个优化,就是把字符串常量池放到堆内存中了,jdk1.7是把字符串常量池放到方法区(元空间)中的,那么我们怎么验证jdk1.8是把字符串常量池放到堆内存中的了,我们用代码演示一遍。

    List<String> list = new ArrayList<>(); for (long i = 0; i < 900000000; i++) { //把数字转成字符串类型,然后放入到字符串常量池中 list.add(String.valueOf(i).intern()); } }

    为了方便证明,我把jvm参数设置一下

    打印结果,证明堆内存溢出,说明jdk1.8字符串常量池在堆内存中。

     

     

     

     

     

     

    Processed: 0.011, SQL: 8