System用法详细解析

System类代表系统,系统级的很多属性和控制方法都放置在该类的内部。该类位于java.lang包。
由于该类的构造方法是private的,所以无法创建该类的对象,也就是无法实例化该类。其内部的成员变量和成员方法都是static的
**.**标准输入输出, 如out、in、err
**.**外部定义的属性和环境变量的访问,如getenv()/setenv()和getProperties()/setProperties()
**.**加载文件和类库的方法,如load()和loadLibrary()、
**.**快速拷贝数组的方法:arraycopy()
**.**jvm操作:如gc()、runFinalization()、exit(),该部分并未在源码的java doc中提到,可能因为本身不建议主动调用吧。而且这几个方法都仅仅是Runtime.getRuntime()的调用,两者没有区别
**.**获取时间方法:System.nanoTime 和 System.currentTimeMillis
System类中提供了一些系统级的操作方法,这些方法实现的功能分别如下:

常见的用法有以下几种:

**1. 表示时间,**通常用来计算程序或者循环使用的时间,比较精确

long currentTimeMillis = System.currentTimeMillis();
	//返回当前时间,类型为long
	System.out.println(currentTimeMillis);//1550482075169
	使用该方法获得的时间不够直观,但是却很方便时间的计算。例如,计算程序运行需要的时间则可以使用如下的代码:
long start = System. currentTimeMillis();
for(int i = 0;i < 100000000;i++){
int a = 0;
}
long end = System. currentTimeMillis();
long time = end – start;

则这里变量time的值就代表该代码中间的for循环执行需要的毫秒数,使用这种方式可以测试不同算法的程序的执行效率高低,也可以用于后期线程控制时的精确延时实现。
2. 复制数组,性能比循环好

	

```java
	使用示例:
int[] a = {1,2,3,4};
int[] b = new int[5];
System.arraycopy(a,1,b,3,2);
该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。

3. 请求系统垃圾回收,至于什么时候回收我们控制不了

System.gc();

4. 获取系统中对应的key的值

String version = System.getProperty("java.version");//1.8.0_101
	String home = System.getProperty("java.home");//D:\jdk1.8.0_101\jre
	String osName = System.getProperty("os.name");//Windows 10
	String osVersion = System.getProperty("os.version");//10.0
	String userName = System.getProperty("user.name");//18716
	String userHome = System.getProperty("user.home");//C:\Users\18716
	String userDir = System.getProperty("user.dir");//D:\yxworkspace\YxYun-YxYunApiTplForYw

5. 获取环境变量

  System.getenv()

6、exit方法

public static void exit(int status)

该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值