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

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字符串常量池在堆内存中。


版权声明:本文为sdgames原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。