`

Java中的Runtime类

    博客分类:
  • Java
阅读更多

Runtime类:是封装JVM进程的类。每个Java程序运行的时候,JVM会自动为其创建一个JVM进程用来记录当前程序运行时的环境并将其封装在Runtime类的实例中。应用程序可以通过该实例了解程序运行时的一些信息,如可用处理器的数目、最大内存量、可用内存量等。

一、查看内存信息:

public static void main(String[] args) {
	Runtime run= Runtime.getRuntime();//单例模式,实例化对象
	//availableProcessors:向 Java 虚拟机返回可用处理器的数目。
	System.out.println("可用处理器的数目:"+run.availableProcessors());//4
		
	//totalMemory():返回 Java 虚拟机中的内存总量。此方法返回的值可能随时间的推移而变化,这取决于主机环境。
	System.out.println("当前JVM的内存总量:"+run.totalMemory());//1065484288
		
	//maxMemory():返回 Java 虚拟机试图使用的最大内存量。如果内存本身没有限制,则返回值 Long.MAX_VALUE。
	//Long.MAX_VALUE:保持 long 类型的最大值的常量,该值为 (2e63)-1。
	System.out.println("当前JVM的最大内存量:"+run.maxMemory());//1065484288
		
	//freeMemory():返回 Java 虚拟机中的空闲内存量。调用 gc 方法可能导致 freeMemory 返回值的增加。
	long freeM1 = run.freeMemory();
	System.out.println("当前JVM的空闲内存量:"+freeM1);//1064163064
		
	//通过String循环操作消耗内存
	String str="";
	for(int i=0;i<10000;i++){
		str+=i;
	}
	long freeM2 = run.freeMemory();
	System.out.println("String循环之后JVM的空闲内存量:"+freeM2);//1028886392
	System.out.println("String循环消耗的内存量:"+(freeM1-freeM2));//35276672
		
	//通过StringBuffer循环操作消耗内存量
	StringBuffer strBuf = new StringBuffer("");
	for(int i=0;i<10000;i++){
		strBuf.append(i);
	}
	long freeM3 = run.freeMemory();
	System.out.println("StringBuffer循环之后JVM的空闲内存量:"+freeM3);//1028628320
	System.out.println("StringBuffer循环消耗的内存量:"+(freeM2-freeM3));//258072
	
	//outout:35018600
	System.out.println("String循环比StringBuffer循环多消耗内存量:"+((freeM1-freeM2)-(freeM2-freeM3)));
	//进行垃圾回收
	run.gc();
	System.out.println("垃圾回收之后的内存量:"+run.freeMemory());//1064789304
}

 

二、执行操作系统的命令:
如打开记事本,5秒以后自动关闭记事本。
执行命令调用Runtime的exec方法,API中的说明如下:
public Process exec(String command) throws IOException:在单独的进程中执行指定的字符串命令。
自动关闭记事本主要用process.destroy()结束进程。

public static void main(String[] args) {
	Runtime run= Runtime.getRuntime();//单例模式,实例化对象
	try{
		Process process = run.exec("notepad.exe");//执行命令并记录使用此命令开启的进程信息
		Thread.sleep(10000);//休眠5秒
		process.destroy();//结束进程
		//exitValue:返回子进程的出口值。 
		//返回:此 Process 对象表示的子进程的出口值。
		//根据惯例,值 0 表示正常终止,如点击记事本关闭按钮进行关闭。
		//值1表示非正常终止,如通过手动结束进程或调用process.destroy()的方法。
		System.out.println(process.exitValue());
	}catch(Exception e){
		e.printStackTrace();
	}
}

 

分享到:
评论

相关推荐

    Java SE程序 Runtime类

    Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序 Runtime类Java SE程序...

    Java Runtime Environment JRE 1.4.2

    Java Runtime Environment (JRE) 1.4.2 是Java应用程序执行所需的关键组件,它为开发者和用户提供了在各种操作系统上运行Java应用的基础。这个版本是Sun Microsystems在2004年发布的一个重要里程碑,它在Java技术的...

    Java Runtime Environment1.8.0

    Java Runtime Environment 1.8.0是Java开发和运行应用程序必不可少的一部分,它是Oracle公司发布的Java平台标准版(Java SE)的实现。这个版本是32位的,这意味着它设计用于在32位操作系统上运行,比如Windows XP、...

    Java Runtime Environment 1.6.0.7 (32-bit

    总之,Java Runtime Environment 1.6.0.7 (32-bit)是一个为32位Windows系统提供运行Java程序能力的组件,它包括了必要的库、类和虚拟机。通过定期更新,用户可以确保他们的系统安全,应用运行稳定,并且能够跟上Java...

    64位 java runtime 1.8.0.zip

    Java Runtime Environment(JRE)是Java程序运行所需的基础组件,它是Oracle公司提供的Java平台标准版(Java SE)的一部分。在本例中,我们讨论的是64位版本的JRE 1.8.0,适用于Windows操作系统。这个版本的JRE包含...

    32位的Java Runtime Environment

    总结来说,32位的Java Runtime Environment在32位操作系统中起着至关重要的作用,为运行Java应用程序提供必要环境。随着技术的发展,尽管64位环境逐渐成为主流,但32位JRE仍然在特定场景下保持着其价值。理解和掌握...

    Java Runtime Environment-6.0

    Java Runtime Environment-6.0.26.exe

    Java运行环境 Java SE Runtime Environment 8.0.172.x64官方多语言正式版

    Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员...

    Sun Java SE Runtime Environment(JRE)6

    Sun Java SE Runtime Environment (JRE) 6 是Java平台标准版的一个重要版本,它为运行基于Java技术的应用程序提供了所需的运行环境。Java SE是Java Development Kit (JDK)的一部分,但JRE则不包含开发工具,主要是...

    java runtime environment 1.8.0_45 64bit

    - Java 8引入的这两项特性极大地简化了代码,使得函数式编程在Java中变得更加容易。 总结来说,Java Runtime Environment 1.8.0_45 64bit是Java 8的一个关键组成部分,提供了在64位系统上运行Java应用程序的能力。...

    Java SE Runtime Environment 8 Winx64 Downloads

    Java Runtime Environment,Java运行环境64位安装包,官网下载。 Java SE Runtime Environment 8 Downloads Do you want to run Java™ programs, or do you want to develop Java programs? If you want to run ...

    java runtime environment 1.8.0_45 64bit.rar

    Java Runtime Environment(JRE)是Java程序运行所需的基础组件,它是Oracle公司提供的Java平台标准版(Java SE)的一部分。在本例中,我们讨论的是版本1.8.0_45,这是一个64位的版本,专为64位操作系统设计。这个...

    Java运行环境 Java SE Runtime Environment 8.0.172.x86官方多语言正式版

    Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库和 Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员...

    Java Runtime For MacOS X 10.7

    Java Runtime For MacOS X 10.7

    Java SE Runtime Environment 9.0u165 官方安装版(JRE含中文)

    Java SE Runtime Environment 9.0u165 官方安装版(JRE含中文) 运行JAVA程序不可缺少的环境Java SE Runtime。一旦拥有 Java 软件,您即会进入一个全新的jre8互动世界。  Java语言恐怕是稳居网路应用程序语言的...

    ArcGIS Runtime SDK for Java 100.12.0

    ArcGIS Runtime SDK for Java 100.12.0 的...如需在生产环境中使用ArcGIS Runtime SDK for Java,请联系ESRI公司获得授权,现在也有国产替代产品GeoScne Runtime SDK for Java,可以联系易智瑞公司获得相关资源和授权。

    java runtime 最新版 1.8.0.271

    3. 设置环境变量:安装后,需要将Java的安装路径添加到系统环境变量PATH中,以便在任何目录下都能运行Java命令。 4. 安全更新:定期检查并安装新的Java安全更新,以保护系统免受已知漏洞的攻击。 总的来说,Java ...

    JRE 7 Java SE Runtime Environment 7u80

    JRE 7, Java SE 运行时环境 7u80,Linux/windows/Mac OS系统下 32位/64位 安装包,包含以下版本: Linux x86 jre-7u80-linux-i586.rpm Linux x86 jre-7u80-linux-i586.tar.gz Linux x64 jre-7u80-linux-x64.rpm ...

    Java SE Runtime Environment 8u251 macOS 64bit

    JRE 版本号为8u251,macOS 64位版本,包含dmg安装程序和压缩包。 Java Runtime Environment 是运行基于Java语言编写的程序所不可缺少的运行环境,用于解释执行Java的字节码文件。

    java runtime environment(JRE)安装 2020-11-4

    java runtime environment(JRE)安装 2020-11-4 一、搭建环境 1.1 安装Keil 5 官网下载:http://www2.keil.com/mdk5/ 百度网盘:https://pan.baidu.com/s/18t_ta0WWX_f1KCKXfgj_Zw 提取码:gx3r 1.2 安装JRE 由于...

Global site tag (gtag.js) - Google Analytics