您当前的位置: 首页 > 学无止境 > 心得笔记 网站首页心得笔记
【第11章:Java常用类库】_System类
发布时间:2020-12-24 13:58:57编辑:雪饮阅读()
System.currentTimeMillis
System.currentTimeMillis用于获取系统当前时间戳(毫秒数)
用此特性可以计算程序运行所耗费的时间
public class Hello{
public static void main(String args[]){
long startTime=System.currentTimeMillis();
for(int x=0;x<10;x++){
System.out.print(x+"\t");
}
System.out.println();
long endTime=System.currentTimeMillis();
System.out.println("消耗时间:"+(endTime-startTime)+"毫秒");
}
}
D:\>javac Hello.java
D:\>java Hello
0 1 2 3 4 5 6 7 8 9
消耗时间:1毫秒
System.getProperties().list(System.out)
System.getProperties().list(System.out)用于列出系统所有属性
public class Hello{
public static void main(String args[]){
System.getProperties().list(System.out);
}
}
D:\>javac Hello.java
D:\>java Hello
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=C:\Program Files (x86)\Java\jdk1.6.0_...
java.vm.version=11.0-b16
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url=http://java.sun.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=D:\
java.runtime.version=1.6.0_11-b03
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=C:\Program Files (x86)\Java\jdk1.6.0_...
os.arch=x86
java.io.tmpdir=C:\Users\ADMINI~1\AppData\Local\Temp\
line.separator=
java.vm.specification.vendor=Sun Microsystems Inc.
user.variant=
os.name=Windows Vista
sun.jnu.encoding=GBK
java.library.path=C:\Program Files (x86)\Java\jdk1.6.0_...
java.specification.name=Java Platform API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Client Compiler
os.version=6.2
user.home=C:\Users\Administrator
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=GBK
java.specification.version=1.6
user.name=Administrator
java.class.path=.
java.vm.specification.version=1.0
sun.arch.data.model=32
java.home=C:\Program Files (x86)\Java\jdk1.6.0_...
java.specification.vendor=Sun Microsystems Inc.
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.6.0_11
java.ext.dirs=C:\Program Files (x86)\Java\jdk1.6.0_...
sun.boot.class.path=C:\Program Files (x86)\Java\jdk1.6.0_...
java.vendor=Sun Microsystems Inc.
file.separator=\
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport...
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=pentium_pro+mmx pentium_pro pentium+m...
获取java系统属性单个属性
上面获取的是整个java系统属性列表,也可以单独获取指定key的java系统属性,可以看到上面的列表中都是以key=val的形式,所以可以单独指定key的形式获取。
public class Hello{
public static void main(String args[]){
System.out.println("系统名称:"+System.getProperty("os.name"));
System.out.println("系统版本:"+System.getProperty("os.version"));
System.out.println("系统架构:"+System.getProperty("os.arch"));
System.out.println("当前系统用户名称:"+System.getProperty("user.name"));
System.out.println("当前用户家目录:"+System.getProperty("user.home"));
System.out.println("当前用户所在目录(本脚本所在目录):"+System.getProperty("user.dir"));
}
}
D:\>javac Hello.java
D:\>java Hello
系统名称:Windows Vista
系统版本:6.2
系统架构:x86
当前系统用户名称:Administrator
当前用户家目录:C:\Users\Administrator
当前用户所在目录(本脚本所在目录):D:\
System.gc()与finalize()
System.gc方法用于显式回收垃圾,而如果一个对象所在堆内存垃圾被回收前会先执行该对象中的finalize方法。
class Person{
private String name;
private int age;
public Person(String name,int age){
this.name=name;
this.age=age;
}
public void finalize() throws Throwable{
System.out.println("对象被释放:"+this);
}
public String toString(){
return "姓名:"+this.name+"\t年龄:"+this.age;
}
}
public class Hello{
public static void main(String args[]){
Person kasumi=new Person("kasumi",24);
//断开堆内存连接产生堆内存垃圾
kasumi=null;
//垃圾不会立即回收,但可以显式直接回收
System.gc();
}
}
关键字词:java,System