![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
Tu9oh0st
这个作者很懒,什么都没留下…
展开
-
JVM学习(4) 垃圾收集器
如果说收集算法是内存回收的方法论,垃圾收集器就是内存回收的具体实现。Java虚拟机规范中对垃圾收集器应该如何实现并没有任何规定,因此不同的厂商、不同版本的虚拟机所提供的垃圾收集器都可能会有很大的差别,并且一般都会提供参数供用户根据自己的应用特点和要求组合出各个年代所使用的收集器。这里讨论的收集器基于Sun HotSpot虚拟机1.6版Update 22,这个虚拟机包含的所有收集器如图所示: 图中...原创 2018-10-01 16:05:35 · 125 阅读 · 0 评论 -
JVM学习(5) 内存分配与回收策略
Java技术体系中所提倡的自动内存管理最终可以归结为自动化地解决了两个问题:给对象分配内存以及回收分配给对象的内存。 对象的内存分配,往大方向上讲,就是在堆上分配(但也可能经过JIT编译后被拆散为标量类型并间接地在栈上分配),对象主要分配在新生代地Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配地规则并不是百分百固定地,其细节取决于...原创 2018-10-01 20:19:28 · 186 阅读 · 0 评论 -
JVM学习(1) 自动内存管理机制
Java内存区域与内存溢出异常 Java和C++之间有一堵由内存动态分配和垃圾手机技术所围成的高墙,墙外面的人想进去,墙里面的人却想出来。 概述 对于从事C和C++程序开发的开发人员来说,在内存管理领域,他们即是拥有最高权力的皇帝,又是从事最基础工作的劳动人民——既有用每一个对象的“所有权”,又担负着每个对象生命开始到终结的维护责任。 对Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再...原创 2018-09-26 17:56:31 · 122 阅读 · 0 评论 -
JVM学习(2) 对象已死?
概述 说起垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史远远比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的三件事: 那些内存需要回收? 什么时候回收? 如何回收? 经过半个世纪的发展,内存的动态分配与内存回收技术已经...原创 2018-09-30 01:12:02 · 109 阅读 · 0 评论 -
JVM学习(3) 垃圾收集算法
由于垃圾收集算法的实现涉及大量的程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,因此不打算过多地讨论算法地实现,只是介绍几种算法地思想及其发展过程。 标记-清除算法 最基础地收集算法是“标记-清除”(Mark-Sweep)算法,算法分为”标记“和”清除“两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收掉所有被标记地对象,它地标记过程其实在前一节讲述对象标记判定时已经基本介绍过了...原创 2018-09-30 17:46:39 · 164 阅读 · 0 评论