java虚拟机
沙漠里的小聋虾
程序员
展开
-
java的垃圾回收机制
面试的时候都会问道,说一下java的垃圾回收机制吧? 每次说的时候总觉得这个好广泛啊,需要从哪里开始说起呢? 还是从why、what、 where 、when、how 5个方面来说明: 为什么需要垃圾回收(why)? 不回收会出现内存溢出和内存泄漏的发生。(java的内存中哪些会发生内存泄漏,哪些会发生栈溢出) 什么是垃圾回收(what)? java程序员在编写代码的时候不再需要考原创 2017-10-19 20:21:14 · 166 阅读 · 0 评论 -
java内存分配规则
1、对象优先分配在Eden区,如果Eden区没有足够的空间时,虚拟机执行一次Minor GC(执行前会判断是否是执行full gc 还是 minor gc) 2、大对象(需要大量连续内存空间的对象)直接进入老年代。这样可以避免大对象在Eden和Survivor之间来回的拷贝 3、长期存活的大对象进入老年代。在survivor区的对象每经过一次minor gc存活下来,年龄就加1。等到年龄达到阈原创 2017-10-19 22:36:30 · 204 阅读 · 0 评论 -
jvm的永久代
记得曾经在课本上看到了永久代的概念,但是没有看过在哪里会有用到,最近准备面试,想深入的了解永久代到底是什么 jvm的语言规范里面定义了方法区(为了区分叫做“非堆”)的概念,方法区主要用于存储类的信息、常量池、方法数据、方法代码等信息。但是不同的虚拟机有不同的实现,其中hotspot实现通过永久代来实现了方法区。 在java代码中如果在一个while循环里面不停的创造对象的话就会发生永久代溢出。原创 2017-10-22 18:21:29 · 645 阅读 · 0 评论