java基础类库(九)_2.Runtime类

知识点:

   1.Runtime类的主要作用。

   2.Runtime类的主要定义形式。

具体内容:

  在每一个JVM进程里面都会有一个Runtime类对象,这个类的主要功能是取得一些与运行时有关的环境数据或则创建新的进程等操作。

 在Runtime类定义的时候它的构造方法已经被私有化了,这就属于单例设计模式的应用。因为要保证在整个进程里面只有唯一的一个的Runtime类对象。所以在Runtime类里面提供有一个s··tatic型的方法,这个方法可以取得Runtime类实例化对象:public static Runtime getRuntime()

   Runtime类是直接与本地运行有关的所有相关属性的集合,所以在Runtime类里面定义有如下的方法:

1.返回所有可用内存空间:public long totalMemory();

2.返回最大可用内存空间:public long maxMemory();

3.返回空余内存空间:public long freeMemory

注:long一般都用来描述内存文件大小,或则日期时间

范例:观察内存大小(随着JDK的发展可以处理的内存空间越来越大)

package 算法;

public class TestDemo {
	public static void main(String args[]){
		Runtime run = Runtime.getRuntime();   //取得Runtime类的实例化对象
		System.out.println("1、MAX= "+run.maxMemory());
		System.out.println("1、TOTAL= "+run.totalMemory());
		System.out.println("1、FREE= "+run.freeMemory());
		String str = "";
		for(int x=0;x<1000;x++){
			str += x; //
		}
		System.out.println("2、MAX= "+run.maxMemory());
		System.out.println("2、TOTAL= "+run.totalMemory());
		System.out.println("2、FREE= "+run.freeMemory());
	}
}

如果一旦产生了过多的垃圾之后,那么就会改变可以用的内存空间的大小。在上面的代码中如果Ffor()循环太多的化,最后显示的freeMemory()显示的可用内存反倒会变大就是这个原因。

可是在Runtime类里面有一个方法:public void gc(),可以释放掉垃圾。

package 算法;

public class TestDemo {
	public static void main(String args[]){
		Runtime run = Runtime.getRuntime();   //取得Runtime类的实例化对象
		System.out.println("1、MAX= "+run.maxMemory());
		System.out.println("1、TOTAL= "+run.totalMemory());
		System.out.println("1、FREE= "+run.freeMemory());
		String str = "";
		for(int x=0;x<1000;x++){
			str += x; //产生大量垃圾
		}
		System.out.println("2、MAX= "+run.maxMemory());
		System.out.println("2、TOTAL= "+run.totalMemory());
		System.out.println("2、FREE= "+run.freeMemory());
		run.gc(); //释放垃圾空间
		System.out.println("3、MAX= "+run.maxMemory());
		System.out.println("3、TOTAL= "+run.totalMemory());
		System.out.println("3、FREE= "+run.freeMemory());
	}
}

面试题目:请解释什么叫GC?如何处理?

  • GC(Garbage Collector)垃圾收集器,指的是释放无用的内存空间。
  • GC会由系统不定期进行自动的回收,或者调用Runtime类中的gc()方法进行手动回收

实际上Runtime类还有一个更加有意思的功能,就是说它可以调用本机的可以执行程序,并且创建进程。

  • 执行程序的进程:public Process exec(String command) throws IOException

范例:执行进程

package 算法;

import java.io.IOException;

public class TestDemo {
	public static void main(String args[]) throws IOException, InterruptedException{
		Runtime run = Runtime.getRuntime();   //取得Runtime类的实例化对象
	    Process pro = run.exec("mspaint.exe");    //调用本机可执行程序
	    Thread.sleep(2000);
	    pro.destroy();    //销毁进程
		
	}
}

总结:

1.Runtime类使用了单列设计模式,必须通过内部的getRuntime()方法才可以去得Runtime类对象。

2.Runtime类提供了gc()方法可以提供手工释放内存。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java 允许您玩在线游戏,与世界各地的人聊天,计算您的按揭利息,并以 3D 形式查看图像。这些以 Java 编程语言编写的应用程序和可从浏览中访问的应用程序称为小程序。公司还将 Java 小程序用于内部网应用程序和其他电子商务的解决方案。所有主要行业的公司都在使用 Java。无论是部署在手机、嵌入式设备、游戏机、笔记本电脑还是数据中心,Java 都提供了当今网络应用所需要的丰富的用户界面、性能、多功能性、可移植性和安全性。Java 平台标准版软件是快速开发和部署安全、便携式应用程序的首选平台,可跨大多数操作系统的服务器和桌面系统。 Java 平台标准版(Java SE)可让您在台式机和服务器以及当今苛刻的嵌入式环境中开发和部署 Java 应用程序。Java 提供了当今应用程序所需的丰富的用户界面、性能、通用性、可移植性和安全性。 Java SE Runtime Environment(运行时环境)包含了运行以 Java 编程语言编写的程序所必需的 Java 虚拟机、运行时类库Java 应用程序启动器。 Java 平台的安全性 一个由角色提供的安全信息的描述。适用于开发人员,系统管理员,家庭用户和安全专业人士。 主要特点: - 在一个平台上编写软件,并可在几乎任何其它平台上运行 - 创建的程序可在 Web 浏览器和 Web 服务中运行 - 可开发用于在线论坛、商店、投票、HTML 表单处理等服务器端应用程序 - 结合基于 Java 技术的应用程序或服务来创建高度可定制的应用程序或服务 - 为手机、远程处理器、低成本消费产品和几乎任何具有数字内核的设备编写功能强大且高效的应用程序 Java SE 8 现在可用 Java 平台标准版 8(Java SE 8)是一个主要的功能版本。它包含了很多功能领域的新功能和增强功能。Java SE 8 通过减少样板代码,改进了集合和注释,简单的并行编程模型和更有效地利用现代多核处理器,提高了开发人员的工作效率和显着的增强了应用程序的性能。 Java SE 8u172 版本更新:2018年4月17日
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值