深入理解Java虚拟机 具象虚拟机规范 抽象
——————————————-
jvm底层原理 笔记前言里
——————————————-
深入Hotspot jdk6(C语言、C++)
——————————————-
揭秘Java虚拟机 jdk6(C语言、C++、汇编)
virtual void test();
内存编织
让你的JVM支持方法调用
1、调用方法相关指令讲解
invokestatic
调用静态方法
invokespecial
调用private、构造方法
invokeinterface
调用接口方法
多态调用,虚表分发 itable interface table
invokevirtual
调用protected、public方法
多态调用,虚表分发 vtable virtual table
invokedynamic
函数式编程,lambda表达式
this_oop->vtable()->initialize_vtable(true, CHECK_false);
this_oop->itable()->initialize_itable(true, CHECK_false);
加载阶段
new、putstatic、
2、参数与返回值实现细节
无参无返回值
是调用jdk自带的静态方法,走反射逻辑
调用的是自己编写的静态方法,走自己的执行引擎逻辑
不同的类中的方法,触发加载
有参无返回值
静态方法
非静态方法
print(1, 2);
有参有返回值
无参有返回值
不同的类中的方法
静态方法
非静态方法
this指针
重复调用
NIO
flip() 重置指针
char buffer = ……
char tmp = buffer;
维护初始指针
3、传参与this指针
4、返回值的处理
5、多态的底层实现原理
c++
oop
虚表 vtable