System

1概念

System类代表系统,系统的很多属性和控制方法都放置在该类的内部,该类位于java.lang包

由于该类的构造方法是private的,所以无法创建类的对象,也就是无法实例化该类,其内部的成员方法和成员变量都是static的,所以可以很方便的调用他。

System中包含了in,out,err三个成员变量,分别代表标准流(键盘输入),标准输出流(显示器)和标准错误输出流(显示器)

public final static InputStream in;
//标准输入流
public final static PrintStream out;
//标准输出流
public final static PrintStream err;
//标准错误流

有此可见,System中的out和in都不是内部类,是成员变量,out是PrintStream的final static来修饰的变量,所以,out是可以调用printStream中的方法的,例如:System.out.println()中的println就是printStream中的一种输出方法。

2.Sytem中常用的方法

2.1 System.currentTimeMillis();

返回毫秒数,这个就比较简单了,和Date类中的getTime方法一样。

获取系统当前毫秒值(public static long currentTimeMillis())

package com.company;

import java.util.*;

public class Main{
    public static void main(String[] args) {
        long start = System.currentTimeMillis();
        for(int i = 1;i < 10000000;i ++){}
        long end = System.currentTimeMillis();
        System.out.println(end-start);

    }
}

2.2 结束正在运行的Java程序(public staitc void exit(int status))

参数传入一个数字即可。通常传入0记为正常状态,其它为异常状态。

public class SystemDemo {
    public static void main(String[] args) {
        int counts = 0;
        while(true) {
            System.out.println("yinzhengjie");
            if(counts==5) {
                System.exit(0);
            }
            counts++;
        }
    }
}

2.3 垃圾回收器(public static void gc())

用来运行JVM中的垃圾回收器,完成内存中垃圾的清除。

class Student{
    //清除垃圾时,会默认调用被清空对象的finalize方法。
    public void finalize() {
        System.out.println("垃圾已经被收取啦!");
    }
}


public class SystemDemo {
    public static void main(String[] args) {
        new Student();
        new Student();
        new Student();
        new Student();
        new Student();
        System.gc();

    }
}


/*
以上代码执行结果如下:(输出结果不一定是三行,有可能是0行或者5行哟!每次运行的结果几乎是不一致的)
垃圾已经被收取啦!
垃圾已经被收取啦!
垃圾已经被收取啦!

2.4 确定当前的系统属性(public static getPropertiesgetProperties())

public class SystemDemo {
    public static void main(String[] args) {
        System.out.println(System.getProperties());
    }
}


常用的有:

os.arch操作系统的架构
os.version操作系统的版本
file.separator文件分隔符(在 UNIX 系统中是“/”)
path.separator路径分隔符(在 UNIX 系统中是“:”)
line.separator行分隔符(在 UNIX 系统中是“/n”)
user.name用户的账户名称
user.home用户的主目录
user.dir用户的当前工作目录

2.5 System.arraycopy(a,b,c,d,e);

其中,a是被复制的数组,b是复制的起始位置,c是复制到的数组,d是复制到这个数组的起始位置,e是复制到这个数组的结束位置。

public class SystemDemo {
    public static void main(String[] args) {
        int[] src = {1,22,333,4444,5555,666666,7777777};
        int[] dest = {10,20,30};
        System.arraycopy(src, 2, dest, 0, 2);

        for(int i=0;i<dest.length;i++) {
            System.out.println(dest[i]);
        }
    }
}


/*
以上代码执行结果如下:
333
4444
30
*/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值