java高分局之永久代何去何从?
java高分局之永久代何去何从?永久代也就是我们通常说的方法区。java8从Hotspot JVM中删除了永久代,所以我们不再需要为永久代设置大小,也就是不用设置PermSize和MaxPermSize。在java8之前方法区是作为堆的永久代来实现的,启动JVM时我们需要设置永久代的大小,垃圾回收器也要回收这部分区域,而且会抛出内存溢出异常。借鉴于JRockit虚拟机,java8之后 Hot
·
java高分局之永久代何去何从?
永久代也就是我们通常说的方法区。
java8从Hotspot JVM中删除了永久代,所以我们不再需要为永久代设置大小,也就是不用设置PermSize和MaxPermSize。
在java8之前方法区是作为堆的永久代来实现的,启动JVM时我们需要设置永久代的大小,垃圾回收器也要回收这部分区域,而且会抛出内存溢出异常。借鉴于JRockit虚拟机,java8之后 Hotspot 虚拟机从堆中彻底删除了永久代。
—把方法区中的String和静态变量移到了堆中。
—把其他的东西(比如类结构)放到了本地内存中,JVM会直接负责这部分的内存回收。
总之,我们不再需要设置PermSize和MaxPermSize;方法区的内存溢出将不再出现,除非本地内存耗光。
更多推荐
已为社区贡献7条内容
所有评论(0)