java20(JVM)

Posted kdi

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java20(JVM)相关的知识,希望对你有一定的参考价值。

JVM结构

 

JVM

Runtime data area, 运行时数据区

1. method area

        在所有进程间共享

  类,常量,静态变量

2. heap

        在所有进程间共享。、

        对象,数组

  -Xms:设置堆初始值

  -Xmx:设置堆最大值

  分为old generation

            

 

          young generation

      幸存1区

      幸存2区

    永久代  // method area

  堆设置

    -Xms:初始堆大小

    -Xmx:最大堆大小

    -XX :NewSize=n:设置年轻代            大小

    -XX:NewRatio=n:设置年轻代和老年代的比值。为3代表年轻代/老年代=1:3

    -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。Survivor有两个,n=3表示Eden:Survivor=3:2,一个Survivor占整个年轻代的1/5

    -XX:MaxPermSize=n:设置持久化大小

  收集器设置

    -XX:+UseSerialGC:设置穿行收集器

    -XX:+UseParallelGC:设置并行收集器

    -XX:+UseParalledlOldGC:设置并行年老代收集器

    -XX:+UseConcMarkSweepGC:设置并发收集器

  垃圾回收统计信息

    -XX:+PrintGC

    -XX:+PrintGCDetails

    -XX:+PrintGCTimeStamps

    -Xloggc:filename

  并行收集器设置

    

3. java stack

        不共享

        每个线程对应一个stack,线程栈, 方法栈

        调整栈空间:java -Xss1m

        stackOverflowError

        OOM:out of memory内存不足

4. native method area

        不共享

5. program counter register

        不共享

6. 通过jvisualvm查看

        a. cmd -->jvisualvm

        b. 工具 --> 插件

  c. 搜索visual GC 安装

 7. 通过Jconsole查看类加载

 

finalize

   回收线程

daemon

  守护线程

GC

  garbage collection, 垃圾回收

 

 

heap(堆)

non-heap(非堆heap以外的空间)

off-heap(离堆位于jvm之外的空间)

 

final(修饰符)

  变量:不可改变(常量)

  函数:不可重写

  类:不可继承

finally

  try{}catch(){}finally{}

finalize(函数)

  对象被回收时调用

 

以上是关于java20(JVM)的主要内容,如果未能解决你的问题,请参考以下文章

Java面试01|JVM相关

Java虚拟机5:常用JVM命令参数

jvm java虚拟机 新生代的配置

Java 虚拟机 3:常用 JVM 命令参数

学习 Java 字节码和 JVM

跨不同 JVM 的 Java 标准库中的 SerialVersionUID