java学习笔记(三十四)认识Runtime类
来源:互联网 发布:金额均分算法 编辑:程序博客网 时间:2024/06/05 23:44
1.1 认识Runtime类
Runtime:运行时,是一个封装了JVM进程的类,每一个java程序实际上都是启动了一个JVM进程,那么每个JVM进程都是对应这一个Runtime实例,此实例是由JVM为其实例化的。
public class Runtimeextends Object每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。可以通过 getRuntime 方法获取当前运行时。
应用程序不能创建自己的 Runtime 类实例。
1.2 本类的定义中根本就没有构造方法,本类的构造公共被私有化了。则在此类中肯定有一个方法可以返回该类的实例化对象。
public static Runtime getRuntime()
返回与当前 Java 应用程序相关的运行时对象。Runtime 类的大多数方法是实例方法,并且必须根据当前的运行时对象对其进行调用。
返回:
与当前 Java 应用程序相关的 Runtime 对象。
--------------------------------------------------------------------------------
得到JVM信息
实例:
public class RunTimeDemo01{ public static void main(String args[]){ Runtime run = Runtime.getRuntime(); System.out.println("JVM最大内存:"+run.maxMemory()); System.out.println("JVM空闲内存:"+run.freeMemory()); }}
结果:
F:\java>javac RunTimeDemo01.java
F:\java>java RunTimeDemo01
JVM最大内存:259522560
JVM空闲内存:15932104
1.3 释放内存 run.gc()
public class RunTimeDemo01{ public static void main(String args[]){ Runtime run = Runtime.getRuntime(); String str = "hahei"+"dd"+"sggh"; System.out.println("JVM最大内存:"+run.maxMemory()); System.out.println("操作之前JVM空闲内存:"+run.freeMemory()); for(int i = 0;i < 100;i++){ str += i; } System.out.println("JVM最大内存:"+run.maxMemory()); System.out.println("操作之后JVM空闲内存:"+run.freeMemory()); run.gc(); System.out.println("free之后"+run.freeMemory()); }}
结果:
F:\java>javac RunTimeDemo01.java
F:\java>java RunTimeDemo01
JVM最大内存:259522560
操作之前JVM空闲内存:15932176
JVM最大内存:259522560
操作之后JVM空闲内存:15841496
free之后16045904
1.4 Runtime类与Process类
除了观察内存使用量之外,也可以直接使用Runtime类运行本机的可执行程序,例如,调用记事本
public Process exec(String command)
throws IOException在单独的进程中执行指定的字符串命令。
这是一个很有用的方法。对于 exec(command) 形式的调用而言,其行为与调用 exec(command, null, null) 完全相同。
参数:
command - 一条指定的系统命令。
返回:
一个新的 Process 对象,用于管理子进程
抛出:
SecurityException - 如果安全管理器存在,并且其 checkExec 方法不允许创建子进程
IOException - 如果发生 I/O 错误
NullPointerException - 如果 command 为 null
IllegalArgumentException - 如果 command 为空
实例:
- java学习笔记(三十四)认识Runtime类
- java学习笔记(三十四)网络编程
- 软件工程视频学习笔记(三十四)
- 信息安全工程师 学习笔记(三十四)
- 认识java.lang.Runtime类
- JavaSE学习笔记_14:Java-Runtime类
- java 从零开始,学习笔记之基础入门<Oracle_查询>(三十四)
- JAVA学习笔记(三十四)- 字节打印流 PrintStream
- LinuxCast学习笔记三十四:SMB
- Swift学习笔记(三十四)——函数类型
- opencv学习笔记(三十四)内存和序列
- java学习笔记,认识java
- 学习笔记之Runtime类
- C#回顾学习笔记三十四:接口
- 【Java学习笔记】5:简单认识Java常用类库
- Java学习笔记(七)之―认识Java API
- JAVA Runtime相关类学习
- 我的php学习笔记(三十四)PHP中正则表达式学习及应用(二)
- java学习笔记(二十七)抽象类与设计模式
- C语言点滴
- c#有关获取系统路径
- 一些杂类网站
- 函数名与函数指针解惑
- java学习笔记(三十四)认识Runtime类
- C语言复杂声明
- VUSB(原AVRUSB)笔记1------电路图分析
- java 基TCP的多线程 网络编程
- 感冒也来凑热闹!感冒而有感!
- 两款PHP环境搭建工具
- Maven多模块项目 eclipse热部署 Maven项目实现 tomcat热部署 .
- catalina.sh加set JAVA_OPTS='-Xms64 -Xmx512'无效解决方案
- 【PHP】一个bom头引发的血案