Runtime 类|学习笔记

简介: 快速学习 Runtime 类

开发者学堂课程【Java高级编程Runtime 类】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/20/detail/317


Runtime 类


一、简介

二、开发操作流程

三、面试题


一、简介

Runtime 描述的是运行时的状态,也就是说在整个的 JVM 之中,Runtime 类是唯一一个与 JVM 运行状态有关的类,并且都会默认提供有一一个该类的实例化对象。

由于在最每一个 JVM 进程里面只允许提供有一个 Runtime 类的对象,所以这个类的构造方法被默认私有化了,那么就证明该类使用的是单例设计模式,并且单例设计模式一定会提供有一个 static 方法获取本类。

以下是 Runtime 类的主要操作形式。

图片9.png


二、开发操作流程

由于 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());

run.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()手工调用。

相关文章
|
4月前
|
Java
Java常用API-Runtime
Java常用API-Runtime
|
Java
System与Runtime类
System与Runtime类
66 0
|
Java API
Java中常用API总结(3)—— Runtime类(含实例解读)
Runtime类所在包为java.lang包,因此在使用的时候不需要进行导包;并且Runtime类被public修饰了,因此该类是可以被继承的
204 0
Java中常用API总结(3)—— Runtime类(含实例解读)
|
缓存 iOS开发
Runtime系列:Class的结构【03】
Runtime系列:Class的结构
129 0
Runtime系列:Class的结构【03】
|
设计模式 Java 开发者
Runtime 相关说明 | 学习笔记
快速学习 Runtime 相关说明。
145 0
|
Java Serverless
FC Java runtime 找不到函数入口问题
在函数计算中使用Java编程时,需要定义一个函数作为入口函数。由于Java有包的概念,因此执行方法和其他语言有所不同,需要带有包信息。在入口函数需要配置包信息
638 0
FC Java runtime 找不到函数入口问题
|
缓存 iOS开发 编译器
Runtime那些事
Runtime介绍。
2091 0
|
Windows 设计模式