开发者学堂课程【Java高级编程:Runtime 类】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/20/detail/317
Runtime 类
一、简介
二、开发操作流程
三、面试题
一、简介
Runtime 描述的是运行时的状态,也就是说在整个的 JVM 之中,Runtime 类是唯一一个与 JVM 运行状态有关的类,并且都会默认提供有一一个该类的实例化对象。
由于在最每一个 JVM 进程里面只允许提供有一个 Runtime 类的对象,所以这个类的构造方法被默认私有化了,那么就证明该类使用的是单例设计模式,并且单例设计模式一定会提供有一个 static 方法获取本类。
以下是 Runtime 类的主要操作形式。
二、开发操作流程
由于 Runtime 类属于单例设计模式,如果要想获取实例化对象,那么就可以依靠类中的 getRuntime() 方法完成:
●获取实例化对象: public static Runtime getRuntime();。
通过这个类中的 availableProcessors 方法可以获取本机的 CPU 内核数.
范例:获取Runtime类对象
package cn.mldn.demo;
public class JavaAPIDemo
public static void main(String[] args) throws Exception
Runtime run = Runtime.getRuntime();//获取实例化对象System.out.println(run.availableProcessors());
但是除了以上的方法之外,在 Runtime 类里面还提供有以下四个重要的操作方法:
●获取最大可用内存空间; public long maxMemory()
默认的配置为本机系统的 4分之 1。
●获取可用内存空间: public long totalMemory()
;默认的配置为本机系统的 64分之 1。
●获取空闲内存空间: public long freeMemory();
●手工进行GC处理: public void gc()
范例:观察内存状态
package cn.mldn.demo;
public class JavaAPIDemo
public static void main(String[] args)throws Exception
Runtime run = Runtime.getRuntime();//获取实例化对象
System.out.println("【1】MAX_MEMORY:"+run.maxMemory());
System.out.println("【1】TOTAL_MEMORY:"+run.totalMemory());
System.out.println("【1】FREE_MEMORY:"+ run.freeMemory());
String str=“”
for (int x =0;x< Integer.MAX_VALUE;x ++)
str+=x ; // 产生大量的垃圾空间
System.out.println("【2】MAX_MEMORY:"+run.maxMemory());
System.out.println("【2】TOTAL_MEMORY:"+ run.totalMemory());
System.out.println("【2】FREE MEMORY;"+run.freeMemory());
r
un.gc();
System.out.print1n("【3】MAX_MEMORY:"+ run.maxMemory());
System.out.println("【3】TOTAL_MEMORY:"+ run.totalMemory()
System.out.println("【3】FREE_MEMORY:"+ run.freeMemory());
三、面试题
请问什么是 GC?如何处理?
答:GC(Garbage Collector) 垃圾收集器,是可以由系统自动调用的垃圾释放功能,或者使用 Runtime 类的 gc()手工调用。