Java 语言,开发者不能直接控制程序运行内存,对象的创建都是由类加载器一步步解析,执行与生成与内存区域中的;并且 jvm 有自己的垃圾回收器对内存区域管理、回收;但是我们已经可以通过一些工具来在程序运行时查看对应的 jvm 内存使用情况,帮助更好的分析与优化我们的代码。
查看系统里 java 进程信息
jmap -histo
查看类的内存占用
class name 解读
B 代表 byte
C 代表 char
D 代表 double
F 代表 float
I 代表 int
J 代表 long
Z 代表 boolean
前边有 [代表数组,[I 就相当于 int[]
对象用 [L + 类名表示
如果某个类的个数特别多, 就得检查是否内存溢出了。
jmap -heap
MaxHeapFr