# JVM默认配置

Java 命令启动的 JVM（Java 虚拟机）具有一组默认配置，这些配置通常是根据平台和 Java 版本的默认值而设置的。以下是一些常见的默认 JVM 配置：

1. **初始堆大小和最大堆大小：** JVM 通常会设置默认的初始堆大小和最大堆大小。例如，Java 8 默认的初始堆大小为物理内存的 1/64，最大堆大小为物理内存的 1/4。Java 11 和更新版本默认使用了不同的堆大小策略。
2. **垃圾回收器：** 默认情况下，JVM 使用一种平衡吞吐量和暂停时间的垃圾回收器。具体的垃圾回收器可能会随着 Java 版本和配置而变化。
3. **永久代/元空间大小：** 在 Java 8 及更早版本中，有永久代用于存储类的元数据。在 Java 8 之后的版本中，这被替代为元空间。默认情况下，JVM 分配一定的空间来存储元数据。
4. **栈大小：** JVM 为每个线程分配一个栈，用于存储方法调用的信息。栈的大小通常由具体的操作系统决定，并可以通过 JVM 参数进行调整。
5. **JIT 编译：** JVM 包括一个即时编译器（Just-In-Time Compiler），用于将 Java 字节码编译成本地机器代码。JVM 会根据运行时的情况自动决定何时进行 JIT 编译。

这些配置的具体值可能会受到多种因素的影响，包括 JVM 版本、操作系统、硬件配置等。如果你想查看 JVM 的默认配置，可以使用以下命令：

```bash
java -XX:+PrintFlagsFinal
```

这将打印出 JVM 的所有参数及其默认值。请注意，这个列表可能会很庞大，因为 JVM 支持许多参数。
