Jvm
文章平均质量分 53
ZZYSY~
这个作者很懒,什么都没留下…
展开
-
JVM垃圾收集算法与垃圾收集器
分代收集理论:弱分代假说:绝大多数对象都是朝生夕灭的强分代假说:熬过越多次垃圾收集过程的对象就越难以消亡这两个假说奠定了垃圾收集器一致的设计原则:收集器把Java堆划分两个区域,根据回收对象的年龄(熬过垃圾收集过程的次数) 分配到不同的区域,一般这两个区域分别叫做新生代和老年代新生代:这个区域的对象在每次垃圾收集后都会有大批对象死去,存活下来的少数对象会一步步晋升到老年代中老年代:这个区域中的对象都是难以消亡的对象跨代引用:对于在新生代中的垃圾收集,其中的对象是完全有可能被老年代所引用原创 2022-02-14 17:57:00 · 209 阅读 · 0 评论 -
Java中的四种引用
强引用:普遍存在的引用,类似"Object obj = new Object();",无论在任何情况下,只要强引用还存在,就永远不会被垃圾收集器回收掉软引用:用来描述一些还有用,但非必须的对象,被软引用关联的对象,在内存将要溢出的时候,会将这些对象也列进垃圾收集的范围之内并进行第二次回收,如果在回收之后还是没有足够的内存,才会发生内存溢出。在JDK 1.2版之后提供了SoftReference类来实现软引用弱引用:也是用来描述一些非必须的对象,但是比软引用更弱一些,只能生成到下次垃圾收集发生之前,原创 2022-02-14 14:24:23 · 160 阅读 · 0 评论 -
Java虚拟机中对象的访问定位
句柄访问:在堆中划分出一块内存用来存储指向对象的句柄,叫做句柄池,栈上的每个reference数据会存储着指向某个句柄的指针,一个句柄中包含了指向对象实例数据的指针和指向对象类型数据的指针句柄访问的好处是当对对象移动后,只需要改变句柄中的实例数据指针即可,不用修改栈中的reference直接指针访问:栈中的reference数据直接存储堆中的对象地址,访问对象的时候就不需要间接访问一次句柄了直接指针访问的好处是速度快,节省了间接访问句柄的开销...原创 2022-02-14 14:10:44 · 469 阅读 · 0 评论 -
Java虚拟机中对象的创建过程
执行new指令:创建对象肯定要先执行new语句,当jvm执行到一条new指令的时候,会检查这个指令的参数能不能在常量池中定位到一个类的符号引用,并且检查这个符号引用对应的类有没有被加载、解析和初始化过如果没有,会先执行类加载过程如果有,就可以开始为要创建的对象在堆中分配内存空间了分配内存空间:分配内存空间就相当于分给这个对象块儿地方,在分配的时候有两种情况指针碰撞:如果在堆中的内存是规整的,也就是说一边是空闲可用的内存,一边是使用过的内存,那么它们中间就有一个指示器,象征着可用内存和已用原创 2022-02-14 13:37:31 · 307 阅读 · 0 评论