0%

Java系列之JDK&JVM

自己总结的思维导图笔记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
2
unzip Classes.jar
find . -name '*.class' | xargs javap -p > classes.txt

查找命令所在目录

1
2
3
4
5
where java
where javac
where jar
where jvisualvm
# where也可以换成which