Java
文章平均质量分 55
天宇365
沉淀~
展开
-
简述虚拟机字节码执行-分派规则
静态类型多分派:典型-方法重载编译时,编译器会根据类型和方法参数来分派,属于多分派类型动态类型单分派:典型-方法重写运行阶段虚拟机的选择,即动态分派的过程:运行时,方法参数已经由编译时确定为特定类型,不会影响其选择,唯一影响虚拟机选择的因素只有该方法的实际接收者,具体是哪个类。只有一个宗量作为选择依据。属于单分派类型运行示例:总结如下:...原创 2021-02-24 15:18:30 · 125 阅读 · 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 · 85 阅读 · 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 · 115 阅读 · 0 评论 -
什么是语法糖?
之所以叫「语法」糖,不只是因为加糖后的代码功能与加糖前保持一致,更重要的是,糖在不改变其所在位置的语法结构的前提下,实现了运行时等价。可以简单理解为,加糖后的代码编译后跟加糖前一毛一样。之所以叫语法「糖」,是因为加糖后的代码写起来很爽,包括但不限于:代码更简洁流畅,代码更语义自然... 写得爽,看着爽,就像吃了糖。效率高,错误少,老公回家早...PS: 据说还有一种叫做「语法盐」的东西,主要目的是通过反人类的语法,让你更痛苦的写代码。其实它同样能达到避免代码书写错误的效果,但编程效率应该是降低了,毕转载 2021-02-20 18:03:06 · 2527 阅读 · 1 评论 -
<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 · 2265 阅读 · 0 评论