深入理解JAVA虚拟机
蒻鸡Kid
这个作者很懒,什么都没留下…
展开
-
深入理解java虚拟机之虚拟机类加载机制
类加载的时机 类的生命周期 加载 连接 验证 准备 解析 初始化 使用 卸载 虚拟机规定必须初始化 遇到new getstatic putstatic invokestatic 四个字节码指令,如果类没有初始化,则需要先触发初始化。 使用场景 使用new 关键字 实例化对象 读取或者设置一个类的静态字段 调用一个类的静态方法的时候 使用java.lang.refle...原创 2020-03-31 22:30:35 · 88 阅读 · 0 评论 -
深入理解JAVA虚拟机之垃圾收集器与内存分配策略
判断对象是否还活着 引用计数算法 每当有第一个地方引用了对象,计数器就+1 当失效就-1,如果计数器为0 那么对象就不可能再被使用了。 可达性分析法 通过一些列成为 gc roots的对象作为起始点,从这些结点开始搜索,搜索走过的路径称为引用链,当一个对象到 gc roots 没有任何引用链相连,则证明该对象是不可用的。 可用作为gc roots的对象包括 java栈(局部变量表的)中的引...原创 2020-03-25 21:19:39 · 160 阅读 · 0 评论 -
深入理解JAVA虚拟机之运行时数据区
程序计数器 极小的一块内存空间,可以看做线程所执行的字节码的行号指示器。 线程私有 每个线程都拥有一个独立的程序计数器。每个线程之间的计数器互相不影响。 如果在执行的是一个java方法,那么计数器记录的是正在执行的虚拟机的字节码指令的地址;如果执行的native方法,这个计数器值则为空。 这个区域在java虚拟机规范中 表明了不会出现 OutOfMemoryError情况 java虚拟机栈 ...原创 2020-03-25 21:17:39 · 87 阅读 · 0 评论