System类从我们接触JAVA就一直在用。可能你并不没有意识到。。。
这里简单记录一下几个方法,以后可能会用的到
System.in:
这是个用来监听键盘事件的输入流。。
System.gc():
调用垃圾回收器,注意,这里的调用不是实时生效的,因为它相当于通知了JVM要调用GC回收器去加回收空间,但GC的什么时间去执行,则由JVM来分配。
System.currentTimeMillis():
获取自1970-01-01以来现在时间的毫秒数,返回值是Long,此功能可以用来计算程序运行时间、对比时间等功能
示例代码如下:
public static void main(String[] args) {
int count = 0;
Long startTime = System.currentTimeMillis();
//线程休眠100毫秒
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
Long endTime = System.currentTimeMillis();
System.out.println("程序共耗时:"+(endTime-startTime));
}
运行结果为;
程序共耗时:113
System.exit(1):
终止JAVA虚拟机的运行,文档说明:“终止当前正在运行的java虚拟机启动的顺序关闭。这种方法通常不返回。该参数作为状态代码;按惯例,一个非零状态码表示异常终止。”
System.arraycopy(src, srcPos, dest, destPos, length):
复制数组方法,这个方法偶而会使用,下面为使用方法及参数说明:
public static void main(String[] args) {
int[] cs = {1,3,5,4,56,56,57,67,87,8,78,9,8989,89,9,89,89,9};
int[] cs1 = {4,45,645,65,6,45,6};
/*
* System.arraycopy参数说明:
* 参数一:要复制的数组
* 参数二:要复制的数据起始索引
* 参数三:目标数组
* 参数四:目标数组的起始复制位置
* 参数五:要复制的数组的个数
*/
System.arraycopy(cs1, 1, cs, 1, cs1.length-1);
printArray(cs);
}
public static void printArray(int[] cs){
for(int i = 0; i < cs.length; i++){
System.out.print(cs[i]+"\t");
}
System.out.println("");
}
运行结果如下:
1 45 645 65 6 45 6 67 87 8 78 9 8989 89 9 89 89 9
System.getProperties():
获取系统属性,包括系统版本、JDK版本等
示例代码如下:
public static void main(String[] args) {
System.out.println(System.getProperties());
}
运行结果如下:
{java.runtime.name=Java(TM) SE Runtime Environment, sun.boot.library.path=C:\Program Files\Java\jdk1.8.0_121\jre\bin, java.vm.version=25.121-b13, java.vm.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, path.separator=;, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, file.encoding.pkg=sun.io, user.country=CN, user.script=, sun.java.launcher=SUN_STANDARD, sun.os.patch.level=, java.vm.specification.name=Java Virtual Machine Specification, user.dir=E:\Java_Workspace\Test, java.runtime.version=1.8.0_121-b13, java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment, java.endorsed.dirs=C:\Program Files\Java\jdk1.8.0_121\jre\lib\endorsed, os.arch=amd64, java.io.tmpdir=C:\Users\Ckinghan\AppData\Local\Temp\, line.separator=
, java.vm.specification.vendor=Oracle Corporation, user.variant=, os.name=Windows 10, sun.jnu.encoding=GBK, java.library.path=C:\Program Files\Java\jdk1.8.0_121\bin;C:\Windows\Sun\Java\bin;C:\Windows\system32;C:\Windows;C:/Program Files/Java/jre1.8.0_112/bin/server;C:/Program Files/Java/jre1.8.0_112/bin;C:/Program Files/Java/jre1.8.0_112/lib/amd64;C:\ProgramData\Oracle\Java\javapath;C:\Program Files (x86)\Intel\iCLS Client\;C:\Program Files\Intel\iCLS Client\;C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files\Intel\Intel(R) Management Engine Components\DAL;C:\Program Files (x86)\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files\Intel\Intel(R) Management Engine Components\IPT;C:\Program Files (x86)\NVIDIA Corporation\PhysX\Common;C:\Program Files\Java\jdk1.8.0_121\bin;D:\JAVA_WORK\mysql-5.6.24-win32\BIN;C:\Program Files\Intel\WiFi\bin\;C:\Program Files\Common Files\Intel\WirelessCommon\;C:\Users\Ckinghan\AppData\Local\Microsoft\WindowsApps;;D:\JAVA_WORK\eclipse-jee-neon-2-win32-x86_64\eclipse;;., java.specification.name=Java Platform API Specification, java.class.version=52.0, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.version=10.0, user.home=C:\Users\Ckinghan, user.timezone=, java.awt.printerjob=sun.awt.windows.WPrinterJob, file.encoding=GBK, java.specification.version=1.8, java.class.path=E:\Java_Workspace\Test\bin, user.name=Ckinghan, java.vm.specification.version=1.8, sun.java.command=com.ckinghan.SystemDemo1, java.home=C:\Program Files\Java\jdk1.8.0_121\jre, sun.arch.data.model=64, user.language=zh, java.specification.vendor=Oracle Corporation, awt.toolkit=sun.awt.windows.WToolkit, java.vm.info=mixed mode, java.version=1.8.0_121, java.ext.dirs=C:\Program Files\Java\jdk1.8.0_121\jre\lib\ext;C:\Windows\Sun\Java\lib\ext, sun.boot.class.path=C:\Program Files\Java\jdk1.8.0_121\jre\lib\resources.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\rt.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\sunrsasign.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jsse.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jce.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\charsets.jar;C:\Program Files\Java\jdk1.8.0_121\jre\lib\jfr.jar;C:\Program Files\Java\jdk1.8.0_121\jre\classes, java.vendor=Oracle Corporation, file.separator=\, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, sun.io.unicode.encoding=UnicodeLittle, sun.cpu.endian=little, sun.desktop=windows, sun.cpu.isalist=amd64}
System.getProperty(key):
根据参数返回系统属性。
示例如下:
public static void main(String[] args) {
System.out.println(System.getProperty("os.name"));
}
运行结果如下 :
Windows 10
可选参数如下:
Key Description of Associated Value
java.version Java Runtime Environment version
java.vendor Java Runtime Environment vendor
java.vendor.url Java vendor URL
java.home Java installation directory
java.vm.specification.version Java Virtual Machine specification version
java.vm.specification.vendor Java Virtual Machine specification vendor
java.vm.specification.name Java Virtual Machine specification name
java.vm.version Java Virtual Machine implementation version
java.vm.vendor Java Virtual Machine implementation vendor
java.vm.name Java Virtual Machine implementation name
java.specification.version Java Runtime Environment specification version
java.specification.vendor Java Runtime Environment specification vendor
java.specification.name Java Runtime Environment specification name
java.class.version Java class format version number
java.class.path Java class path
java.library.path List of paths to search when loading libraries
java.io.tmpdir Default temp file path
java.compiler Name of JIT compiler to use
java.ext.dirs Path of extension directory or directories
os.name Operating system name
os.arch Operating system architecture
os.version Operating system version
file.separator File separator ("/" on UNIX)
path.separator Path separator (":" on UNIX)
line.separator Line separator ("\n" on UNIX)
user.name User's account name
user.home User's home directory
user.dir User's current working directory