JAVA程序运行原理

2019-12-30  本文已影响0人  任性一把

JAVA程序运行原理

JVM 运行时的数据区

线程独占:每个线程独有的空间,跟随线程的生命周期创建销毁

线程共享:所有线程共享的内存数据,跟随虚拟机和GC创建销毁

方法区

JVM 用来存储加载的类信息,常量,静态变量,编译后的代码。
虚拟机规范的逻辑区域,具体实现根据不同虚拟机控制。

堆内存

JVM启动时创建,用来存储对象实例。垃圾回收器主要管理的区域,内存超出会报错。

虚拟机栈

由多个栈帧组成,线程独占,一个方法对应一个栈帧。
栈帧包含:局部变量表,操作数栈,动态链接,方法返回地址,附加信息等,默认内存1M,超出报错

本地方法栈

类似虚拟机栈,主要为执行Native方法,区别与虚拟机栈是执行JAVA方法。

程序计数器

记录当前线程字节码的位置,存储字节码指令地址。Native方法时,计数器值为空。多线程切换由程序计数器控制执行到哪里了。

查看 class 文件内容

    javac Demo.java        // 编译

    javap -v Demo.class > demo.txt  // 输出内容到demo.txt 文件
上一篇下一篇

猜你喜欢

热点阅读