java基础-JVM
简介
Java虚拟机(Java Virtual Machine 简称JVM)是运行所有Java程序的抽象计算机,在计算机上通过软件模拟实现的,有想象中的处理器,堆栈,寄存器等,还有相应的指令系统。用于执行字节码(Java编译后的中间代码)
作用:
执行Java字节码:JVM负责将Java源代码编译成字节码,然后在运行时执行这些字节码。
跨平台性:JVM使Java具有跨平台特性,因为字节码可以在任何支持Java的平台上运行,只要有相应的JVM实现。
JVM体系结构:
- 类加载器(ClassLoader):负责加载类文件,将类加载到内存中。
- 运行时数据区域:包括方法区、堆、栈、本地方法栈和程序计数器。
- 执行引擎:执行字节码指令,包括解释执行和即时编译执行(JIT)两种方式。
- 本地接口:与本地库进行交互的接口。
- 本地方法库:包含用C或C++编写的本地库,允许Java调用底层操作系统的功能。
jvm常用参数
-
堆内存参数:
-Xmx<size>:设置Java堆的最大内存大小,例如-Xmx512m表示最大堆内存为512MB。-Xms<size>:设置Java堆的初始内存大小,例如-Xms256m表示初始堆内存为256MB。
-
垃圾回收参数:
-XX:+UseParallelGC:使用并行垃圾回收器。-XX:+UseConcMarkSweepGC:使用CMS(Concurrent Mark-Sweep)垃圾回收器。-XX:+UseG1GC:使用G1(Garbage-First)垃圾回收器。-XX:+UseSerialGC:使用串行垃圾回收器。
-
栈参数:
-Xss<size>:设置线程栈的大小,例如-Xss256k表示每个线程的栈大小为256KB。
-
性能调优参数:
-XX:MaxPermSize=<size>:设置永久代的最大内存大小。-XX:MaxMetaspaceSize=<size>:设置元空间的最大内存大小。
-
类加载参数:
-XX:+TraceClassLoading:跟踪类的加载。-XX:+TraceClassUnloading:跟踪类的卸载。
-
调试参数:
-Xdebug:启用调试模式。-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=<address>:启用JDWP调试协议,允许远程调试。
-
监控参数:
-XX:+PrintGC:打印垃圾回收信息。-XX:+PrintGCDetails:打印详细的垃圾回收信息。-XX:+PrintHeapAtGC:在每次垃圾回收后打印堆信息。-XX:HeapDumpOnOutOfMemoryError:当发生内存溢出错误时生成堆转储文件。
-
性能分析参数:
-Xprof:启用性能分析。-Xrunhprof:cpu=samples,file=<filename>:生成CPU分析数据。

浙公网安备 33010602011771号