jdk8之后使用元空间代替永久代来作为方法区的实现,那么为什么要这样呢?
1、硬件的发展,电脑从32位发展到了64位,在32位电脑中内存的最大容量为2^32bit,也就是4G,此时若是将方法区放在物理内存上势必造成空间紧缺,而64位中除去16位的保留位,剩下的可支持内存仍是非常大的,此时就考虑将方法区的实现放在物理内存了
2、Java的发展,比如Spring的启动就需要加载大量的类,若是还将方法区放在堆中,就会对堆的内存管理造成负担
2023-12-12 16:17:52
jdk8之后使用元空间代替永久代来作为方法区的实现,那么为什么要这样呢?
1、硬件的发展,电脑从32位发展到了64位,在32位电脑中内存的最大容量为2^32bit,也就是4G,此时若是将方法区放在物理内存上势必造成空间紧缺,而64位中除去16位的保留位,剩下的可支持内存仍是非常大的,此时就考虑将方法区的实现放在物理内存了
2、Java的发展,比如Spring的启动就需要加载大量的类,若是还将方法区放在堆中,就会对堆的内存管理造成负担