JVM学习笔记

JVM学习笔记

作者:Grey

原文地址:

Github

语雀

博客园

Java从编码到执行的过程

  1. Java文件通过javac生成class文件,
  2. class文件在执行java命令的时候,通过ClassLoader将其load到内存(同时还有相关的Java类库)
  3. ClassLoader调用字节码的解释器或者即时编译器(JIT)来进行解释或者编译
  4. 通过执行引擎开始执行。

image.png
任何语言,只要能变成class文件,就可以在JVM上执行。

JVM是一种规范
当前(2020-12-20)最新的规范:
https://docs.oracle.com/javase/specs/jvms/se15/jvms15.pdf

Class File Format

通过IDEA的BinEd插件可以查看class文件,一般用16进制格式查看class文件
通过IDEA的jclasslib插件可以查看class解析后的信息,更为清晰

关注:
常量池里面的内容
Code中的指令
具体指令见虚拟机规范

JVM中的八大原子指令

  • lock
  • read
  • load
  • use
  • assign
  • write
  • unlock

Writes and reads of volatile long and double values are always atomic.   ----jls15 17.7

待续...

原文地址:https://www.cnblogs.com/greyzeng/p/14166071.html