博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaSE基础:System类和Runtime类
阅读量:6177 次
发布时间:2019-06-21

本文共 6088 字,大约阅读时间需要 20 分钟。

System类

简单了解System类的使用和常用方法,System类是一些与系统相关的属性和方法的集合,而且在System类中所有的属性都是静态的,要想引用这些属性和方法,直接使用System类调用即可。

编号 方法名称 类型 描述
1 public static void exit(int status) 静态方法 系统退出,如果status为0就表示退出
2 public static void gc() 静态方法 运行垃圾收集机制,调用的是Runtime类中的gc方法。
3 public static long currentTimeMillis() 静态方法 返回以毫秒为单位的当前时间
4 public static void arraycopy(Object src,int srcPos, Object dest,int desPos,int length) 静态方法 数组拷贝操作
5 public static Properties getProperties() 静态方法 取得当前系统的全部属性
6 public static String getProperty(String key) 静态方法 根据键值取得属性的具体内容
java.version Java 运行时环境版本
java.vendor Java 运行时环境供应商
java.vendor.url Java 供应商的 URL
java.home Java 安装目录
java.vm.specification.version Java 虚拟机规范版本
java.vm.specification.vendor Java 虚拟机规范供应商
java.vm.specification.name Java 虚拟机规范名称
java.vm.version Java 虚拟机实现版本
java.vm.vendor Java 虚拟机实现供应商
java.vm.name Java 虚拟机实现名称
java.specification.version Java 运行时环境规范版本
java.specification.vendor Java 运行时环境规范供应商
java.specification.name Java 运行时环境规范名称
java.class.version Java 类格式版本号
java.class.path Java 类路径
java.library.path 加载库时搜索的路径列表
java.io.tmpdir 默认的临时文件路径
java.compiler 要使用的 JIT 编译器的名称
java.ext.dirs 一个或多个扩展目录的路径
os.name 操作系统的名称
os.arch 操作系统的架构
os.version 操作系统的版本
file.separator 文件分隔符(在 UNIX 系统中是“/”)
path.separator 路径分隔符(在 UNIX 系统中是“:”)
line.separator 行分隔符(在 UNIX 系统中是“/n”)
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录

来源JDK的帮助文档

package com.shxt.demo04;public class Demo02 {    public static void main(String[] args) {        System.out.println("java_vendor:" + System.getProperty("java.vendor"));        System.out.println("java_vendor_url:"                + System.getProperty("java.vendor.url"));        System.out.println("java_home:" + System.getProperty("java.home"));        System.out.println("java_class_version:"                + System.getProperty("java.class.version"));        System.out.println("java_class_path:"                + System.getProperty("java.class.path"));        System.out.println("os_name:" + System.getProperty("os.name"));        System.out.println("os_arch:" + System.getProperty("os.arch"));        System.out.println("os_version:" + System.getProperty("os.version"));        System.out.println("user_name:" + System.getProperty("user.name"));        System.out.println("user_home:" + System.getProperty("user.home"));        System.out.println("user_dir:" + System.getProperty("user.dir"));        System.out.println("java_vm_specification_version:"                + System.getProperty("java.vm.specification.version"));        System.out.println("java_vm_specification_vendor:"                + System.getProperty("java.vm.specification.vendor"));        System.out.println("java_vm_specification_name:"                + System.getProperty("java.vm.specification.name"));        System.out.println("java_vm_version:"                + System.getProperty("java.vm.version"));        System.out.println("java_vm_vendor:"                + System.getProperty("java.vm.vendor"));        System.out                .println("java_vm_name:" + System.getProperty("java.vm.name"));        System.out.println("java_ext_dirs:"                + System.getProperty("java.ext.dirs"));        System.out.println("file_separator:"                + System.getProperty("file.separator"));        System.out.println("path_separator:"                + System.getProperty("path.separator"));        System.out.println("line_separator:"                + System.getProperty("line.separator"));    }}复制代码

Runtime类

运行时,是一个封装了JVM进程的类。每一个JAVA程序实际上都是启动了一个JVM进程,那么每一个进程都是对应这一个Runtime实例,其实例是由JVM为其初始化的。

