java java基础-JVM

时间:2025-08-29 10:48:02来源:互联网

下面小编就为大家分享一篇java java基础-JVM,具有很好的参考价值,希望对大家有所帮助。

简介

Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,在计算机上通过软件模拟实现的,有想象中的处理器,堆栈,寄存器等,还有相应的指令系统。用于执行字节码(Java编译后的中间代码)

作用

执行Java字节码:JVM负责将Java源代码编译成字节码,然后在运行时执行这些字节码。

跨平台性:JVM使Java具有跨平台特性,因为字节码可以在任何支持Java的平台上运行,只要有相应的JVM实现。

JVM体系结构

  • 类加载器(ClassLoader):负责加载类文件,将类加载到内存中。
  • 运行时数据区域:包括方法区、堆、栈、本地方法栈和程序计数器。
  • 执行引擎:执行字节码指令,包括解释执行和即时编译执行(JIT)两种方式。
  • 本地接口:与本地库进行交互的接口。
  • 本地方法库:包含用C或C++编写的本地库,允许Java调用底层操作系统的功能。

jvm常用参数

  1. 堆内存参数

    • -Xmx<size>:设置Java堆的最大内存大小,例如 -Xmx512m 表示最大堆内存为512MB。
    • -Xms<size>:设置Java堆的初始内存大小,例如 -Xms256m 表示初始堆内存为256MB。
  2. 垃圾回收参数

    • -XX:+UseParallelGC:使用并行垃圾回收器。
    • -XX:+UseConcMarkSweepGC:使用CMS(Concurrent Mark-Sweep)垃圾回收器。
    • -XX:+UseG1GC:使用G1(Garbage-First)垃圾回收器。
    • -XX:+UseSerialGC:使用串行垃圾回收器。
  3. 栈参数

    • -Xss<size>:设置线程栈的大小,例如 -Xss256k 表示每个线程的栈大小为256KB。
  4. 性能调优参数

    • -XX:MaxPermSize=<size>:设置永久代的最大内存大小。
    • -XX:MaxMetaspaceSize=<size>:设置元空间的最大内存大小。
  5. 类加载参数

    • -XX:+TraceClassLoading:跟踪类的加载。
    • -XX:+TraceClassUnloading:跟踪类的卸载。
  6. 调试参数

    • -Xdebug:启用调试模式。
    • -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<address>:启用JDWP调试协议,允许远程调试。
  7. 监控参数

    • -XX:+PrintGC:打印垃圾回收信息。
    • -XX:+PrintGCDetails:打印详细的垃圾回收信息。
    • -XX:+PrintHeapAtGC:在每次垃圾回收后打印堆信息。
    • -XX:HeapDumpOnOutOfMemoryError:当发生内存溢出错误时生成堆转储文件。
  8. 性能分析参数

    • -Xprof:启用性能分析。
    • -Xrunhprof:cpu=samples,file=<filename>:生成CPU分析数据。
本站部分内容转载自互联网,如果有网站内容侵犯了您的权益,可直接联系我们删除,感谢支持!