微软的system类库和java_Java常用类库----System 类

System 类基本使用

System.out.println()本身就是一个系统提供好的类,而且out.println()方法也是经常使用到的。

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

public static void exit(int status)    系统退出,如果status为非0就表示退出

public static void gc()          运行垃圾收集机制,调用的是Runtime类中的gc方法

public static long currentTimeMillis()    返回以毫秒为单位的当前时间

public static void arraycopy(Object src,int srcPos,Object dest,int destPos,int length)    数组拷贝操作

public static Properties getProperties()    取得当前的系统全部属性

public static String getProperty(String key)           根据键值取得属性的具体内容

System类除了可以进行内容的输出外,还可以通过方法取得一个操作的计算时间:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classSystemDemo01{public static voidmain(String args[]){long startTime = System.currentTimeMillis() ; //取得开始计算之前的时间

int sum = 0 ; //声明变量

for(int i=0;i<30000000;i++){ //执行累加操作

sum +=i ;

}long endTime = System.currentTimeMillis() ; //取得计算之后的时间//结束时间减去开始时间

System.out.println("计算所花费的时间:" + (endTime-startTime) +"毫秒") ;

}

};

View Code

列出本机的全部属性:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classSystemDemo02{public static voidmain(String args[]){

System.getProperties().list(System.out) ;//列出系统的全部属性

}

};

View Code

列出的属性:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

-- listing properties --java.runtime.name=Java(TM) SE Runtime Environment

sun.boot.library.path=D:\Work\Java\jdk1.8.0_20\jre\bin

java.vm.version=25.20-b23

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.script=user.country=CN

sun.java.launcher=SUN_STANDARD

sun.os.patch.level=java.vm.specification.name=Java Virtual Machine Specification

user.dir=G:\eclipse\workspace\Test

java.runtime.version=1.8.0_20-b26

java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment

java.endorsed.dirs=D:\Work\Java\jdk1.8.0_20\jre\lib\endo...

os.arch=amd64

java.io.tmpdir=C:\Users\lenovo\AppData\Local\Temp\La...

line.separator=java.vm.specification.vendor=Oracle Corporation

user.variant=os.name=Windows 8.1sun.jnu.encoding=GBK

java.library.path=D:\Work\Java\jdk1.8.0_20\bin;C:\windo...

java.specification.name=Java Platform API Specification

java.class.version=52.0sun.management.compiler=HotSpot 64-Bit Tiered Compilers

os.version=6.3user.home=C:\Users\lenovo

user.timezone=java.awt.printerjob=sun.awt.windows.WPrinterJob

file.encoding=GBK

java.specification.version=1.8user.name=lenovo

java.class.path=G:\eclipse\workspace\Test\bin

java.vm.specification.version=1.8sun.arch.data.model=64java.home=D:\Work\Java\jdk1.8.0_20\jre

sun.java.command=Test

java.specification.vendor=Oracle Corporation

user.language=zh

awt.toolkit=sun.awt.windows.WToolkit

java.vm.info=mixed mode

java.version=1.8.0_20

java.ext.dirs=D:\Work\Java\jdk1.8.0_20\jre\lib\ext;...

sun.boot.class.path=D:\Work\Java\jdk1.8.0_20\jre\lib\reso...

java.vendor=Oracle Corporation

file.separator=\

java.vendor.url.bug=http://bugreport.sun.com/bugreport/

sun.cpu.endian=little

sun.io.unicode.encoding=UnicodeLittle

sun.desktop=windows

sun.cpu.isalist=amd64

View Code

如果现在只需要取得几个固定属性的话,则就可以通过以下取得:

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

public classSystemDemo03{public static voidmain(String args[]){

System.out.println("系统版本:" + System.getProperty("os.name")+ System.getProperty("os.version")+ 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")) ;

}

};

View Code

垃圾对象的回收

一个对象如果不使用,则肯定要等待进行垃圾收集,垃圾收集可以自动调用也可以手动调用,手工调用的时候就是调用System.gc()或者Runtime.getRuntime().gc()。但是,如果一个对象在回收之前需要做一些收尾的工作,则就必须覆写Object类中:

protected void finalize() throws Throwable

在对象被回收之前进行调用,以处理对象回收前的若干操作,比如释放资源等等。

8f900a89c6347c561fdf2122f13be562.png

961ddebeb323a10fe0623af514929fc1.png

classPerson{privateString name ;private intage ;public Person(String name,intage){this.name =name ;this.age =age;

}public String toString(){ //覆写toString()方法

return "姓名:" + this.name + ",年龄:" + this.age ;

}public void finalize() throws Throwable{ //对象释放空间时默认调用此方法

System.out.println("对象被释放 --> " + this) ;

}

};public classSystemDemo04{public static voidmain(String args[]){

Person per= new Person("张三",30) ;

per= null ; //断开引用

System.gc() ; //强制性释放空间

}

};

View Code

只有强制性调用gc()的时候才可以发现对象被回收,当然,如果不调用,则系统也会在一定时间内自动进行回收。

wCgZZFAlmhXoQAAAABJRU5ErkJggg==

总结:System类本身提供的静态属性都是与IO操作有关的。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值