Java技术杂谈
hotdogzu
这个作者很懒,什么都没留下…
展开
-
Java虚拟机学习随笔(一)
编译JDK 想要一探JDK内部的实现机制,最便捷的路径之一就是自己编译一套JDK,通过阅读和跟踪调试JDK源码去了解Java技术体系的原理。JDK中的很多底层方法都是Native的,当需要跟踪这些方法的运作或对JDK进行Hack的时候,都需要编译一套自己的JDK。现在网络上有不少开源的JDK实现可供选择,如Apache Harmony、OpenJDK等。考虑到Sun系列的JDK是现在使用得最广泛原创 2012-09-03 17:22:08 · 261 阅读 · 0 评论 -
Java虚拟机学习随笔(二)
Java内存区域与内存溢出异常 对于Java程序员来说,在虚拟机的自动内存管理机制的帮助下,不再需要为每一个new操作去写配对的delete/free代码,而且不容易出现内存泄露和内存溢出问题,看起来由虚拟机管理内存一切都很美好,不过,也正是因为Java程序员把内存控制的权利交给了虚拟机,一旦出现内存泄露和内存溢出的问题,如果不了解虚拟机是怎样使用内存的,那排查错误将会成为一项异常艰难的工作。原创 2012-09-03 17:44:16 · 476 阅读 · 0 评论 -
Java虚拟机学习随笔(四)
内存分配策略 Java技术体系的自动内存管理最终可以归结为自动化地解决两个问题:给对象分配内存以及回收分配给对象的内存。对象的内存分配,往大方向上讲,就是在堆上分配,对象主要分配在新生代的Eden区上,如果启动了本地线程分配缓冲,将按线程优先在TLAB上分配。少数情况下也可能会直接分配在老年代中,分配的规则并不是百分百固定的,其细节取决于当前使用的哪一种垃圾收集器组合,还有虚拟机中与内存相关原创 2012-09-06 16:40:22 · 387 阅读 · 0 评论 -
Java虚拟机学习随笔(三)
垃圾收集器 说起垃圾收集器(Garbage Collection,GC),我想大家都并不陌生,GC需要完成的事情有哪些呢?1、哪些内存需要回收?2、什么时候回收?如何回收?其实时日至今,内存的动态分配与内存回收技术已经相当成熟,一切看起来都进入了“自动化”时代,那为什么我们还要去了解GC和内存分配呢?当需要排查各种内存溢出、内存泄露问题时,当垃圾收集器成为系统达到更高并发量的瓶颈时,我们就需要对原创 2012-09-06 09:23:53 · 215 阅读 · 0 评论