深入理解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、

    QQ截图20210814232544.png

    2、参数与返回值实现细节
    无参无返回值
    是调用jdk自带的静态方法,走反射逻辑
    调用的是自己编写的静态方法,走自己的执行引擎逻辑
    不同的类中的方法,触发加载
    有参无返回值
    静态方法
    非静态方法

    print(1, 2);
    有参有返回值

    无参有返回值

    不同的类中的方法

    静态方法
    非静态方法
    this指针

    重复调用

    NIO

    flip() 重置指针

    char buffer = ……
    char
    tmp = buffer;

    维护初始指针


    3、传参与this指针
    4、返回值的处理
    5、多态的底层实现原理
    c++
    oop
    虚表 vtable