JVM内存模型总体架构图 程序计数器多线程时,当线程数超过CPU数量或CPU内核数量,线程之间就要根据时间片轮询抢夺CPU时间资源。因此每个线程有要有一个独立的程序计数器,记录下一条要运行的指令。线程私有的内存区域。如果执行的是JAVA方法,计数器记录正在执行的java字节码地址,如果执行的是nat ...
分类:
编程语言 时间:
2017-01-08 12:37:20
阅读次数:
222
GC中的垃圾:特指存在于内存中、不会再使用的对象。 内存泄漏和内存溢出的区别: 内存泄漏:内存空间忘记回收,垃圾对象永远无法被回收 内存溢出:垃圾对象(不满足回收条件)所耗内存持续上升,导致内存溢出。 1 常用的垃圾回收算法 引用计数法、标记压缩法、标记清除法、复制算法和分代、分区 1)引用计数法: ...
分类:
编程语言 时间:
2016-12-19 08:42:32
阅读次数:
235
最近阅读了《垃圾回收算法手册》这本经典的书籍,借此机会打算写几篇内存管理算法方面的文章,也算是自己的总结吧。 ... ...
分类:
编程语言 时间:
2016-10-24 23:45:50
阅读次数:
205
在说垃圾回收算法之前,先谈谈JVM怎样确定哪些对象是“垃圾”。 1.引用计数器算法: 引用计数器算法是给每个对象设置一个计数器,当有地方引用这个对象的时候,计数器+1,当引用失效的时候,计数器-1,当计数器为0的时候,JVM就认为对象不再被使用,是“垃圾”了。 引用计数器实现简单,效率高;但是不能解 ...
分类:
编程语言 时间:
2016-10-17 20:55:18
阅读次数:
181
一:垃圾回收机制的原因 java中,当没有对象引用指向原先分配给某个对象的内存时候,该内存就成为了垃圾。JVM的一个系统级线程会自动释放该内存块。垃圾回收意味着程序不再需要的对象是"无用信息",这些信息将被丢弃。当一个对象不再被引用的时候,内存回收它占领的空间,以便空间被后来的新对象使用。事实上,除 ...
分类:
编程语言 时间:
2016-10-09 14:19:31
阅读次数:
188
标记-清除算法: 这是最基础的,就是之前所讲的两次标记,首先标记出所有 需要回收的对象,然后进行统一清除, 这有两缺点:一是效率低,标记和清除(开启低优先级进行回收)都是低效率的。第二是空间问题,标记清除会产生大量的内存碎片。 复制算法: 可以将内存分为大小相等的两块,每次只使用一块,当一快内存使用 ...
分类:
编程语言 时间:
2016-09-26 21:41:51
阅读次数:
156
今天地铁上看到一篇不错的将内存泄漏简单检查的文章,觉得还不错哟,内存泄漏确实是每个程序员头疼的事情,这里就多研究一下咯^^一. 常见的垃圾回收算法参看文章
引用计数法
引用计数法基本上最简单的...
分类:
移动开发 时间:
2016-09-13 19:23:49
阅读次数:
216
1.JVM调优总结(1):一些概念:http://www.importnew.com/18694.html 2.JVM调优总结(2):基本垃圾回收算法:http://www.importnew.com/18740.html 3.JVM调优总结(3):垃圾回收面临的问题:http://www.impo ...
分类:
编程语言 时间:
2016-08-29 19:20:49
阅读次数:
209
JVM结构、内存分配、垃圾回收算法、垃圾收集器。下面我们一一来看。 一、JVM结构 根据《java虚拟机规范》规定,JVM的基本结构一般如下图所示: 从左图可知,JVM主要包括四个部分: 1.类加载器(ClassLoader):在JVM启动时或者在类运行时将需要的class加载到JVM中。(右图表示 ...
分类:
其他好文 时间:
2016-08-23 16:31:52
阅读次数:
269