
Java虚拟机
文章平均质量分 77
个人阅读深入理解Java虚拟机时对文章的归纳
却是人间胜景
这个作者很懒,什么都没留下…
展开
-
垃圾收集器与内存分配策略(中)
3.HotSpot的算法实现在HotSpot虚拟机上实现对象存活判定算法和垃圾收集算法时,必须对算法的执行效率有严格的考量,才能保证虚拟机高效运行。(1)枚举根节点可达性分析对执行时间的敏感还体现在GC停顿上,因为这项分析工作必须在一个能确保一致性的快照中进行——这里“一致性”的意识是指在整个分析期间整个执行系统看起来像被冻结在某个时间点上,不可以出现分析过程中对象引用关系还在不断变化的情况,该点不满足的话分析结果准确性就无法得到保证。在类加载完成的时候,HotSpot就把对象内什么偏移量上是什么类原创 2022-03-06 00:20:31 · 81 阅读 · 0 评论 -
垃圾收集器与内存分配策略(上)
当需要排查各种内存溢出,内存泄露问题时,当垃圾收集成为系统达到更高并发量的瓶颈时,我们就需要对这些“自动化”的技术实施必要的监控和调节。1.在对里面存放着Java世界几乎所有的对象实例,垃圾收集器在对堆进行回收前,第一件事情就是要确定这些对象之中哪些还“存活”着,哪些已经“死去”(即不可能再被任何途径使用的对象)(1)引用计数算法给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。(引用计数算法的实现简单,判定原创 2022-03-04 21:56:11 · 86 阅读 · 0 评论 -
垃圾收集器与内存分配策略(下)
5.内存分配与回收策略Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。(1)对象优先在Eden分配大多数情况下,对象在新生代Eden区中分配。当Eden区没有足够的空间进行分配时,虚拟机将发起以下Minor GC。(2)大对象直接进入老年代所谓的大对象是指,需要大量连续内存空间的Java对象,最典型的大对象就是那种很长的字符串以及数组。大对象对虚拟机的内存分配来说就是一个坏消息,经常出现大对象容易导致内存还有不少空间时就提前触发原创 2022-03-06 14:10:13 · 378 阅读 · 0 评论 -
Java虚拟机运行时数据区域
根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域:1.程序计数器(Program Counter Register)(线程私有)程序计数器是一块较小的内存空间,它可以看作是当前线程所执行的字节码的行号指示器。分支、循环、跳转、异常处理、线程恢复等基础功能都需要依赖程序计数器来完成。每条线程都需要有一个独立的程序计数器,各线程之间计数器互不影响,独立存储,我们称这类内存区域为“线程私有”的内存。2.Java虚拟机栈(Java Virt原创 2022-03-04 21:09:52 · 491 阅读 · 0 评论