如何获取java内存
获取 Java 内存的方法
使用 Runtime 类
通过 Runtime.getRuntime() 可以获取 Java 虚拟机的内存信息。以下代码展示了如何获取总内存、空闲内存和已使用内存:
Runtime runtime = Runtime.getRuntime();
long totalMemory = runtime.totalMemory(); // 总内存(字节)
long freeMemory = runtime.freeMemory(); // 空闲内存(字节)
long usedMemory = totalMemory - freeMemory; // 已使用内存(字节)
System.out.println("Total Memory: " + totalMemory / (1024 * 1024) + " MB");
System.out.println("Free Memory: " + freeMemory / (1024 * 1024) + " MB");
System.out.println("Used Memory: " + usedMemory / (1024 * 1024) + " MB");
使用 ManagementFactory 类
ManagementFactory 提供了更详细的内存监控功能,包括堆内存和非堆内存的信息:

import java.lang.management.ManagementFactory;
import java.lang.management.MemoryMXBean;
import java.lang.management.MemoryUsage;
MemoryMXBean memoryMXBean = ManagementFactory.getMemoryMXBean();
MemoryUsage heapMemoryUsage = memoryMXBean.getHeapMemoryUsage();
MemoryUsage nonHeapMemoryUsage = memoryMXBean.getNonHeapMemoryUsage();
System.out.println("Heap Memory Usage: " + heapMemoryUsage);
System.out.println("Non-Heap Memory Usage: " + nonHeapMemoryUsage);
使用 JConsole 或 VisualVM
这些工具是 Java 自带的监控工具,可以图形化展示内存使用情况。启动 JConsole 或 VisualVM 后,连接到目标 Java 进程即可实时查看内存信息。

使用命令行工具
通过 jstat 命令可以监控 Java 内存使用情况。例如:
jstat -gc <pid> 1000 10
这条命令会每隔 1 秒输出一次垃圾回收和内存使用情况,共输出 10 次。
使用第三方库
一些第三方库如 Micrometer 或 Dropwizard Metrics 提供了更高级的内存监控功能,适合在大型应用中使用。






