齐天大圣

JVM指令

JVM 指令 指令简介 计算机指令就是指挥机器工作的指示和命令,程序就是一系列按一定顺序排列的指令,执行程序的过程就是计算机的工作过程。通常一条指令包括两方面的内容:操作码和操作数,操作码决定要完成的操作,操作数指参加运算的数据及其所在的单元地址。 JVM 指令简介 Java 虚拟机的指令由一个字节长度的、代表着某种特定操作含义的数字(称为操作码,Opcode)以及跟随其后的零至多个...

Java对象创建流程&对象内存分配策略

Java 对象创建流程&对象内存分配策略 Java 对象创建流程 A a = new A(); 1. 类加载检查 虚拟机遇到一条 new 指令时,首先将去检查这个指令的参数是否能在常量池中定位到一个类的符号引用,并且检查这个符号引用代表的类是否已被加载、解析和初始化过。如果没有,那必须先执行相应的类加载过程。 Java 虚拟机:类加载的 5 个过程 Loa...

ClassLoader基础

ClassLoader 类加载器机制 1、什么是 ClassLoader? 虚拟机把描述类的数据从 Class 文件加载到内存,并对数据进行链接(验证、准备、解析)和初始化,最终形成可以被虚拟机直接使用的 Jav 对象,这就是虚拟机的类加载机制。程序在启动的时候,并不会一次性加载程序所要用的所有 class 文件,而是根据程序的需要,通过 ClassLoader 来动态加载某个 clas...

Java编译器

编译器 编译器优化 运行时优化 主要是解释执行和动态编译通用的一些机制,如锁进制、内存分配机制 (如 TLAB)还有专门用于优化解释执行效率的,如模板解释权、内联缓存(inline cache),用于优化虚方法调用的动态绑定 即时编译器 (JIT) 优化 JIT 优化是指将热点代码以方法为单位转化为机器码,直接运行在底层硬件之上。它采用了多种优化方式,包括静态编译器可以使用的如方法...