![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
JVM
文章平均质量分 95
tobing
www.tobing.top
展开
-
JVM-上篇
JVM学习笔记1. 第一章-概述1.1 JVM生命周期启动JVM启动是通过类加载器(bootstrap class loader)创建一个初始类(initial class)来完成的。执行程序开始执行的时候JVM开始运行,程序结束时就停止。执行一个Java程序时,真正执行的是JVM的进程。(注意:不是线程)退出如下几种情况会退出:程序正常执行结束程序在执行过程中遇到异常或错误而异常终止由于操作系统出现错误而导致Java虚拟机进程终止Runtime、System类的exit方法或R原创 2020-12-10 22:39:30 · 23315 阅读 · 0 评论 -
JVM-中篇
JVM-中篇-字节码解读第一章-虚拟机的基石:Class文件1.1 字节码文件是什么?源代码经过编译器编译生成一个字节码文件,字节码文件是一种二进制文件,内容是JVM指令,不像C、C++直接生成的机器码。1.2 什么事字节码指令Java虚拟机的指令是由一个字长度的、代表某种特定操作含义的**操作码(opcode)以及跟随其后的零个或多个代表此处操作数需要参数的操作数(Operand)**所构成。虚拟机中许多指令不包含操作数,只有一个操作码。字节码指令(byte code) = 操作码(opco原创 2021-01-09 13:40:02 · 462 阅读 · 0 评论 -
JVM-逃逸分析
逃逸分析1、堆是分配对象的唯一选择吗?在《深入理解Java虚拟机》中关于Java堆内存有这样一段描述:随着JIT编译期的发展与逃逸技术的成熟,栈上分配、标量替换优化技术将会导致一些微妙的变化,所有的对象都分配到堆上也渐渐变的不那么绝对了。在Java虚拟机中,对象是在堆内存中分配内存的,这是一个普遍常识。但是,有一种特殊技术,那就是如果经过逃逸分析(Escape Analysis)后发现,一个对象并没有逃逸出方法的话,那么就可能被优化成栈上分配。这样就无需在堆上分配内存,也不需要垃圾回收了,这就是常见的原创 2020-12-17 22:41:46 · 192 阅读 · 2 评论