jvm
- 内存模型
堆:-Xms最小 -Xmx最大
方法区:永久代-Xx:PermSize -Xx:MaxPermSize 虚拟机加载的类信息、常量、静态变量、各个线程共享
虚拟机栈:调用栈,局部变量
本地方法栈:控制参数
-Xms设置堆的最小空间大小。-Xmx设置堆的最大空间大小。
-XX:NewSize设置新生代最小空间大小。
-XX:MaxNewSize设置新生代最大空间大小。
-XX:PermSize设置永久代最小空间大小。
-XX:MaxPermSize设置永久代最大空间大小。
-Xss设置每个线程的堆栈大小。
没有直接设置老年代的参数,但是可以设置堆空间大小和新生代空间大小两个参数来间接控制。
老年代空间大小=堆空间大小-年轻代大空间大小
从更高的一个维度再次来看JVM和系统调用之间的关系
方法区和堆是所有线程共享的内存区域;而Java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。
- jmap获取heap dump, jhat分析heap dump
- 可达性分析发酸
- finalize方法
- 回收算法
- 回收器
- 虚拟机性能监控与故障处理工具
- 调优
- 类的加载
- 优化
- 并发