泰然世界

导航

 

2017年10月18日

摘要: java1.2之后将引用分为强引用(Strong Reference)、软引用(Soft Reference)、弱引用(Weak Reference)、虚引用(Phantom Reference)4种,这4种引用强度依次逐渐减弱。 强引用就是指在程序代码之中普遍存在的,类似“Object obj=n 阅读全文
posted @ 2017-10-18 11:04 泰然世界 阅读(102) 评论(0) 推荐(0) 编辑
 
摘要: 这个算法的基本思路就是通过一系列的称为“GC Roots”的对象作为起始点,从这些节点开始向下搜索,搜索所走过的路径称为引用链(Reference Chain),当一个对象到GC Roots没有任何引用链相连(用图论的话来说,就是从GC Roots到这个对象不可达)时,则证明此对象是不可用的。 在J 阅读全文
posted @ 2017-10-18 10:50 泰然世界 阅读(547) 评论(0) 推荐(0) 编辑
 
摘要: 垃圾回收机制算法 阅读全文
posted @ 2017-10-18 10:46 泰然世界 阅读(733) 评论(0) 推荐(0) 编辑
 

2017年7月30日

摘要: 运行时常量池是方法区的一部分。class中除了有类的版本,字段,方法,接口等描述信息外,还有一项信息是常量池,用于存放编译期生成的各种字面量和符号引用,这部分内容将在类加载后存放在方法区的运行时常量池中。 Java虚拟机对class文件的每一部分(自然也包括常量池)的格式都有严重的规定,每一个字节用 阅读全文
posted @ 2017-07-30 17:00 泰然世界 阅读(320) 评论(0) 推荐(0) 编辑
 
摘要: 方法区与Java堆一样,是各个线程共享的内存区域,他在与存储已被虚拟机加载的类信息,常量,静态变量,即时编译器编译后的代码等数据,虽然Java虚拟机规范把方法区描述为堆得一个逻辑部分,但是他却有一个别名Non-heap(非堆),目的是与Java堆区分开来。 对于习惯在Hotspot虚拟机上开发和部署 阅读全文
posted @ 2017-07-30 16:40 泰然世界 阅读(364) 评论(0) 推荐(0) 编辑
 
摘要: 对于大多数应用程勋来书,Java堆是Java虚拟机所管理的内存中最大的一块。Java堆是被所有线程共享的一块内存区域,在虚拟机启动时创建,此内存区域的唯一目的就是存放对象实例,几乎所有的对象实例都在这里分配内存。这一点在Java虚拟机规范中描述是:所有的对象实例及数组都要在堆上分配,但是随着JIT编 阅读全文
posted @ 2017-07-30 16:20 泰然世界 阅读(96) 评论(0) 推荐(0) 编辑
 
摘要: 与程序计数器一样,Java虚拟机栈也是线程私有的,他的生命周期与线程相同。虚拟机栈描述的是Java执行的内存模型:每个方法被执行的时候都会同时创建一个栈帧用于存储局部变量表,操作栈,动态链接,方法出口等信息。每个方法被调用直至执行完成的过程,就对应一个虚拟机栈由入栈到出栈的过程。 局部变量表存放了编 阅读全文
posted @ 2017-07-30 15:06 泰然世界 阅读(106) 评论(0) 推荐(0) 编辑
 

2017年7月29日

摘要: 程序计数器是一块较小的内存空间,他可以看做是当前线程所执行的行号指示器。在虚拟机的概念模型(仅是概念模型,各种虚拟机可能会通过一些更高效率的方式去实现)里,字节码解释器工作室就是通过改变这个计数器的值来选取下一条需要执行的字节码指令,分支,循环,跳转,异常处理,线程恢复等基础功能都需要依赖这个计数器 阅读全文
posted @ 2017-07-29 17:25 泰然世界 阅读(165) 评论(0) 推荐(0) 编辑