jvm

  1. 内存模型
    堆:-Xms最小  -Xmx最大
    方法区:永久代-Xx:PermSize   -Xx:MaxPermSize  虚拟机加载的类信息、常量、静态变量、各个线程共享
    虚拟机栈:调用栈,局部变量
    本地方法栈:
    jvm

    控制参数
    -Xms设置堆的最小空间大小。

    -Xmx设置堆的最大空间大小。

    -XX:NewSize设置新生代最小空间大小。

    -XX:MaxNewSize设置新生代最大空间大小。

    -XX:PermSize设置永久代最小空间大小。

    -XX:MaxPermSize设置永久代最大空间大小。

    -Xss设置每个线程的堆栈大小。

    没有直接设置老年代的参数,但是可以设置堆空间大小和新生代空间大小两个参数来间接控制。

    老年代空间大小=堆空间大小-年轻代大空间大小

    从更高的一个维度再次来看JVM和系统调用之间的关系

    方法区和堆是所有线程共享的内存区域;而Java栈、本地方法栈和程序计数器是运行是线程私有的内存区域。

  2. jmap获取heap dump,  jhat分析heap dump
  3. 可达性分析发酸
  4. finalize方法
  5. 回收算法
  6. 回收器
  7. 虚拟机性能监控与故障处理工具
  8. 调优
  9.  
  10. 类的加载
  11.  
  12. 优化
  13.  
  14. 并发
  15.