java虚拟机
文章平均质量分 90
按不坏的CTRL
程序考古人员 | 踩坑记录 | 读书笔记 | 知识整理|
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
java 内存模型
程序计数器线程私有 主要字节码解释器通过读取程序计数器来选取下一条需要执行的指令,比如分支,循环,跳转和异常处理 如果执行的是java 方法,那么程序计数器记录的时候虚拟机字节码指令的地址,如果执行的是native 方法,那么是计数器的值为空, 这个区域不会发生OOM。虚拟机栈线程私有 每个方法在执行是都会创建栈帧,用于存放局部变量,操作数栈,动态链接和方法出口 存放了编译时期可知的各种基本数据类型,对象引用, 和returnAddress 类型(指向了一条字节码指令的地址),其中l原创 2024-02-24 20:53:29 · 864 阅读 · 1 评论 -
引用计数算法
引用计数算法很多教科书判断对象是否存活的算法是这样的,给对象中添加一个引用计数器,每当有一个地方引用他时,计数器的只就+1;每当引用失效时,计数器的致就-1;任何时刻计数器为0 的对象就是不可能再被使用的。 客观的说,引用计数算法的实现简单,判定的效率也很高,在大部分的情况下都是一个不错的算法,但是主流的Java虚拟机中没有选用应用计数法来管理内存,起主要原因是他很难解决对象之间相互引用的原创 2017-10-18 22:43:14 · 366 阅读 · 0 评论 -
可达性分析算法
我的读书笔记可达性分析算法 在主流的语言(Java,C#) 的主流实现中,都是通过可达性分析来判断对象是否存活的,这个算法的基本思路就是通过一系列的称为“GC roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(reference chain),当一个对象到GC Roots没有任何引用链相连时,则证明对象是不可用的。假装这里有个图 在Java语言中,可以作为G原创 2017-10-18 23:18:50 · 1311 阅读 · 0 评论 -
我的读书笔记——引用
我的读书笔记引用在JDK1.2以前,对引用的定义太过狭隘,一个对象只有被引用或者没有被引用两种状态。在JDK1.2之后,Java对引用的概念进行了扩充,把引用分为了强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)和虚引用(Phantom Reference)四种类型。这四种类型的强度依次变弱。强引用:在代码中普遍存在,比如直原创 2017-10-19 20:26:50 · 344 阅读 · 0 评论 -
我的读书笔记——Serial收集器
我的读书笔记Serial 收集器 Serial 收集器是最基本的收集器,曾经是新生代唯一的收集器。这个收集器是一个但现场的收集器,但是“单线程”的意义并不是他只会使用一个CPU或一条线程去完成垃圾收集工作。更重要的是他在垃圾收集的时候,必需暂停其他所有的工作线程,直到它收集结束(“stop the world“)。 对于”Stop the world”,带给用户的不良体验,类似于我们在打原创 2017-10-19 23:33:23 · 246 阅读 · 0 评论 -
我的读书笔记——parNew收集器
我的读书笔记ParNew收集器 ParNew 收集器其实就是多线程版本的Serial 收集器,除了使用多条线程进行垃圾收集之外,其行为包括收集算法、Stop the World、Serial 收集器可以使用的控制参数 (-XX: SurvivorRatio、-XX: PretenureSizeThreshold、-XX:HandlePromotionFailure等)都和Serial 收集器一原创 2017-10-19 23:34:23 · 664 阅读 · 0 评论 -
我的读书笔记——Paralled Scavenge 收集器
我的读书笔记Parallel Scavenge 收集器 Paralled Scavenge 收集器是一个新生代收集器,他也是使用复制算法的收集器,又是使用并行的多线程收集器。这个收集器的特点是他的关注点和其他的收集器不同。CMS等收集器的主要关注点是尽可能的缩短垃圾回收是用户线程的等待时间。而Paralled Scavenge收集器的主要目标是达到一个可控制的吞吐量。所谓吞吐量就是CPU运行用原创 2017-10-19 23:35:11 · 360 阅读 · 0 评论
分享