Runtime类的简单应用
1.描述
Runtime:描述运行时状态。
在整个JVM中,Runtime类是唯一一个与JVM运行状态有关的类,且默认提供一个该类的实例化对象。
由于在每一个JVM进程中只允许提供一个Runtime类的对象,所以该类的构造方法被默认私有化,指明该类使用的是单例设计模式,且单例模式会提供一个static方法获取本类实例。
2.获取
获取实例化对象:
public static Runtime getRuntime() //返回与当前Java应用程序关联的运行时对象。 Runtime类的大多数方法都是实例方法,必须针对当前的运行时对象进行调用。
3.方法介绍
- 获取最大可用内存空间:public long maxMemory() ;
- 获取可用内存空间:public long totalMemory() ;
- 获取空闲内存空间:public long freeMemory() ;
- 手工进行GC处理:public void gc() 。
具体描述参考API文档。
4.示例-观察内存状态
1 Runtime runtime = Runtime.getRuntime(); //获取实例化对象
2 System.out.println(runtime.availableProcessors()); //返回可用于Java虚拟机的处理器数量 (CPU内核数)
3 System.out.println("【1】MAX_MEMORY:" + runtime.maxMemory());
4 System.out.println("【1】TOTAL_MEMORY:" + runtime.totalMemory());
5 System.out.println("【1】FREE_MEMORY:" + runtime.freeMemory());
6 runtime.gc(); // 垃圾回收
7 System.out.println("【2】MAX_MEMORY:" + runtime.maxMemory());
8 System.out.println("【2】TOTAL_MEMORY:" + runtime.totalMemory());
9 System.out.println("【2】FREE_MEMORY:" + runtime.freeMemory());
通过计算获取到的 MAX_MEMORY、TOTAL_MEMORY 对应值,可分别获取本机系统内存的值;
计算方法:
由于 Runtime 类中的 maxMemory()、totalMemory()、freeMemory()方法获取的近似结果是以 字节 为单位,所以将获取到的值分别除以 1024的3次方 得到以G为单位的数值。
结论:
- maxMemory() 默认配置为本机系统内存的四分之一
- totalMemory() 默认配置为本机系统内存的六十四分之一
5.GC
GC(Garbage Collector)垃圾收集器,是可以由系统自动调用的垃圾释放功能,或者使用Runtime类中的gc手工调用。
该文章部分内容来源于其他资料,如有侵权或对您造成困扰,还请及时联系我删除相关内容,带来不便还请谅解。
Runtime类的简单应用的更多相关文章
- java中Runtime类和Process类的简单介绍
在java.lang包当中定义了一个Runtime类,在java中对于Runtime类的定义如下: Java code public class Runtime extends Object 每个 J ...
- java基础---->Runtime类的使用(一)
这里面我们对java中的Runtime类做一个简单的了解介绍.若不常想到无常和死,虽有绝顶的聪明,照理说也和呆子一样. Runtimeo类的使用 一.得到系统内存的一些信息 @Test public ...
- Java中RunTime类介绍
Runtime 类代表着Java程序的运行时环境,每个Java程序都有一个Runtime实例,该类会被自动创建,我们可以通过Runtime.getRuntime() 方法来获取当前程序的Runtime ...
- java中Runtime类
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
- Runtime类 调用windows程序。
import java.io.*; public class webcyz { /** * @param args */ public static void main(String[] args) ...
- 适配器、工厂模式、线程池、线程组、互斥锁、Timer类、Runtime类、单例设计模式(二十四)
1.多线程方法 * Thread 里面的俩个方法* 1.yield让出CPU,又称为礼让线程* 2.setPriority()设置线程的优先级 * 优先级最大是10,Thread.MAX_PRIORI ...
- DataAccess通用数据库访问类,简单易用,功能强悍
以下是我编写的DataAccess通用数据库访问类,简单易用,支持:内联式创建多个参数.支持多事务提交.支持参数复用.支持更换数据库类型,希望能帮到大家,若需支持查出来后转换成实体,可以自行扩展dat ...
- 深入研究java.lang.Runtime类
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
- 浅析Java.lang.Runtime类
一.概述 Runtime类封装了运行时的环境.每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接. 一般不能实例化一个Runtime对象, ...
- java中Color类的简单总结
java中Color类的简单总结 1.颜色的常识 任何颜色都是由三原色组成(RGB),JAVA中支持224为彩色,即红绿蓝分量取值 介于0-255之间(8位表示) 2.Color类中的常量 publi ...
随机推荐
- JDK、JRE和JVM简述
JDK(Java Development Kit) JDK是Java开发环境的核心组件,包括:Java编译器.JRE(Java运行环境)JavaDoc文档生成器和其他一些工具. JDK是Java程序员 ...
- CSV文件导出详细讲解
一.准备jar 如下所以放入maven配置文件中 二.controller层 三.SERVICE层 四.CsvUtil文件 /** * csv文件导入导出 */public class CsvUti ...
- python模块xlsxwriter使用
1.安装 pip install XlsxWriter 2.使用 # -*- coding: utf-8 -*- from io import BytesIO import qrcode # impo ...
- esphome esp8266刷写遇到的问题
问题描述: 在尝试打开串口时出现以下错误信息: Failed to execute 'open' on 'SerialPort': Failed to open serial port. 起因: 莫名 ...
- 使用JDBC查询数据库会一次性加载所有数据吗
前几天有个小伙伴说他有个疑问:当我们发起一个查询的时候,数据库服务器是把所有结果集都准备好,然后一次性返回给应用程序服务吗(因为他们生产有个服务因为一个报表查询搞宕机了). 这样想的原因很简单,假设那 ...
- Docker容器常用操作命令(镜像的上传、下载、导入、导出、创建、删除、修改、启动等)详解
1.docker镜像下载 docker pull [options] name [:tag@digest] name后边可以跟镜像标签或者镜像摘要(其实就是镜像的版本),如果不加任何东西,则会默认是在 ...
- WebShell流量特征检测_冰蝎篇
80后用菜刀,90后用蚁剑,95后用冰蝎和哥斯拉,以phpshell连接为例,本文主要是对这四款经典的webshell管理工具进行流量分析和检测. 什么是一句话木马? 1.定义 顾名思义就是执行恶意指 ...
- JavaScript – Set and Map
参考 Set 和 Map 数据结构 Set 介绍和使用 Set 很像 Array, 但其实它是一个 Iteralbe 对象. 用于保存多个值, 而且具有 unique 特性 (1 个 set 里面不会 ...
- Hugging Face NLP课程学习记录 - 0. 安装transformers库 & 1. Transformer 模型
Hugging Face NLP课程学习记录 - 0. 安装transformers库 & 1. Transformer 模型 说明: 首次发表日期:2024-09-14 官网: https: ...
- 10 分钟快速搞懂 Lambda 表达式
Lambda简介 Lambda表达式是Java8引入的一个重要特性,相当于一个语法糖. 语法糖(Syntactic sugar)是指在编程语言中引入的一种语法,它可以使代码更易读.更简洁,但并没有引入 ...