JVM
炫码
这个作者很懒,什么都没留下…
展开
-
JVM监控工具
https://www.cnblogs.com/ityouknow/p/5714703.html 没什么好写的,直接转载吧转载 2019-01-23 22:06:05 · 141 阅读 · 0 评论 -
Class文件详解
有点难,只是大概了解了下,不能用眼睛读Class源码,简单总结了下,以后学会了补上 https://blog.csdn.net/IT_GJW/article/details/80447947 主要有以下: 魔数(java为cafebabe) 版本(java1.8为52) 常量池 访问标志 类索引(this_class)、父类索引(super_class)与接口索引集合(interfaces) 字段...转载 2019-01-23 22:07:58 · 263 阅读 · 0 评论 -
JVM字节码指令
前辈们已经写的很详细了,这里转载下。 https://www.cnblogs.com/tenghoo/p/jvm_opcodejvm.html 查看指令用javap命令 主要有 加载指令和存储指令 运算指令 类型转换指令(窄化类型处理和宽化类型处理) 对象创建和访问指令 操作树栈指令 控制转移指令 方法调用指令 异常处理指令 同步指令 ...转载 2019-01-23 22:09:46 · 221 阅读 · 0 评论 -
JVM类加载机制
Java类的加载机制是懒加载机制,即使用的时候去加载 包括以下 7 个阶段: 加载(Loading) 验证(Verification) 准备(Preparation) 解析(Resolution) 初始化(Initialization) 使用(Using) 卸载(Unloading) 类初始化时机 虚拟机规范中并没有强制约束何时进行加载,但是规范严格规定了有且只有下列五种情况必须对类进行初始...原创 2019-01-23 22:37:33 · 212 阅读 · 0 评论 -
JVM内存区域
概述 Jvm运行时数据区通常包括这几个部分:程序计数器(Program Counter Register)、Java虚拟机栈(VM Stack)、本地方法栈(Native Method Stack)、方法区(Method Area)、堆(Heap)。其中程序计数器、java虚拟机栈和本地方法栈是线程独享的,堆和方法区是共享的。 1.程序计数器 也有称作为PC寄存器,记录正在执行的虚拟机字节码指令...原创 2019-01-21 21:46:14 · 149 阅读 · 0 评论 -
Java对象详解
一、Java对象的组成 1.对象头 运行时数据 存储对象运行时的数据,如哈希码、GC分代年龄、锁状态标志、线程持有的锁、偏向线程ID、偏向时间戳等,这部分数据官方成为“Mark Word”,它的长度在32位和64位的虚拟机中分别是32bit和64bit。32bit的HotSpot虚拟机中,当对象未被锁定时的组成如下表: 类型指针 对象指向它的类元数据的指针,虚拟机通过这个指针来确定这个对象是哪...原创 2019-01-21 21:56:44 · 368 阅读 · 0 评论 -
JVM垃圾回收
垃圾回收主要是针对堆和方法区进行。程序计数器、虚拟机栈和本地方法栈这三个区域属于线程私有的,只存在于线程的生命周期内,线程结束之后也会消失,因此不需要对这三个区域进行垃圾回收。 一、判断对象是否存活 1. 引用计数算法 给对象添加一个引用计数器,当对象增加一个引用时计数器加 1,引用失效时计数器减 1。引用计数不为 0 的对象仍然存活。但两个对象出现循环引用的情况下,此时引用计数器永远不为 0,导...原创 2019-01-21 22:23:41 · 162 阅读 · 0 评论