美文网首页
⽅法区(运⾏时常量池)和元空间溢出

⽅法区(运⾏时常量池)和元空间溢出

作者: 嘘寒问暖 | 来源:发表于2022-07-28 23:50 被阅读0次

⽅法区和堆⼀样,是线程共享的区域,包含Class⽂件信息、运⾏时常量池、常量池,运⾏时常量池和常量池的主要区别是具备动态性,也就是不⼀定⾮要是在Class⽂件中的常量池中的内容才能进⼊运⾏时常量池,运⾏期间也可以可以将新的常量放⼊池中,⽐如String的intern()⽅法。

我们写⼀段代码验证⼀下String.intern(),同时我们设置-XX:MetaspaceSize=50m -XX:MaxMetaspaceSize=50m 元空间⼤⼩。由于我使⽤的是1.8版本的JDK,⽽1.8版本之前⽅法区存在于永久代(PermGen),1.8之后取消了永久代的概念,转为元空间(Metaspace),如果是之前版本可以设置PermSize MaxPermSize永久代的⼤⼩。

相关文章

网友评论

      本文标题:⽅法区(运⾏时常量池)和元空间溢出

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