为什么JDK 1.8中不再有永久代(permanent generation)
2017-09-19 17:06
239 查看
1.什么是永久代
只有 HotSpot 才有 “PermGen space”,而对于其他类型的虚拟机,如 JRockit(Oracle)、J9(IBM) 并没有“PermGen space”。
用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen
space区域,它和存放Instance的Heap区域不同,所以如果你的APP会load很多class的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。(动态生成class)
2.Metaspace
在Java 8 中,取消了永久代。
3.为什么取消永久代
(有空再写)
只有 HotSpot 才有 “PermGen space”,而对于其他类型的虚拟机,如 JRockit(Oracle)、J9(IBM) 并没有“PermGen space”。
用于存放Class和Meta的信息,Class在被 Load的时候被放入PermGen
space区域,它和存放Instance的Heap区域不同,所以如果你的APP会load很多class的话,就很可能出现PermGen space错误。这种错误常见在web服务器对JSP进行pre compile的时候。(动态生成class)
2.Metaspace
在Java 8 中,取消了永久代。
3.为什么取消永久代
(有空再写)
相关文章推荐
- Eclipse的编译器版本,为什么没有jdk1.7、jdk1.8对应的版本?即我Eclipse配置了jre为jdk1.7,但是没有办法修改编译器版本为1.7与之保持一致
- ConcurrentHashMap(JDK1.8)为什么要放弃Segment
- ConcurrentHashMap(JDK1.8)为什么要放弃Segment
- 为什么JDK1.8中HashSet集合好像是有序的?
- tomcat运行为什么要依靠jdk
- Dojo1.8笔记1 为什么
- java8 JDK1.8 API 中文 翻译版 java帮助文档
- linux安装jdk1.8(rpm方式)
- Ubuntu14.04下配置jdk1.8(jdk8)
- 安装JDK是为什么有两个JRE
- 为什么我不再使用MVC框架
- Ubuntu14.04下Tomcat8.0和jdk1.8版本安装
- Eclipse导入Maven项目提示:Missing artifact sun.jdk:jconsole:jar:1.8
- Linux 安装jdk1.8
- 我为什么不喜欢CTex套件中的CJK包及不再用CTex套件的原因
- Java开发环境配置--JDK 1.8
- jdk1.8新特性比较器浅析
- jdk1.8的lambda语法(转)
- JDK的OutputStream为什么方法write(int b)的入参类型是int呢?
- 导入Java项目后为什么里面的jdk自带的webservice程序报错