概述 对象已死吗 引用计数算法 可达性分析算法 再谈引用 生存还是死亡 回收方法区 垃圾收集算法 标记-清除算法 复制算法 标记-整理算法 分代收集算法 HotSpot的算法实现 枚举根节点 安全点 安全区域 垃圾收集器 Serial收集器 ParNew收集器 Parallel Scavenge收集 ...
分类:
其他好文 时间:
2019-10-15 18:51:36
阅读次数:
93
垃圾收集(Garbage Collection,GC),大部分人都把这项技术当做Java语言的伴生产物。事实上,GC的历史比Java久远,1960年诞生于MIT的Lisp是第一门真正使用内存动态分配和垃圾收集技术的语言。当Lisp还在胚胎时期时,人们就在思考GC需要完成的3件事情: 哪些内存需要回收 ...
分类:
其他好文 时间:
2019-10-15 09:42:35
阅读次数:
87
四种算法 引用计数(循环引用不能解决) 复制(新生代) 标记-整理 标记-清除 四种主要的垃圾回收器 Serial串行回收:为单线程生产环境设计并使用一个线程进行回收,会暂停所有的用户线程,不适合服务器环境 砸瓦鲁多!!! parallel并行回收:多个垃圾收集器线程并行执行,此时用户线程暂停,适用 ...
分类:
编程语言 时间:
2019-10-13 15:13:11
阅读次数:
112
① 对象的内存分配,总体上讲就是在堆上分配,对象主要分配在新生代的Eden区,少数情况也会直接分配在老年代。分配的规则并不是百分百固定的,其细节取决于当前使用的是哪一种垃圾收集器组合,还有虚拟机中与内存相关的参数配置。 对象优先在Eden区分配 大多数情况下,对象在新生代Eden区分配。当Eden区 ...
分类:
其他好文 时间:
2019-10-08 22:22:17
阅读次数:
90
GC的收集器种类: 收集器存在连线的说明他们可以配合使用。 新生代垃圾收集器 1.串行GC(serial)垃圾回收器 单线程收集器,必须暂停所有的工作线程直到结束: 最古老,稳定效率高的垃圾回收器 对应的JVM参数是: -XX:+UseSerialGC 开启后会使用:Serial(Young区用) ...
分类:
其他好文 时间:
2019-10-06 13:31:58
阅读次数:
157
JVM:java虚拟机,Java编译程序将生成Java虚拟机上可运行的目标代码,使得Java程序可以再不同平台不加修改的运行。JVM包含完善的硬件架构,主要分为五大模块—类装载器子系统、运行时数据全、执行引擎、本地方法接口和垃圾收集模块。其没有寄存器,指令集使用Java栈来存储中间数据。 JRE:J ...
分类:
编程语言 时间:
2019-10-04 17:01:04
阅读次数:
83
JVM平台上还可以运行其他语言,运行的是Class字节码。只要能翻译成Class的语言就OK了。挺强大的。 JVM厂商很多 垃圾收集器、收集算法 JVM检测工具 关于类的加载: Java代码中,类型(interface, class,enum等,有些是在运行时候生成的,比如动态代理)的加载、连接与初 ...
分类:
其他好文 时间:
2019-10-02 10:35:52
阅读次数:
87
垃圾收集器垃圾收集(Garbage Collection,GC)。当需要排查各种内存溢出、内存泄露问题时,当垃圾收集成为系统更高并发量的瓶颈时,我们需要去了解GC和内存分配。 检查对象的"存活"状态 虚拟机栈(栈帧中的本地变量表)中引用的对象; 方法区中静态属性引用的对象; 方法区中常量引用的对象; ...
分类:
其他好文 时间:
2019-09-30 23:56:47
阅读次数:
194
①:Serial(串行)收集器 最基本,历史最悠久的串行收集器,单线程组赛队列,jdk1.5之前默认的收集器。 优点:简单高效,没有线程交互的开销。 缺点:单线程,只会使用一个cpu/一条收集线程去完成垃圾收集。 对应算法:年轻代复制算法,老年代标记整理算法。 ②:ParNew收集器(Serial收 ...
分类:
其他好文 时间:
2019-09-27 01:11:55
阅读次数:
82
如果说收集算法是内存回收的方法论,那么垃圾收集器就是内存回收的具体实现。 虽然我们对各个收集器进行比较,但并非要挑选出一个最好的收集器。因为直到现在为止还没有最好的垃圾收集器出现,更加没有万能的垃圾收集器,我们能做的就是根据具体应用场景选择适合自己的垃圾收集器。试想一下:如果有一种四海之内、任何场景 ...
分类:
其他好文 时间:
2019-09-24 08:01:00
阅读次数:
106