JVM
wait_for_eva
longer
展开
-
JVM-对象创建和路由
总体流程 Created with Raphaël 2.2.0开始new确定类模板创建指向常量池中的类的符号引用是否找到(加载)模板?虚拟机分配对象空间初始化对象默认值执行指定初始化方法结束加载、解析、初始化类yesno 内存分配 指针碰撞 最简单的情况,就是这样:内存空间连续,一侧使用,一次空闲 当需要申请内存的时候,通过分界指针的移动,就可以为新创建的对象分配内存,这种方式称作``指针碰撞`...原创 2019-03-30 02:01:41 · 263 阅读 · 0 评论 -
JVM-垃圾回收概述
垃圾判定 引用计数 差不多就是这个样子,把被引用的次数记下来,当引用为0时,就判定是垃圾。 不过存在一个问题,那就是对象引用对象的时候,这个办法就失效了。 class Node{ Node prev; Node next; int value; } public static void main(String []args){ Node head = new No...原创 2019-03-31 14:36:49 · 305 阅读 · 0 评论 -
JVM-对象分配策略
内存分配策略 优先分配到Eden 大对象直接分配到老年代 长期存活周期分配到老年代 空间分配担保 栈上分配 优先Eden public class Main { public static final int size = 10 * 1024; public static void main(String[] args) { byte[] bs = new by...原创 2019-03-31 19:36:49 · 236 阅读 · 0 评论 -
JVM-几个自带工具简介
位置 %JAVA_HOME/bin%下就是安装java时为我们自带的可运行程序的文件夹。 之前接触过的只有java和javac,现在再认识几个。 jps public class Main { public static void main(String[] args) { while(true){ sleep(); } } ...原创 2019-04-01 20:52:44 · 408 阅读 · 0 评论 -
JVM-内存分区
内存分区 线程独占区 程序计数器:记录当前线程执行到的字节码行号 虚拟机栈:存储方法运行时数据,成为栈帧 本地方法栈:native方法的栈,同虚拟机栈,但只为native方法服务 线程共享区 方法区:常量池,已加载类,常量,静态变量,即时编译代码等数据存放位置 堆:java对象实例存放位置 程序计数器 字节码行号指示器 像是一个游标,总是指向代码执行的那一行。 线程独占 程序计数...原创 2019-03-28 21:16:18 · 139 阅读 · 0 评论