
jvm
文章平均质量分 67
jzq1999
这个作者很懒,什么都没留下…
展开
-
Java对象的强、软、弱和虚引用
在JDK1.2以前的版本中,当一个对象不被任何变量引用,那么程序就无法再使用这个对象。也就是说,只有对象处于可触及状态,程序才能使用它。这 就像在日常生活中,从商店购买了某样物品后,如果有用,就一直保留它,否则就把它扔到垃圾箱,由清洁工人收走。一般说来,如果物品已经被扔到垃圾箱,想再 把它捡回来使用就不可能了。 但有时候情况并不这么简单,你可能会遇到类似鸡肋一样的物...原创 2009-04-29 23:45:52 · 84 阅读 · 0 评论 -
Java堆和栈、String Pool(字符串池)
Thinking in Java中详细介绍了当程序运行的时候,具体的内存分配。 可以分为寄存器、堆栈、堆、常量存储、非RAM存储。 1. 堆栈比较 栈(stack)与堆(heap)都是Java用来在RAM中存放数据的地方。 栈的优势是,存取速度比堆要快,仅次于CPU的寄存器,栈数据可以共享。。但缺点是,存在栈中的数据大小与生存期必须是确定的,缺乏灵活性。栈中主要存放基本类型变...原创 2009-05-05 18:43:30 · 167 阅读 · 0 评论 -
JVM基本垃圾回收算法
按照基本回收策略分 引用计数(Reference Counting): 比较古老的回收算法。原理是此对象有一个引用,即增加一个计数,删除一个引用则减少一个计数。垃圾回收时,只用收集计数为0的对象。此算法最致命的是无法处理循环引用的问题。 标记-清除(Mark-Sweep): 此算法执行分两阶段。第一阶段从引用根节点开始标记所有被引用的对象,第二阶段遍历整个堆,把未标...原创 2009-12-06 23:49:04 · 93 阅读 · 0 评论 -
Java垃圾回收机制(一)
1.Java垃圾收集算法的核心思想 Java语言建立了垃圾收集机制,用以跟踪正在使用的对象和发现并回收不再使用(引用)的对象。Java垃圾回收算法可以有效防范动态内存分配中可能发生的两个危险:因内存垃圾过多而引发的内存耗尽,以及不恰当的内存释放所造成的内存非法引用——内存泄露。 垃圾收集算法的核心思想是:对虚拟机可用内存空间,即堆空间中的对象进行识别,如果对象正在被引用,那...原创 2012-09-19 07:39:38 · 73 阅读 · 0 评论 -
JAVA和JVM运行原理
这里和大家简单分享一下JAVA和JVM运行的原理,Java语言写的源程序通过Java编译器,编译成与平台无关的‘字节码程序’(.class文件,也就是0,1二进制程序),然后在OS之上的Java解释器中解释执行,而JVM是java的核心和基础,在java编译器和os平台之间的虚拟处理器。 JAVA和JVM运行的原理 1.Java语言运行的过程 Java语言写的源程序通过Java编译...原创 2012-09-19 07:46:22 · 106 阅读 · 0 评论 -
JVM内存模型
一. JVM内存模型 1.1 栈-stack Java栈是与每一个线程关联的,JVM在创建每一个线程的时候,会分配一定的栈空间给线程。它主要用来存储线程执行过程中的局部变量,方法的返回值,以及方法调用上下文。 stack的区域很小,只有1M,特点是存取速度很快,所以在stack中存放的都是快速执行的任务,比如static变量,static方法,基本数据类型的数据,和对象的引用(...原创 2012-09-19 07:55:21 · 68 阅读 · 0 评论 -
详细解读JVM中的对象生命周期
在JVM运行空间中,对象的整个生命周期大致可以分为7个阶段:创建阶段(Creation)、应用阶段(Using)、不可视阶段(Invisible)、不可到达阶段(Unreachable)、可收集阶段(Collected)、终结阶段(Finalized)与释放阶段(Free)。上面的这7个阶段,构成了 JVM中对象的完整的生命周期。下面分别介绍对象在处于这7个阶段时的不同情形。 创建阶段 ...原创 2012-09-19 12:10:31 · 139 阅读 · 0 评论