
jvm
神奇小白
厚德载物、孜孜不倦
展开
-
Java虚拟机(HotSpot)-对象:创建、内存布局、访问定位
在这里我们讨论的对象仅限于普通对象,不包括数组和class一、对象的创建虚拟机遇到一条new指令时,1、首先将去检查这个指令的参数是否能在常量池(方法区中)中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,必须先执行类的加载过程。2、在类加载检查通过后,接下来虚拟机将为新生对象分配内存。对象所需内存的大小在类加载完成后便可以完全确定,...原创 2018-10-25 08:23:55 · 510 阅读 · 0 评论 -
透析java本质的36个话题-第二章运算符与表达式
9、莫衷一是--- i+++j该如何计算9.1、三个加号 public class Test{ public static void main(String[] args) { int i =2,j=9; System.out.println(i+++j); //11 i =2;j=9; System...原创 2018-10-31 22:52:11 · 388 阅读 · 0 评论 -
虚拟机类加载机制
1、概述 2、类加载的时机类的生命周期 /** * @author ljy * @version V1.0 * @Package PACKAGE_NAME * @Description: * 被动使用类字段演示一 * 通过子类引用父类的静态字段,不会导子类初始化 * @date 2018/10/26 13:20 */class SuperClass...原创 2018-10-26 16:45:25 · 144 阅读 · 0 评论 -
理解jvm的无关系,初识class文件
推荐JVM的9款编程语言杀手开发利器 2、class文件结构 2.1、魔数与class文件版本2.2、常量池 2.3、访问标志2.4、类索引、父类索引与接口索引集合2.5、字段表集合2.6、方法表集合 2.7、属性表集合 ...原创 2018-10-26 12:53:48 · 163 阅读 · 0 评论 -
垃圾收集算法
由于垃圾算法的实现涉及大量程序细节,而且各个平台的虚拟机操作内存的方法又各不相同,因此我们不需要过多关注算法的实现。只需要了解算法的思想和发展1、标记-删除算法2、复制算法 3、标记-整理算法 4、分代收集算法...原创 2018-10-26 10:23:43 · 138 阅读 · 0 评论 -
jvm垃圾收集概述
概述 代码如下/** * -XX:+PrintGCDetails * -XX:+PrintGCDateStamps * -XX:+PrintGCTimeStamps */public class ReferenceCountingGC { public Object instance = null; private static...原创 2018-10-26 10:04:32 · 167 阅读 · 0 评论 -
实战 OutOfMemoryError异常
1、java堆溢出代码如下import java.util.ArrayList;import java.util.List;/** * Vm args:-Xms20M -Xmx20M -XX:+HeapDumpOnOutOfMemoryError * 堆的最小值参数-Xms,堆的最大值参数-Xmx * -XX:+HeapDumpOnOutOfMemoryError表示让虚...原创 2018-10-25 21:53:25 · 1247 阅读 · 0 评论 -
透析java本质的36个话题-第一章基本概念笔记
记得大三时在图书馆看过这本书,当时一口气就看完了,参加工作后又回过头来再看,还是收益很多,我是先看的这本书,然后再看了深入理解jvm虚拟机这本经典之作,必须反复看。现在又回过头来看 透析java本质的36个话题 这本书,全书一共5章,我谨以5篇博文纪念。1、开门见山—测试你的java水平 当时赶脚自己连java新手都不是,大哭o(╥﹏╥)o上面的问题都会在我的这5篇博文中...原创 2018-10-28 17:40:20 · 580 阅读 · 0 评论 -
Java内存区域与内存溢出异常-上
一、根据java虚拟机规范(java se7)的规定,java虚拟机所管理的内存包含以下几个运行时数据区域,如下图所示:java虚拟机运行时数据区就这五个区域,很直观了吧接下来对这几个区域一一介绍1、程序计数器 程序计数器 是一块较小的内存空间,它可以看做是当前线程所执行的字节码的行号指示器。在虚拟机的概念模型里(仅是概念模型,各种虚拟机可能会通过一些更...原创 2018-10-25 00:15:34 · 178 阅读 · 0 评论