Java虚拟机
文章平均质量分 93
cp_Mark
这个作者很懒,什么都没留下…
展开
-
Java虚拟机学习笔记(一):内存区域与HotSpot虚拟机对象探秘
Java虚拟机在执行Java程序的过程中会把它所管理的内存划分为若干个不同的数据区域。这些区域都有各自的用途,以及创建和销毁的时间,有的区域随着虚拟机进程的启动而存在,有些区域则依赖用户线程的启动和结束而建立和销毁。根据《Java虚拟机规范(Java SE 7版)》的规定,Java虚拟机所管理的内存将会包括以下几个运行时数据区域: 程序计数器(线程私有) 程序计数器是一块较小的内存空间,它可以看...原创 2018-11-05 18:35:23 · 285 阅读 · 0 评论 -
Java虚拟机学习笔记(四):内存分配与回收策略
Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。 对象的内存分配,往大方向讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分之百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数...原创 2018-11-06 23:25:51 · 302 阅读 · 0 评论 -
Java虚拟机学习笔记(三):垃圾收集器
垃圾收集器 我们讨论的收集器基于JDK1.7 Update14之后的HotSpot虚拟机,这个虚拟机包含的所有收集器如图: 连线说明可以搭配使用 Serial收集器 Serial是最基本、发展历史最悠久的收集器,在JDK1.3之前是虚拟机新生代收集的唯一选择。Serial收集器是一个单线程的收集器,单线程的意义并不仅仅说明它只会使用一个CPU或一条收集线程去完成垃圾收集工作,更重要的是在它进...原创 2018-11-05 23:39:08 · 245 阅读 · 0 评论 -
Java虚拟机学习笔记(二):垃圾收集算法及HotSpot的算法实现
概述 垃圾收集(GC)需要考虑3件事情: (1)哪些内存需要回收? (2)什么时候回收? (3)如何回收? 前面我们已经提及程序计数器、虚拟机栈、本地方法栈3个区域随线程而生,随线程而灭;栈中的栈帧随着方法的进入和退出而有条不紊地执行着出栈和入栈的操作,每一个栈帧中分配多少内存基本上是在类结构确定下来时就已知。而Java堆和方法区则不一样,一个接口中的多个实现类需要的内存可能不一样,一个方法中的多...原创 2018-11-05 22:32:37 · 252 阅读 · 0 评论