*totalMemory()这个方法返回的是java虚拟机现在已经从操作系统那里挖过来的内存大小,也就是java虚拟机这个进程当时所占用的所有 内存。如果在运行java的时候没有添加*-Xms参数,那么,在java程序运行的过程的,内存总是慢慢的从操作系统那里挖的,基本上是用多少挖多少,直 挖到maxMemory()为止,所以totalMemory()是慢慢增大的。
*freeMemory()是什么呢,刚才讲到如果在运行java的时候没有添加-Xms参数,那么,在java程序运行的过程的,内存总是慢慢的从操 作系统那里挖的,基本上是用多少挖多
// 手动调用GC
System.gc() ;
//free和use和total均为KB
long free=0;
long use=0;
long total=0;
int kb=1024;
Runtime rt=Runtime.getRuntime();
total=rt.totalMemory();
free=rt.freeMemory();
use=total-free;
System.out.println("系统内存已用的空间为:"+use/kb+" MB");
System.out.println("系统内存的空闲空间为:"+free/kb+" MB");
System.out.println("系统总内存空间为:"+total/kb+" MB");
// 用于操作系统的管理接口,Java 虚拟机在此操作系统上运行。
OperatingSystemMXBean osmxb = (OperatingSystemMXBean) ManagementFactory.getOperatingSystemMXBean();
long physicalFree=osmxb.getFreePhysicalMemorySize()/kb;
long physicalTotal=osmxb.getTotalPhysicalMemorySize()/kb;
long physicalUse=physicalTotal-physicalFree;
String os=System.getProperty("os.name");
System.out.println("操作系统的版本:"+os);
System.out.println("系统物理内存已用的空间为:"+physicalFree+" MB");
System.out.println("系统物理内存的空闲空间为:"+physicalUse+" MB");
System.out.println("总物理内存:"+physicalTotal+" MB");
// 获得线程总数
ThreadGroup parentThread;
for (parentThread = Thread.currentThread().getThreadGroup(); parentThread.getParent() != null; parentThread = parentThread.getParent()){
int totalThread = parentThread.activeCount();
System.out.println("获得线程总数:"+totalThread);
}