
JVM虚拟机
文章平均质量分 59
天宇365
沉淀~
展开
-
简述虚拟机字节码执行-分派规则
静态类型多分派:典型-方法重载编译时,编译器会根据类型和方法参数来分派,属于多分派类型动态类型单分派:典型-方法重写运行阶段虚拟机的选择,即动态分派的过程:运行时,方法参数已经由编译时确定为特定类型,不会影响其选择,唯一影响虚拟机选择的因素只有该方法的实际接收者,具体是哪个类。只有一个宗量作为选择依据。属于单分派类型运行示例:总结如下:...原创 2021-02-24 15:18:30 · 132 阅读 · 0 评论 -
深入理解Java虚拟机--浅析class文件字节码【JVM虚拟机(二)】
代码示例如下:package com.demo;public class Test { int add() { int a = 3; int b = 8; return a + b; }}javap查看编译机制解析指令集:int add(); Code: 0: iconst_3 压入常量3到操作数栈顶 1: istore_1 将栈顶int型数值...原创 2021-02-22 19:43:04 · 95 阅读 · 0 评论 -
深入理解Java虚拟机--虚拟机字节码指令表
《深入理解Java虚拟机JVM高级特性与最佳实践》附录B 虚拟机字节码指令表字节码 助记符 指令含义 0x00 nop 什么都不做 0x01 aconst_null 将null推送至栈顶 0x02 iconst_m1 将int型-1推送至栈顶 0x03 iconst_0 将int型0推送至栈顶 0x04 iconst_1 将int型1推送至栈顶 0x05 iconst_2 将int型2推送至栈顶转载 2021-02-22 17:59:44 · 129 阅读 · 0 评论 -
<init>构造器和<cinit>以及构造方法的关系
1、首先我们先来找到init和cinit方法。java源文件package com.demo;public class Test { private static int a = 1; protected void testMethod() { } public static void main(String[] args){ System.out.println(a); }}使用javap -verbose class.原创 2021-02-19 11:55:21 · 2351 阅读 · 0 评论 -
浅析class文件字节码【JVM虚拟机(一)】
前言分析之前的说明:1、一位十六进制的数等于四位二进制的数。一个字节等于8位二进制数,2位16进制为一个字节。2、这张图是一张java字节码的总览图,我们也就是按照上面的顺序来对字节码进行解读的。一共含有10部分,包含魔数,版本号,常量池等等,接下来我们按照顺序一步一步解读。3、了解一下常量池的项目类型表4、ASCII开始1、首先上一个测试的java代码。package com.demo;public class Demo { private int a原创 2021-02-08 14:40:20 · 159 阅读 · 0 评论