JVM
好处:
- 一次编写,到处运行
- 自动内存管理,垃圾回收功能
- 数组下标越界检查
- 多态

内存结构
程序计数器
作用:记住下一条jvm指令执行的地址
特点:
- 线程私有
- 不会内存溢出
虚拟机栈
虚拟机栈:线程运行需要的内存空间
栈帧:每个方法运行时需要的内存
本地方法栈
堆
通过new关键字创建对象,都会使用堆内存
特点:
- 线程共享的,
- 有垃圾回收机制
查看堆内存占用情况jmap - heap 进程id
jconsole 图形界面多功能检测工具
jvirsualvm 图形化检测工具
方法区

常量池:为虚拟指令提供需要的类名、方法名、参数类型、字面量等信息
运行时常量池:当类被加载,它的常量池就会放入运行时常量池,并把里面的符号地址变为真实地址
StringTable:hashtable结构

- stringtable有垃圾回收
直接内存(系统内存)


禁用显式gc会影响直接内存的回收,可以通过反射使用unsafe类来进行直接内存的分配和释放

浙公网安备 33010602011771号