编号 方法名称 类型 描述
1 public static Runtime getRuntime() 普通方法 用于取得Runtime类的实例
2 public long freeMemory() 普通方法 用于返回Java虚拟机中的空闲内存
3 public long maxMemory() 普通方法 返回JVM的最大内存量
4 public void gc() 普通方法 运行垃圾回收器,释放空间
5 public Process exec(String command) throws IOException 普通方法 执行本机命令
package com.shxt.demo04;public class Demo03 {    public static void main(String[] args) {        Runtime run = Runtime.getRuntime(); // 通过Runtime类的静态方法进行实例化操作        System.out.println("JVM最大内存量:" + run.maxMemory()) ; // 观察最大的内存,根据机器的不同,环境也会有所不同        System.out.println("JVM空闲内存量:" + run.freeMemory()) ;    // 取得程序运行的空闲内存        String str = "Hello " + "World" + "!!!"                +"\t" + "Welcome " + "To " + "SHXT" + "~" ;        System.out.println(str) ;        for(int x=0;x<1000;x++){            str += x ;          // 循环修改内容,会产生多个垃圾        }        System.out.println("操作String之后的,JVM空闲内存量:" + run.freeMemory()) ;        run.gc() ;      // 进行垃圾收集,释放空间        System.out.println("垃圾回收之后的,JVM空闲内存量:" + run.freeMemory()) ;    }}/*    运行结果为:        JVM最大内存量:3782737920        JVM空闲内存量:249990240        Hello World!!!	Welcome To SHXT~        操作String之后的,JVM空闲内存量:239336736        垃圾回收之后的,JVM空闲内存量:253339448*/复制代码

示例1:调用记事本命令

package com.shxt.demo04;public class Demo04 {    public static void main(String[] args) {        Runtime r = Runtime.getRuntime();        Process p = null;        try{            p = r.exec("notepad");        } catch (Exception e) {            System.out.println("Error executing notepad.");        }    }}复制代码

示例2:PING地址

package com.shxt.demo04;import java.io.BufferedInputStream;import java.io.BufferedReader;import java.io.InputStreamReader;public class Demo05 {    public static void main(String[] args) {        String cmd = "ping www.baidu.com";        Runtime run = Runtime.getRuntime();//返回与当前 Java 应用程序相关的运行时对象        try {            Process p = run.exec(cmd);// 启动另一个进程来执行命令            BufferedInputStream in = new BufferedInputStream(p.getInputStream());            BufferedReader inBr = new BufferedReader(new InputStreamReader(in,"GB2312"));            String lineStr;            while ((lineStr = inBr.readLine()) != null)                //获得命令执行后在控制台的输出信息                System.out.println(lineStr);// 打印输出信息            //检查命令是否执行失败。            if (p.waitFor() != 0) {                if (p.exitValue() == 1)//p.exitValue()==0表示正常结束,1:非正常结束                    System.err.println("命令执行失败!");            }            inBr.close();            in.close();        } catch (Exception e) {            e.printStackTrace();        }    }}复制代码

转载地址:http://vizda.baihongyu.com/

你可能感兴趣的文章
我是菜鸟我加油……mysql主从同步
查看>>
[体系结构]设计模式(五)
查看>>
分布式文件系统
查看>>
其实很简单 微星为你详解Z77主板BIOS设置
查看>>
在Ubuntu Kylin下安装JDK1.8
查看>>
Hadoop 学习一
查看>>
Linux中生成/etc/shadow的加密密码
查看>>
《gcc五分钟系列》第三节:-o选项
查看>>
批量检测主机存活状态
查看>>
解决 error: gnu/stubs-32.h: No such file or directory
查看>>
imread 函数 的相关细节
查看>>
分布式和事务
查看>>
C#学习常用类(1002)---KeyValuePair<TKey, TValue> 结构
查看>>
浅谈grep命令查找匹配内容的使用、参数、正则
查看>>
磁盘配额
查看>>
UserInputControls用户输入控制
查看>>
我的友情链接
查看>>
Nginx+Lua架构开发目录贴
查看>>
mysql备份方法(热备)
查看>>
scala匿名函数
查看>>