参加了几场面试,小结下问题:Java 运行时内存模型,最好能画出来Java 分代GC的原理,JVM中的集中GC 算法基本多线程的方法和原理HashMap ConcurrentHashMap怎么实现的Java序列化有几种方法,内建的Java序列化方法怎么用,如何定制序列化方法Java IO框架,异步i...
分类:
编程语言 时间:
2015-09-16 12:43:00
阅读次数:
275
hashmap为什么线程不安全, java.concurrent包的常用使用 spring如何进行bean的管理 tomcat常用的gc算法,如何配置 jvm内存模型 http请求的完整流程 ?从dns到三次握手到最后到action,以及http协议 zoonkeeper的原...
分类:
其他好文 时间:
2015-08-31 21:54:07
阅读次数:
172
本文主要内容:GC的概念GC算法 引用计数法(无法解决循环引用的问题,不被java采纳) 根搜索算法 现代虚拟机中的垃圾搜集算法: 标记-清除 复制算法(新生代) 标记-压缩(老年代) 分代收集可触及性Stop-The-World一、GC的概念:GC:G...
分类:
编程语言 时间:
2015-08-20 10:25:50
阅读次数:
169
对于Java开发人员来说,了解垃圾回收机制(GC)有哪些好处呢?首先可以满足作为一名软件工程师的求知欲,其次,深入了解GC如何工作可以帮你写出更好的Java应用。这仅仅代表我个人的意见,但我坚信一个精通GC的人往往是一个好的Java开发者。如果你对GC的处理过程感兴趣,说明你已经具备较大规模应用的开发经验。如果你曾经想过如何正确的选择GC算法,那意味着你已经完全理解你所开发的应用的特点。当然,我们不...
分类:
编程语言 时间:
2015-08-14 19:15:13
阅读次数:
145
GC优点:1.提高生产率,不用逐行检查内存是否释放。2.Java安全策略的一部分,不会使用户错误释放内存而导致JVM崩溃。GC算法基本两点:1.检测出垃圾对象。2.回收垃圾对象,释放相应堆空间。垃圾检测一般是先建立一个根对象集合,其它对象要是从根对象起可触及就是活的,无法到达的就是垃圾。区别活动对象...
分类:
其他好文 时间:
2015-06-18 21:57:56
阅读次数:
146
引用计数:一个对象被引用计数器加一,取消引用计数器减一,引用计数器为0才能被回收。优点:简单。缺点:不能解决循环引用的问题,比如A引用B,B引用A,但是这两个对象没有被其他任何对象引用,属于垃圾对象,却不能回收;每次引用都会附件一个加减法,影响性能。
标记清除法:分为两个阶段:标记阶段和清除阶段。标记阶段通过根节点标记所有可达对象,清除阶段清除所有不可达对象。缺点:因为清除不可达对象之后剩余的内存不...
分类:
编程语言 时间:
2015-05-27 15:44:48
阅读次数:
131
[Author]: kwu -- 关于JVM常用的GC算法...
分类:
编程语言 时间:
2015-05-11 09:08:43
阅读次数:
152
引言 对于Java中的垃圾回收机制,我们需要了解几个方面,本文也是从这几个方面通过回答这些问题而弄明白Java中的垃圾是如何回收的 首先我们要知道哪些内存需要回收,这一部分涉及到的算法有引用计数算法,根搜算法,但引用计数算法无法解决对象之间相互循环引用的问题。 知道了哪些内存需要回收之后,我们还需要...
分类:
编程语言 时间:
2015-05-10 16:54:38
阅读次数:
295
引用计数算法:
Python使用的
给对象中添加一个引用计数器,每当有一个地方引用它时,计数器值就加1;当引用失效时,计数器值就减1;任何时刻计数器为0的对象就是不可能再被使用的。
缺点:很难解决对象之间的相互循环引用的问题。
互相引用着对方,导致它们的计数都不为0,于是引用计数算法无法通知GC收集器回收它们。
根搜索算法:
Java,C#,Lisp用的是这个。
通过一系...
分类:
编程语言 时间:
2015-05-04 22:11:09
阅读次数:
183
对Java垃圾回收最大的误解是什么?它实际又是什么样的呢?
当 我还是小孩的时候,父母常说如果你不好好学习,就只能去扫大街了。但他们不知道的是,清理垃圾实际上是很棒的一件事。可能这也是即使在Java的世界中, 同样有很多开发者对GC算法产生误解的原因——包括它们怎样工作、GC是如何影响程序运行和你能对它做些什么。因此我们找到了Java性能调优专家Haim
Yadid,并把名为Java
p...
分类:
编程语言 时间:
2015-04-22 11:51:11
阅读次数:
159