cadNight

导航

JVM 学习 (01_day)

JVM的定义:java Virtual Machine --java程序的运行环境(java二进制字节码的运行环境)
好处:
1、一次运行,到处运行
2、自动内存管理机制,垃圾回收功能
补充:数组下标越界检查;多态;
比较:
JVM
二、学习路线

三、JVM内存结构
1、程序计数器(Program Counter Register)
作用:用于记住下一条JVM指令的执行地址
特点:
* 线程私有
* 不会存在内存溢出
2、虚拟机栈(JVM Stacks)

  • 每个线程运行时需要的内存空间

  • 每个由多个栈帧组成,(栈帧:每个方法运行时需要的内存)

  • 每个线程只能有一个活动栈帧,对应着当前正在执行的方法
    `**

  • 演示栈帧

  • @author seven

  • @create 2021-12-20 20:08
    */
    public class Demo_01 {
    public static void main(String[] args) {
    method1();
    }
    private static void method1(){
    method2(1,2);
    }

    private static int method2(int a,int b){
    int c=a+b;
    return c;
    }
    }`
    image
    问题辨析:
    1、垃圾回收是否涉及栈内存?
    没有涉及,虚拟机栈是由一个个栈帧组成,而这些栈帧就是等待执行的方法。当方法执行后,对应的栈帧就会被弹出栈。
    2、栈内存分配越大越好吗?
    物理内存是一定的,栈内存越大,可执行的线程就越少。
    3、方法内的局部变量是否线程安全?
    如果方法内局部变量没有逃离方法的作用范围,则是线程安全的。
    如果局部变量中引用了对象,并逃离了方法的作用范围,则需要考虑线程安全问题。

posted on 2021-12-20 21:28  cadNight  阅读(17)  评论(0)    收藏  举报