转自:http://www.cnblogs.com/laoyangHJ/archive/2011/08/17/JavaGC.html——————————————————————————————————Java的堆是一个运行时数据区,类的实例(对象)从中分配空间。Java虚拟机(JVM)的堆中储存着正...
分类:
编程语言 时间:
2014-09-18 00:41:42
阅读次数:
388
转自:http://www.cnblogs.com/laoyangHJ/archive/2011/08/17/gc-Stack.html——————————————————————————————————————————————在JVM中,内存分为两个部分,Stack(栈)和Heap(堆),这里,我...
分类:
编程语言 时间:
2014-09-18 00:30:22
阅读次数:
358
如果想观察JVM进程占用的堆内存,可以通过命令工具jmap或者可视化工具jvisualvm.exe。JVM这些启动参数都拥有默认值,如果想了解JVM的内存分配策略,最好手动设置这些启动参数。再通过JDK提供的工具的统计结果,就比较容易理解这些内存分配的理论知识。运行环境是win7 32位操作系统,JDK1.7.0_60版本。可以发现:堆内存、新生代内存、老年代内存、永久代内存,都有一个初始内存,还有一个最大内存。...
分类:
其他好文 时间:
2014-09-17 21:56:42
阅读次数:
377
一、Java类加载机制1.概述Class文件由类装载器装载后,在JVM中将形成一份描述Class结构的元信息对象,通过该元信息对象可以获知Class的结构信息:如构造函数,属性和方法等,Java允许用户借由这个Class相关的元信息对象间接调用Class对象的功能。虚拟机把描述类的数据从class文...
分类:
编程语言 时间:
2014-09-17 21:50:22
阅读次数:
342
一、判断对象是否存活——可达性分析算法
基本思想:...
分类:
编程语言 时间:
2014-09-17 20:28:02
阅读次数:
254
虚拟机遇到一条new 指令时:
1.检查这个指令的参数是否能在常量吃中定位到类的符号引用,并检查这个符号引用代表类是否已被加载、解析和初始化过。如果没有,必须...
分类:
编程语言 时间:
2014-09-17 18:45:22
阅读次数:
199
前言CMS,全称Concurrent Low Pause Collector,是jdk1.4后期版本开始引入的新gc算法,在jdk5和jdk6中得到了进一步改进,它的主要适合场景是对响应时间的重要性需求 大于对吞吐量的要求,能够承受垃圾回收线程和应用线程共享处理器资源,并且应用中存在比较多的长生命周...
分类:
其他好文 时间:
2014-09-17 18:33:42
阅读次数:
299
前言JVM GC是JVM的内存回收算法,调整JVM GC(Garbage Collection),可以极大的减少由于GC工作,而导致的程序运行中断方面的问题,进而适当的提高Java程序的工作效率。但是调整GC是以个极为复杂的过程,所以我们要了解JVM内存组成,回收算法,对象分配机制。JVM 堆内存组...
分类:
其他好文 时间:
2014-09-17 18:23:52
阅读次数:
247
Core Java 2(最新版已经到了第七版,共2卷):基础
Thinking in Java(最新版已经到了第四版):提高
Effective Java:高级(强烈推荐)
The JavaTM Virtual Machine Specification, Second Edition(深入剖析JVM的运行机制):难
The Java Language Specification(...
分类:
编程语言 时间:
2014-09-17 15:19:32
阅读次数:
235