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类除了可以进行内容的输出外,还可以通过方法取得一个操作的计算时间:

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

列出本机的全部属性:

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

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

}

};

View Code

列出的属性:

-- 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

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

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

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

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()的时候才可以发现对象被回收,当然,如果不调用,则系统也会在一定时间内自动进行回收。

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

微软的system类库和java_Java常用类库----System 类相关推荐

  1. JavaSE——常用类库(下)(Date、DateFormat、Calendar、System类)

    第1节 常用类库(下) 六.java.util.Date Date类表示特定的时刻,精度为毫秒. 在JDK 1.1之前, Date类还有两个附加功能. 它允许将日期解释为年,月,日,小时,分钟和秒值. ...

  2. 类库java_Java类库和常用类库介绍

    Java类库和常用类库介绍 2018-09-20 Java 类库和常用类库介绍--序 作者: zccst Java 类库概念: Java 的应用程序接口 (API) 以包的形式来组织,每个包提供了大量 ...

  3. Java常用类库(Object类、String类、StringBuffer类、包装类、Math类、System类)详解

    常用类库 java.lang java.lang包下放置了Java开发中常用的类和接口,所以为简化该包下类的使用,java.lang包下的类在使用时不需要导入这些类 java.lang包下常用类有: ...

  4. Java常用类库以及简介,具体使用细节进行百度(爬虫爬取的数据)

    来至于互联网 Office文档的Java处理包 POI [推荐] Apache POI是一个开源的Java读写Excel.WORD等微软OLE2组件文档的项目.目前POI已经有了Ruby版本. 结构: ...

  5. java 常用类库_JAVA(三)JAVA常用类库/JAVA IO

    成鹏致远 |lcw.cnblog.com|2014-02-01 JAVA常用类库 1.StringBuffer StringBuffer是使用缓冲区的,本身也是操作字符串的,但是与String类不同, ...

  6. JavaSE——常用类库(String类)

    第1节 常用类库--String 因为String相对之前的类来说更加常用一些,所以对字符串类进行专门的整理. 1. 概述 String类表示字符串,Java中的所有字符串文字都实现为此类的实例. 字 ...

  7. JavaSE——常用类库(上)(泛型、Objects、Math、ArraysBigDecimal类)

    第1节 常用类库(上) 面向对象更多是思想上的东西,常用类库更多是工具上的东西,熟能生巧,多整理笔记. 一.泛型 1.1 概述 泛型,即"参数化类型".就是将类型由原来具体类型进行 ...

  8. JAVA计时函数的库_JAVA开发常用类库UUID、Optional、ThreadLocal、TimerTask、Base64使用方法与实例详解...

    1.UUID类库 UUID 根据时间戳实现自动无重复字符串定义 // 获取UUID public static UUID randomUUID() // 根据字符串获取UUID public stat ...

  9. JAVA笔记:Java常用类库

    这篇文章我们来总结下Java中的常用类库.类库中的这些类和方法都是精心设计的,其运行的效率高.质量高,这些类和方法几乎包含在所有的Java软件中,所以可移植性很高. 下面我们详细学习下. String ...

最新文章

  1. Coursera吴恩达《卷积神经网络》课程笔记(2)-- 深度卷积模型:案例研究
  2. Ubuntu 12.04: virtualenv下安装 numpy, scipy, matpl...
  3. VIM-配置-.vimrc
  4. Ubuntu16.04下安装MySQL
  5. 创建struct fib_info
  6. java的jdk是什么_什么是jdk?
  7. [EACL17]K-best Iterative Viterbi Parsing(K-best迭代维特比句法分析)
  8. Linux里如何查找文件内容
  9. 案例7-1 模拟EXCEL排序 (25 分)(根据结构体某一元素排序)
  10. ESP8266-Arduino编程实例-BME280环境传感器驱动
  11. 电气阀门定位器调试方法
  12. (PTA)7-5 查询水果价格 (15分)
  13. 项目中的鉴权是如何实现的?
  14. Android:高德SDK的基本使用
  15. 柔性机械臂_Soft robotics:香港大学研发全新柔性驱动方式为仿生机器人设计提供新思路!...
  16. house of grey
  17. Oracle ERP系统月结与年结流程
  18. eclipse将web项目打包成war包
  19. 数据库 高性能服务器,高性能数据库服务器配置
  20. WPF中获取Canvas中控件的坐标方法

热门文章

  1. python中的set
  2. LeetCode Pascal's Triangle
  3. Java中的线程和同步
  4. CHD-5.3.6集群上hive安装
  5. MS12-042 用户态调度机制特权提升漏洞
  6. 20155308 《信息安全系统设计基础》课程总结
  7. Vector的使用方法和自我理解
  8. IDEA 回滚SVN更新内容
  9. Github for Windows使用图文教程
  10. oracle的函数索引怎么建,如何创建oracle函数索引