JVM

12-虚拟机栈

2021-02-24  本文已影响0人  紫荆秋雪_文

一、虚拟机栈概述

二、内存中的栈与堆

栈是运行时的区域,而堆是存储的区域

三、虚拟机栈基本内容

1、Java虚拟机栈是什么

2、生命周期

3、作用

4、栈的优点

5、栈中可能出现的异常

四、栈的存储单位

1、栈中存储什么

五、栈运行原理

六、栈帧的内部结构

每个栈帧中存储着

七、局部变量表 局部变量表.png

1、关于Slot的理解

八、操作数栈 操作数栈.png

代码流程

package com.lkty.operandstack;

public class OperandStack {
    public static void main(String[] args) {
        OperandStack stack = new OperandStack();
        stack.operandStackTest();
    }

    private int operandStackTest() {
        byte i = 7;
        int j = 8;
        int k = i + j;
        return k;
    }
}

栈顶缓存技术

九、动态链接 动态链接.png

image.png

十、方法的调用 image.png

Method.class

package com.lkty.method;


public class Method {

    public static void main(String[] args) {
        Son son = new Son();
        son.show();
    }

}

interface IMethod {
    void name();
}

/**
 * 父类
 */
class Father {
    public Father() {
        System.out.println("Father__构造器");
    }

    /**
     * 静态方法
     * @param name
     */
    public static void showStatic(String name) {
        System.out.println("showStatic —— Father = " + name);
    }

    /**
     * final
     */
    public final void showFinal() {
        System.out.println("Father —— Final");
    }

    public void showCommon() {
        System.out.println("Father —— Common");
    }
}

/**
 * 子类
 */
class Son extends Father {
    public Son() {
        System.out.println("Son__构造器");
    }
    public Son(int age) {
        this();
    }

    public static void showStatic(String name) {
        System.out.println("name = " + name);
    }

    private void showPrivate(String name) {
        System.out.println("Son——Private = " + name);
    }

    public void show() {
        showStatic("Son");
        Father.showStatic("Father");
        showPrivate("Son");
        super.showCommon();
        showFinal();
        showCommon();
        info();
    }

    public void info() {}
}

log

Father__构造器
Son__构造器
name = Son
showStatic —— Father = Father
Son——Private = Son
Father —— Common
Father —— Final
Father —— Common
Method字节码
image.png
实例化对象 实例化对象.png
#2引用 #2引用.png
#23 #23.png
开始调用方法#3 开始调用方法#3.png
invokespecial#3 invokespecial#3.png
#22 #22.png
init初始化Son实例 init初始化Son实例.png
init方法的返回类型 init方法的返回类型.png
实例化对象完成 image.png
调用实例的方法 调用实例的方法.png
方法引用 方法引用.png
方法名称 方法名称.png
方法的返回类型 方法的返回类型.png
show show.png
#12 Son类的引用 #12 Son类的引用.png

小结

Java语言中方法重写的本质

虚方法表

十一、方法返回地址 image.png

十二、一些附加信息 image.png

上一篇下一篇

猜你喜欢

热点阅读