美文网首页
JAVA程序运行原理

JAVA程序运行原理

作者: 任性一把 | 来源:发表于2019-12-30 14:50 被阅读0次

    JAVA程序运行原理

    • 编写 .java 源文件
    • 编译成 .class 文件
    • 运行分配 JVM 数据区

    JVM 运行时的数据区

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

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

    方法区

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

    堆内存

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

    虚拟机栈

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

    本地方法栈

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

    程序计数器

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

    查看 class 文件内容

    • 源代码由 javac 命令编译成 class 文件
    • 通过 javap 查看 class 文件内容
        javac Demo.java        // 编译
    
        javap -v Demo.class > demo.txt  // 输出内容到demo.txt 文件
    

    相关文章

      网友评论

          本文标题:JAVA程序运行原理

          本文链接:https://www.haomeiwen.com/subject/cafmoctx.html