
jvm
文章平均质量分 87
fujunhuiliyan
一叶孤舟泛海上
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2-JVM-内存模型
私有 线程 程序计数器PC(native时为undefined) 虚拟机栈 本地方法栈(结构取决于语言) 虚拟机栈 栈帧(分配后无法改变大小) 本地变量数组(slot) 类方法参数从0开始,实例方法0放this this引用 方法参数 局部变量 返回值地址(returnAddress) 常量池引用 -> 当前类运行时常量池(reference) 操作数栈 类似cpu通用寄存器 本...原创 2018-04-06 16:37:32 · 159 阅读 · 0 评论 -
2-JVM-java对象
对象组成 对象头(Header)= Mark Word + Class Pointer 实例数据(Instance Data) 对齐填充(Padding) 普通对象头 2个机器码 x32:8 bytes x64:16 bytes 数组对象头: x64:24 bytes(多的8 bytes是数组长度) reference: x32:4 bytes x64:8 bytes 指针压缩 -X...原创 2018-04-06 16:39:05 · 138 阅读 · 0 评论 -
2-JVM-GC
引用 狭义引用 地址 扩充引用 强引用 Strong Reference Object obj = new Object() 软引用 Soft Reference SoftReference,将要发生内存溢出才会回收 弱引用 Weak Reference WeakReference,不影响回收,可做回收通知 虚引用 Phantom Reference PhantomReference,不...原创 2018-04-06 16:39:49 · 147 阅读 · 0 评论 -
2-JVM-虚拟机参数
堆大小设置 JVM堆大小限制因素 操作系统位数 系统可用物理内存 系统可用虚拟内存 x32:Windows一般1.5~2G;Linux 2~3G x64:无限制 典型设置 -Xms3550M -Xmx3550M -Xmn2G -Xss128K -XX:NewRatio=4 -XX:SurvivorRatio=8 -XX:PermSize=16M -XX:MaxPermSize=16...原创 2018-04-06 16:43:10 · 175 阅读 · 0 评论 -
2-JVM-类加载
加载过程 装载load 查找并加载类的二进制数据 链接link 验证 确保被加载类的正确性和合法性,防止高手伪造恶意的非法class文件 准备 为类的静态变量分配内存,并将其初始化为默认值 解析 符号引用 - 直接引用 初始化initialize 为类的静态变量赋予正确的初始值 静态代码块 初始化 引起类初始化情况 称为主动引用,被动引用不会引发初始化 new一个对象,ne...原创 2018-04-06 16:43:41 · 187 阅读 · 0 评论 -
2-JVM-字节码
概述 字节码采用Big-Endian,是Spark、PowerPC等处理器的默认字节序;x86则是用Little-Endian - 字节码文件采用一种类似于C语言结构体的伪结构来存储数据,只有两种数据类型:无符号数和表 - 无符号数 - 基本数据类型,以u1,u2,u4,u8分别代表1,2,4,8字节的无符号数 - 可用来描述数字、索引引用、数量值或者按UTF...原创 2018-04-06 16:44:43 · 199 阅读 · 0 评论