虚拟机
zeekling
这个作者很懒,什么都没留下…
展开
-
垃圾回收算法
垃圾收集算法标记-清除算法最基础的收集算法是”标记-清除”(Mark-Sweep)算法,算法分为“标记”和“清除”两个阶段:首先标记出所有需要回收的对象,在标记完成后统一回收所有被标记的对象。标记-清除算法主要有两个不足:一个是效率问题,标记和清除两个过程的效率,另一个是空间问题,标记清除之后会产生大量不连续的内存碎片,空间kongjian碎片太多可能会导致以后在程序运行过程中需要分配较大对象时,无翻译 2016-06-25 10:32:03 · 548 阅读 · 0 评论 -
java虚拟机的垃圾收集器之新生代收集器
hotspot虚拟机的收集器hotspot垃圾收集器主要有七种:如图所示: 图中上面部分是新生代的垃圾收集器,下面部分表示老年代的垃圾收集器,两个垃圾收集器的之间的连线表示两个收集器搭配使用。serial收集器serial收集器是最基本发展最悠久的收集器。serial收集器是一个单线程的收集器,但他的“单线程”的意义并不仅仅只会使用一个cpu或者一条线程去完成垃圾收集工作,更重要的是在他进行垃翻译 2016-06-28 10:25:56 · 1559 阅读 · 0 评论 -
java虚拟机收集器之老年代收集器
java虚拟机收集器之老年代收集器Serial Old收集器Serial Old收集器是Serial收集器的老年代版本,同样是一个单线程收集器,使用“标记-整理”算法。这个收集器的主要意义也是在于Client模式下的虚拟机使用。 主要用途: 1、一种用途是在JDK1.5以及之前的版本与Parallel Scavenge收集器搭配使用。 2、另一种用途就是作为CMS收集器的后备预案,在并发收集发翻译 2016-06-28 11:35:05 · 2075 阅读 · 1 评论 -
java对象的访问
java对象的访问我们都知道一般访问和操作对象都是通过引用来操作和访问对象。目前对象的访问方式有句柄和直接指针:1、如果使用句柄访问的话,那么java堆中将会划分出一块内存作为句柄池,reference中存储的就是对象的句柄地址,而句柄中包含了对象的实例数据与类型数据各自的具体地址信息。 2、如果使用直接指针访问,那么java堆对象的布局就必须考虑如何放置访问类型数据的相关信息,而refer翻译 2016-06-24 16:15:07 · 878 阅读 · 0 评论 -
谈谈我对类加载器的理解
谈谈我对类加载器的理解最近在看java虚拟机和tomcat源码,看到了类加载器这块儿,有点感触,随便写写。在说类加载器之前,我们先聊聊虚拟机的加载机制:1、一个类的生命周期:加载、链接、初始化、使用、卸载。链接又可以分为验证、准备、解析三个过程。 其中加载、验证、准备、初始化、使用、卸载是按顺序执行的,注意没有解析这一步。在加载阶段,虚拟机完成三件事: 1)通过一个类的全限定名类获取定义原创 2016-06-20 15:38:52 · 1788 阅读 · 0 评论 -
java垃圾收集器之G1收集器
G1收集器G1收集器是面向服务端应用的垃圾收集器。G1收集器在未来可能替换掉CMS收集器。G1收集器的特点:并行与并发:G1能充分利用多CPU、多核环境下的硬件优势、使用多个CPU来缩短stop the world 停顿时间,部分其他收集器原本需要停顿java线程执行的GC动作,G1收集器仍然可以通过并发的方式让java程序继续执行。分代收集:空间整合:与CMS的“标记-清理”算法不同,G1从翻译 2016-06-29 09:17:13 · 779 阅读 · 0 评论 -
java内存模型的理解
java内存模型java虚拟机在执行java程序时会把内存分为不同的数据区: 上图中蓝色的两块区域是所有线程共享的数据区,即方法区和堆是所有线程共享的。而剩下的三块区域:虚拟机栈、本地方法栈、程序计数器。java虚拟机栈我们经常可以听到有人把java内存分为堆内存和栈内存,其中栈就是虚拟机栈,局部变量表存放了编译器可知的各种基本数据类型(boolean、byte、char、short、int、翻译 2016-06-22 21:33:47 · 460 阅读 · 0 评论