
jvm
MU_kaka
仰天大笑出门去,我辈岂是蓬蒿人
展开
-
jvm相关参数
一.垃圾收集时的信息的打印1. -verbose:gc (简要信息)[Full GC 168K->97K(1984K), 0.0253873 secs] 箭头前后分别表示GC前后存活对象使用的内存容量 括号内为堆内存的总容量 最后显示的是垃圾回收所用的时间2.-XX:+PrintGCDetails (详细信息)二.选择使用的收集器1.Seria收集器 -XX:+UseSerial...原创 2018-06-30 19:02:22 · 123 阅读 · 0 评论 -
jvm(3)内存分配
一.Eden区域 对象优先在Eden上分配原创 2018-06-30 15:32:57 · 122 阅读 · 0 评论 -
jvm(4)虚拟机工具
一.jps(java process status) 查看本地虚拟机唯一id:lvmid jps -l 类的全名 jps -m 类接收的参数 jps -v 虚拟机参数二.Jstat 依赖于jps(首先要通过jps获得lvmid) jstat:类装载,内存,垃圾收集,jit编译的信息(1)jstat -gcutil lvmidS0:年轻代的第一个survivor(幸存...原创 2018-06-30 18:37:47 · 341 阅读 · 0 评论 -
jvm(5)Class文件
一.Class文件结构 Class文件是一组以8位字节为基础单位的二进制流,Class文件中有两种数据类型,分别是无符号数和表 1,无符号数,以u1、u2、u4、u8分别代表1个字节、2个字节、4个字节、8个字节的无符号数 2,表是由多个无符号数或者其它表作为数据项构成的复合数据类型,所以表都以“_info”结尾,由多个无符号数或其它表构成的复合数据类型 1.魔数 魔...原创 2018-07-01 12:48:07 · 151 阅读 · 0 评论 -
jvm(6)类加载机制
一.类加载机制概述 虚拟机把描述类的数据从class文件加载到内存,并对数据进行校验,解析,初始化,最终形成可以被虚拟机直接使用的类型二.什么情况下类不被加载? 1.通过子类引用父类的静态字段,子类不会被初始化 2.通过数组定义来引用类 3.调用类的常量三.类加载的过程? 1.加载 (1)通过类的权限定名获取类的二进制流 (2)将这个字节流...原创 2018-07-01 16:33:57 · 118 阅读 · 0 评论 -
jvm(1)内存结构和对象
一,java历史1.java之父:詹姆斯·高林斯2.java发展简史——1991年oak(嵌入式编程语言)——1995 java(write once run anywhere )——1996 jdk1.0(包含jvm Classic VM)——1997 jdk1.1( 内部类,反射,jar文件格式)——1998 jdk1.2(java开发三个方向,Hotspot VM)——2000 jdk1.3...原创 2018-06-28 09:08:13 · 192 阅读 · 0 评论 -
jvm(2)垃圾回收
一.如何判断对象为垃圾对象? 1.引用计数法 在对象中添加引用计数器,当有地方引用这个对象的时候,引用计数器的值就+1,当引用失效的时候,计数器的值就-1 (1)idea中打印GC日志的方法: 添加:-XX:+PrintGCDetails (2)没有虚拟机采用这种算法回收垃圾,因为出现对象之间互相引用的时候,即...原创 2018-06-28 16:16:14 · 122 阅读 · 0 评论 -
jvm(7)happens-before 和 重排序
一.定义 happens-brfore是用来指定两个操作之间的执行顺序,用来保证可见性。 在java内存模型中,如果一个操作执行的结果要对另一个操作可见,那么这两个操作之间存在happens-before关系 二.happens-before规则 1.程序顺序规则 单线程中每个操作,总是前一个操作happens-before后一个操作 2.监视器锁...原创 2018-07-01 19:13:42 · 192 阅读 · 0 评论