java代码运行过程

  • Java 代码首先需要将它编译而成的 class 文件加载到jvm中,载后的 Java 类会被存放于方法区(Method Area),实际运行时,虚拟机会执行方法区内的代码。

upload successful

  • 每当调用进入一个 Java 方法,Java 虚拟机会在当前线的 Java 方法栈中生成一个栈帧,用以存放局部变量以及字节码的操作数.当退出当前执行的方法时,不管是正常返回还是异常返回,jvm均会弹出当前线程的当前栈帧,并将之舍弃。

  • 字节码无法直接执行,jvm会将字节码翻译成机器码,在HotSpot里,有两种形式:

    • 第一种是解释执行,即逐条将字节码翻译成机器码并执行;
    • 第二种是即时编译(Just-In-Time compile,JIT),即将一个方法中包含的所有字节码编译成机器码后再执行.

upload successful

  • 解释执行优势在于无需等待编译,即时编译在于实际运行快。hotspot默认采用混合模式,先解释执行字节码,而后将反复执行的热点代码,以方法为单位进行即时编译。

本文地址 https://www.frank8g2g3.cn/2019/08/28/java代码运行过程/

frank wechat
扫描二唯码,订阅我的公众号