System与 Runtime类
System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。
1、成员变量
System类内部包含in、out和err三个成员变量,分别代表标准输入流(键盘输入),标准输出流(显示器)和标准错误输出流。
2、成员方法
System类中提供了一些系统级的操作方法
(1)public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)
该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。
(2)public static long currentTimeMillis()
该方法的作用是返回当前的计算机时间,时间的表达格式为当前计算机时间和GMT时间(格林威治时间)1970年1月1号0时0分0秒所差的毫秒数。
(3)public static void exit(int status)
该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。
(4)public static void gc()
该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。
(5)public static String getProperty(String key)
该方法的作用是获得系统中属性名为key的属性对应的值。
java.version Java 运行时环境版本
java.home Java 安装目录
os.name 操作系统的名称
os.version 操作系统的版本
user.name 用户的账户名称
user.home 用户的主目录
user.dir 用户的当前工作目录
Runtime类:每个 Java 应用程序都有一个 Runtime 类实例,使应用程序能够与其运行的环境相连接。
//获取Java运行时相关的运行时对象
Runtime rt = Runtime.getRuntime();
System.out.println(“处理器数量:” + rt.availableProcessors()+" 个");
System.out.println(“Jvm总内存数 :”+ rt.totalMemory()+" byte");
System.out.println(“Jvm空闲内存数: “+ rt.freeMemory()+” byte”);
System.out.println(“Jvm可用最大内存数: “+ rt.maxMemory()+” byte”);
//在单独的进程中执行指定的字符串命令。
rt.exec(“notepad”);
package com.vince;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Arrays;
import java.util.Date;
public class SystemRuntimeDemo {
public static void main(String[] args) {
System.out.println("向控制台输出");
System.err.println("出错啦");
int[] num1 = {1,2,3,4,5,6,7,8};
int[] num2 = new int[num1.length];
//参数(源数组,源数组的起始位置 ,目标数组,目标数组的起始位置 ,长度)
System.arraycopy(num1, 0, num2, 0, num1.length);
System.out.println(Arrays.toString(num2));
System.out.println(System.currentTimeMillis());
Date nowDate = new Date(System.currentTimeMillis());
DateFormat df = new SimpleDateFormat("HH:mm:ss");
String now = df.format(nowDate);
System.out.println(now);
//退出JVM
//System.exit(0);
System.out.println(System.getProperty("java.version"));
System.out.println(System.getProperty("java.home"));
System.out.println(System.getProperty("os.name"));
Runtime rt = Runtime.getRuntime();
System.out.println("处理器数量:" + rt.availableProcessors()+" 个");
System.out.println("Jvm总内存数 :"+ rt.totalMemory()+" byte");
System.out.println("Jvm空闲内存数: "+ rt.freeMemory()+" byte");
System.out.println("Jvm可用最大内存数: "+ rt.maxMemory()+" byte");
//在单独的进程中执行指定的字符串命令。
try {
rt.exec("notepad"); //打开记笔本
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//加载C、C++编写的类库
//System.loadLibrary(libname)
}
}