HotSpot虚拟机中有7种垃圾收集器:Serial、ParNew、Parallel Scavenge、Serial Old、Parallel Old、CMS、G1。 垃圾收集器是垃圾回收算法(标记-清除算法、复制算法、标记-整理算法、分代收集)的具体实现,不同商家、不同版本的JVM所提供的垃圾收集 ...
分类:
其他好文 时间:
2018-05-06 17:04:12
阅读次数:
222
写在前面 这年头就是得不断地学习. 学什么东西就看需要了. 不学习很难进步. 同时别人也会超过你. 东西都是网上有的。图片也好,文字也好。基本都可以在网上找到。 JAVA运行原理 JVM包括字节码解释程序,执行器,方法区,堆,VM栈,本地方法栈,Program Counter计数器。 垃圾回收算法 ...
分类:
其他好文 时间:
2018-05-04 14:08:11
阅读次数:
143
1.如何确定对象是个垃圾? 引用计数法:实现简单、效率高,但是如何两个对象同时等于null,他们会相互引用,导致他们的引用计数都不为0,永远不会被回收。 可达性分析法: 2.典型的垃圾收集算法 标记-清楚算法:最基础的垃圾回收算法,有标记阶段和清除阶段;标记阶段的任务是标记处所有需要被回收的对象,清 ...
分类:
编程语言 时间:
2018-04-30 21:08:29
阅读次数:
242
垃圾回收的瓶颈 传统分代垃圾回收方式,已经在一定程度上把垃圾回收给应用带来的负担降到了最小,把应用的吞吐量推到了一个极限。但是他无法解决的一个问题,就是Full GC所带来的应用暂停。在一些对实时性要求很高的应用场景下,GC暂停所带来的请求堆积和请求失败是无法接受的。这类应用可能要求请求的返回时间在 ...
分类:
编程语言 时间:
2018-04-24 17:37:49
阅读次数:
147
垃圾回收的悖论 所谓“成也萧何败萧何”。Java的垃圾回收确实带来了很多好处,为开发带来了便利。但是在一些高性能、高并发的情况下,垃圾回收确成为了制约Java应用的瓶颈。目前JDK的垃圾回收算法,始终无法解决垃圾回收时的暂停问题,因为这个暂停严重影响了程序的相应时间,造成拥塞或堆积。这也是后续JDK ...
分类:
其他好文 时间:
2018-04-24 17:32:25
阅读次数:
144
可以从不同的的角度去划分垃圾回收算法: 按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark- ...
分类:
编程语言 时间:
2018-04-24 17:29:08
阅读次数:
167
JVM调优工具 Jconsole,jProfile,VisualVM Jconsole : jdk自带,功能简单,但是可以在系统有一定负荷的情况下使用。对垃圾回收算法有很详细的跟踪。详细说明参考这里 JProfiler:商业软件,需要付费。功能强大。详细说明参考这里 VisualVM:JDK自带,功 ...
分类:
其他好文 时间:
2018-04-24 17:26:10
阅读次数:
156
* 变量无需事先声明 * 变量无需指定类型 * 程序猿不用关系内存管理 * 变量名会被回收 * del能够直接释放资源 1.python使用的是引用调用,而不是值调用,他使用的回收算法是引用计数算法,我以下举两个样例 x = 4 y = 4 aList = [1, 2, 3] bList = [1, ...
分类:
编程语言 时间:
2018-04-10 15:25:13
阅读次数:
161
Java虚拟机的内存区域中,程序计数器、虚拟机栈和本地方法栈三个区域是线程私有的,随线程生而生,随线程灭而灭;栈中的栈帧随着方法的进入和退出而进行入栈和出栈操作,每个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这三个区域的内存分配和回收都具有确定性。垃圾回收重点关注的是堆和方法区部分的 ...
分类:
编程语言 时间:
2018-03-30 13:14:20
阅读次数:
169
相信和小编一样的程序猿们在日常工作或面试当中经常会遇到JVM的垃圾回收问题,有没有在夜深人静的时候详细捋一捋JVM垃圾回收机制中的知识点呢?没时间捋也没关系,因为小编接下来会给你捋一捋。 一、 技术背景你要了解吧 二、 哪些内存需要回收? 2.1 引用计数算法 2.1.1 算法分析 2.1.2 优缺 ...
分类:
编程语言 时间:
2018-03-28 12:20:33
阅读次数:
186