元空间
1.方法区与永久代的关系
java虚拟机规范只是提到了方法区的概念和他的作用,并没有规定如何实现他,所以在不同的虚拟机上有不同的实现方法。
在HotSpot上把GC分代收集扩展到方法区。或者说使用永久代来实现方法区。
也就是说,永久代是HotSpot的概念,是方法区的实现,其他虚拟机没有永久代这一说法。
方法区是java虚拟机规范中的定义,是一种规范。
2.永久代与元空间
对于java8,HotSpot取消了永久代的说法,取代永久代的就是元空间。
元空间与永久代的区别在于
存储位置不同:
元空间并不在虚拟机中。而是使用本地内存。因此,默认情况下,元空间的大小受本地内存的限制。但是可以通过参数来指定元空间的大小。
永久代理论上是堆的一部分,和新生代老年代的地址是连续的。
3.元空间的作用
元空间存储类的元信息,而将静态变量和常量池等并入堆中。相当于原来永久代的数据被分到了堆和元空间中。