java虚拟机
我是奥特man
每天都有新收获
展开
-
垃圾收集算法
1.标记-清除算法 回收前,将可回收的进行标记,然后回收。 不足:标记清除后可能产生大量的不连续的碎片,碎片太多,导致以后程序中需要更大的内存空间,而无法找到连续内存,而不得不提前触发另一次垃圾收集。 2.复制算法 将内存容量分为大小相等的两块,每次只用一块a,当这一块a容量满了的时候,就将其还存活的对象复制到另一块b上去,并进行一次垃圾清除,这样a就为空,这种算法现在主要用于回收新生代内存原创 2017-02-28 17:03:59 · 250 阅读 · 0 评论 -
jvm垃圾回收机制
程序计数器,虚拟机栈,本地方法栈,是线程私有的内存空间,随线程而生,随线程而灭,器内存回收随方法或线程结束而回收,所以垃圾回收对这几个区域不过多的考虑。而java堆和方法区,在运行期间才知道创建那些对象,在其上的回收具有动态性。 (1)对象是否存活 判断算法 1.引用计数法(python使用) 做法:给对象添加一个引用计数器,有地方引用它,计数器加1,引用失效,计数器便减1,但可能存在对象间原创 2017-02-14 21:43:33 · 225 阅读 · 0 评论 -
理解jvm类加载机制(基础)
java虚拟机类加载机制:jvm把描述类的数据从class文件加载到内存,并对数据进行校验,转换解析,初始化,最终形成可以被虚拟机直接执行的java类型。主要有:加载->验证->准备->解析->初始化->使用->卸载。下面进行逐个说明: 加载<1>通过类的全限名称获取定义此类的二进制字符流(未规定必须从class文件中获取,jar zip,applet,运算时动态生成,jsp中获取)。 <2>字原创 2017-03-12 20:55:11 · 301 阅读 · 0 评论 -
理解jvm类加载机制(双亲委派模型)
类加载器主要分为 启动类加载器:加载 lib目录下的jar包(jar包中存放class文件) 扩展类加载器:加载lib/ext目录下的类库。 应用类(系统类)加载器:加载用户类路径(classpath)上所指定的类库。双亲委派模型:如果一个类加载器收到了类加载的请求,他首先不会自己去尝试加载这个类,而是把这个请求委派给父类加载器去完成,每层都如此,只有父类加载器反馈自己无法加载请求时,子·加原创 2017-03-12 21:23:02 · 492 阅读 · 0 评论 -
java虚拟机内存布局
java虚拟机运行时数据区: java虚拟机在执行java程序时,将其所管理的内存,划分为若干个数据区域。其中包括:程序计数器,方法区,堆,虚拟机栈,本地方法栈。 下面一一进行解释。1.程序计数器:当前线程执行字节码的行号指示器,保存cpu执行当前指令的地址,cpu从程序计数器中获得指令的执行地址,程序计数器便自动加1或者根据转移指针得到下一条指令的地址。<1>在多线程任务调度中,cpu轮流执行原创 2017-02-13 22:25:40 · 1338 阅读 · 0 评论