自己总结的思维导图笔记JVM(HotSpot)
OpenJDK Issues List
Basic Knowledge
美团Java面试7连问
对象的定位方式
句柄方式
直接指针
句柄方式 vs 直接指针
后者的效率更高,但是当GC挪动对象的时候,前者效率更高。(上图中,前者GC挪动存活对象和清理垃圾对象的时候,t的指针不需要变)
对象怎么分配
OOP-KLASS模型
Java三种编译方式:前端编译 JIT编译(即时编译) AOT编译
https://blog.csdn.net/tjiyu/article/details/53748965
java的nio
Java的AOT、JIT(Just in time/即时编译)
Java内存(映像)分析工具(hprof文件分析工具)
https://youzhixueyuan.com/jvm-performance-analysis-tool.html
目前主流有四大工具:
- JConsole(JDK自带,功能简单)
- VisualVM(JDK自带,功能强大)
- JProfiler(商业软件,功能强大)
- MAT(基于Eclipse)
常用命令
jar
list the files in the jar.
1 | jar -tf xxx.jar |
解压jar包:
1 | jar xvf xxx.jar |
javap(The Java Class File Disassembler、Java class文件反编译程序、分析Class文件字节码的工具)
解压jar包,并反编译class输入到txt文件查看
1 | unzip Classes.jar |
查找命令所在目录
1 | where java |