1.7中存在永久代,1.8中没有永久代,替换的是元空间,元空间所占的内存不是在虚拟机内部,而是本地内存空间,这么做的原因是,不管是永久代还是元空间,它们都是方法去的具体实现,之所以元空间所占的内存改成本地本村,官方的说法是为了和JRockit同一,不过额外还有一些原因,比如方法去所存储的类信息通常是比较难确定的,所以,对于方法区的大小是比较难指定的,太小了容易出现方法去溢出,太大了又会占用了太多虚拟机的内存空间,而转移到本地内存后则不会影响虚拟机所占用的内存。
1.7中存在永久代,1.8中没有永久代,替换的是元空间,元空间所占的内存不是在虚拟机内部,而是本地内存空间,这么做的原因是,不管是永久代还是元空间,它们都是方法去的具体实现,之所以元空间所占的内存改成本地本村,官方的说法是为了和JRockit同一,不过额外还有一些原因,比如方法去所存储的类信息通常是比较难确定的,所以,对于方法区的大小是比较难指定的,太小了容易出现方法去溢出,太大了又会占用了太多虚拟机的内存空间,而转移到本地内存后则不会影响虚拟机所占用的内存。
评论区