JVM基础
JVM组成部分
字节码
字节码文件的查看工具:https://github.com/ingokegel/jclasslib
一般信息
JDK与字节码版本不兼容报错异常如下:
常量池
方法
面试常见问题
i++时,i的值为0;而++1时,i的值为1
public class A {public static void main(String[] args) {int i = 0, j = 0, k = 0;i++;j = j + 1;k += 1;}
}
查看字节码的工具
javap(适用于程序部署后)
jclasslib插件(适用于本地调试)
arthas(适用于程序处于运行中使用)
下载 | arthas (aliyun.com)https://arthas.aliyun.com/doc/download.html
arthas的安装
安装请按照官方文档执行
快速入门 | arthas (aliyun.com)https://arthas.aliyun.com/doc/quick-start.html#_1-%E5%90%AF%E5%8A%A8-math-game
查看 dashboard
dashboard | arthas (aliyun.com)https://arthas.aliyun.com/doc/dashboard.html
dump查看字节码
jad查看原代码
类的生命周期
类加载
类加载器将类的信息加载到内存中,jvm在方法区和堆区各分配一个对象,用于保存类的信息