请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

插入代码

1回答

Vincent文森 2022-04-22 13:14:30

同学你好,关于字符串池的位置,不能一概而论,jdk1.7之前,JVM的字符串池在方法区,jdk1.7以后就被放到堆中了。Android的情况更复杂一些,java虚拟机规范并不约束运行时常量池、方法区、字符串池的实现方式。如果想了解自己的真机上被intern的字符串究竟在哪部分内存里,可以通过代码验证一下,最简单的方式就是制造OOM:

1
2
3
4
5
val cache = mutableListOf<String>()
val str = "testStringPool"
while (true) {
    cache.add((str + str).intern())
}
1 回复 有任何疑惑可以回复我~
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号