JDK8中出现了元空间代替了永久代。元空间和永久代类似,都是对JVM规范中方法区的实现。区别在于元空间并不在虚拟机中,而是使用本地内存,默认情况下元空间的大小仅受本地内存限制,也可以通过-XX:MetaspaceSize指定元空间大小。
为什么要使用元空间代替永久代?
字符串在永久代中,容易出现性能问题和内存溢出的问题。类和方法的信息等比较难确定大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出。使用元空间则使用了本地内存。
JDK8中出现了元空间代替了永久代。元空间和永久代类似,都是对JVM规范中方法区的实现。区别在于元空间并不在虚拟机中,而是使用本地内存,默认情况下元空间的大小仅受本地内存限制,也可以通过-XX:MetaspaceSize指定元空间大小。
为什么要使用元空间代替永久代?
字符串在永久代中,容易出现性能问题和内存溢出的问题。类和方法的信息等比较难确定大小,因此对于永久代的大小指定比较困难,太小容易出现永久代溢出。使用元空间则使用了本地内存。