美文网首页Java高级开发
Java程序运行原理

Java程序运行原理

作者: 依弗布德甘 | 来源:发表于2019-12-28 14:08 被阅读0次
  1. 编译生成.class字节码文件
  • class文件内容
    版本号
    访问控制标志
    常量池
    构造方法
    自定义方法
    指令(参照指令表)
  1. JVM加载class分配数据区,存至方法区

jvm运行时数据区

  • 线程共享: 所有线程都能方法这块内存数据,随虚拟机或GC而创建和销毁

    1. 方法区:存储加载类信息、常量、静态变量、编译后的代码等数据
    2. 堆内存:存储对象,细分为老年代、新生代
  • 线程独占:每个线程都会有它独立空间,随线程生命周期创建和销毁

    1. 虚拟机栈:每个线程都有一个私有空间,有多个栈帧组成,一个方法对应一个栈帧
    2. 本地方法栈:只是为虚拟机使用Native本地方法而准备的,与虚拟机栈类似
    3. 程序计数器:记录当前线程执行字节码的位置,存储的是字节指令码地址,如果执行Native方法则计数器值为空。CPU同一时间只会执行一个线程中的指令,JVM多线程会轮流切换并分别CPU执行时间的方式,为切换线程后通过计数器来恢复正确的执行位置。
  1. JVM创建线程,运行代码
  • 线程独占的空间
    1. jvm会根据方法描述,创建栈帧,通过程序计数器上当前的位置,执行字节码指令,对操作数栈和本地变量进行修改(如:本地变量数据压入栈,栈里面数据相加结果压入栈,栈中的数据保存至本地变量等)
    2. 每次执行都会记录当前线程执行的位置到程序计数器中,CPU切换线程后通过计数器来恢复执行位置

相关文章

  • JAVA程序运行原理

    JAVA程序运行原理 编写 .java 源文件 编译成 .class 文件 运行分配 JVM 数据区 JVM 运行...

  • JAVA开发:开发属于你的第一个Java程序

    01_开发属于你的第一个Java程序 Java程序的运行原理 Java程序追求的目标是一次编译到处运行,那他是如何...

  • Java程序运行原理

    编译生成.class字节码文件 class文件内容版本号访问控制标志常量池构造方法自定义方法指令(参照指令表) J...

  • Java程序运行原理

    java与jvm 一个语言为何这么写是由于它的语言规范决定的。而jvm规定了字节码如何运行的规范。而字节码的来源可...

  • Java程序的调试原理及调试体系JDPA

    基本原理 Java 程序都是运行在 Java 虚拟机上的,我们要调试 Java 程序,事实上就需要向 Java 虚...

  • [Android-Java]1.基本概念-2第一个Java程序

    二、第一个Java程序 在制作第一个Java程序之前,我们需要先来了解一下Java程序的运行原理。Java程序被称...

  • 探究java程序运行原理

    我以前是多C++程序开发的,2018年6月份进入平安寿险总部后才刚刚接触java,和很多初学java的萌新们一...

  • Java程序运行原理分析

    一. JVM原理 class文件内容 JVM运行时数据区 线程独占: 每个线程都会有它独立的空间,随线程的生命周而...

  • java程序运行原理分析

    什么是class文件 是jvm编译java代码后生成的字节码文件,包含java程序执行的字节码;数据严格按照格式紧...

  • Java 程序运行原理分析

    1. class 文件内容 class 文件包含JAVA程序执行的字节码;数据严格按照格式紧凑排列在class文件...

网友评论

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

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