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

相关文章
|
Java API
Java中常用API总结(3)—— Runtime类(含实例解读)
Runtime类所在包为java.lang包,因此在使用的时候不需要进行导包;并且Runtime类被public修饰了,因此该类是可以被继承的
154 0
Java中常用API总结(3)—— Runtime类(含实例解读)
|
Kotlin
kotlin使用代码javaClass或class.java报错:unresolved reference
解决方法: 在项目的build.gradle中配置一下即可
1303 0
|
前端开发 JavaScript Java
java高级用法之:JNA中的回调
什么是callback呢?简单点说callback就是回调通知,当我们需要在某个方法完成之后,或者某个事件触发之后,来通知进行某些特定的任务就需要用到callback了。 最有可能看到callback的语言就是javascript了,基本上在javascript中,callback无处不在。为了解决callback导致的回调地狱的问题,ES6中特意引入了promise来解决这个问题。 为了方便和native方法进行交互,JNA中同样提供了Callback用来进行回调。JNA中回调的本质是一个指向native函数的指针,通过这个指针可以调用native函数中的方法,一起来看看吧。
java高级用法之:JNA中的Structure
前面我们讲到了JNA中JAVA代码和native代码的映射,虽然可以通过TypeMapper来将JAVA中的类型和native中的类型进行映射,但是native中的数据类型都是基础类型,如果native中的数据类型是复杂的struct类型该如何进行映射呢? 不用怕,JNA提供了Structure类,来帮助我们进行这些映射处理。
|
监控 Java API
Java的Instrumentation类原理分析(下)
Java的Instrumentation类原理分析(下)
157 0
|
监控 Java API
Java的Instrumentation类原理分析(上)
Java的Instrumentation类原理分析(上)
333 0
|
设计模式 Java 开发者
Runtime 相关说明 | 学习笔记
快速学习 Runtime 相关说明。
116 0
|
Windows 设计模式