java中System静态类及其中的静态变量和方法

介绍

System静态类是属于java.lang包下的,主要用来实现系统的相关操作,通过该方法可以获得很多与系统和项目相关的内部属性值以及一些操作,下面简单介绍一下System下常见的静态方法。

1. System.in、System.out、System.err 静态变量

	public final static InputStream in = null;  // 标准输入流
    public final static PrintStream out = null;  // 标准输出流
    public final static PrintStream err = null; // 标准异常流

上述三个静态变量中,System.out.println()是最常用的,另外在获取键盘输入值时一般使用new Scanner(System.in)来完成,而System.err经常用来表示异常值的输出和打印,而在实际的项目开发中一般有统一的异常输出,因此该方法用的较少。

System.err.println打印示例:

在这里插入图片描述

2. System.currentTimeMillis 静态方法

该静态方法一般用来获取程序运行此处的时间毫秒值(时间戳),输出为一个long类型的值;而该方法的一般用来统计某段代码的执行时间长度,即在一段代码前后分别获取时间值,然后计算差值即可获得执行时长。

long time1 = System.currentTimeMillis();
{
	// 业务代码	
}
long time2 = System.currentTimeMillis();
long time = time2 - time1;
System.out.println("执行时间(ms):" + time);

类似的,还有获取纳秒时间的方式: System.nanoTime()

3. System.exit() 静态方法

用来终止当前的JVM程序运行,通常0表示正常退出,非0表示异常推出;该方法一般用在程序出现较严重异常的情况下才终止JVM,目前在项目开发过程中本人未使用过该方法。

System.exit(0); // 正常退出
System.exit(1); // 异常退出

4. System.getProperty() 静态方法

该方法主要用来获取与系统相关的属性值;具体使用的方式为根据输入的key获取对应的值,例如常见的user.dir用来获取当前程序的运行目录,也是绝对路径;java.home获取jdk安装目录;

使用方式

// 获得所有的属性值并且Propertires存储
Properties properties = System.getProperties();
// 获取所有的键值
Set<String> names= properties.stringPropertyNames();
// 打印所有键值对
names.forEach(name -> {
            System.out.println(name + "->" +System.getProperty(name));
        });

常见的键值解释:

键值解释
java.verslonJava 运行时环境版本
java.vendorJava 运行时环境供应商
java.vendor.urlJava 供应商的 URL
java.homeJava 安装目录
java.vm.specification.versionJava 虚拟机规范版本
java.vm.specification.vendoJava 虚拟机规范供应商
java.vm.specification.nameJava 虚拟机规范名称
jave.vm.versionJava 虚拟机实现版本
java.vm.vendorJava 虚拟机实现供应商
java.vm.nameJava 虚拟机实现名称
jave.class.versionJava 类格式版本号
java.class.pathJava类格式版本号
java.library.path加载库时搜索的路径列表
java.io.tmpdir默认的临时文件路径
java.compiler要使用的 JIT 译器的名称一个或多个扩展目录的路径
java.ext.dirs一个或多个扩展目录的路径
os.name操作系统的名称
os.arch操作系统的架构
os.verslon操作系统的版本
file.separator文件分隔符(在 UNIX 系统中是“/”)
path.separator路径分隔符(在UNIX 系统中是“:” )
line.separator行分隔符(在UNIX 系统中是“/n” )
user.name用户的账户名称
user. home用户的主目录
user.dir用户的当前工作目录

更进一步的可以获取系统变量信息

public static Map<String,String> getenv();
// 返回值
{
	USERDOMAIN_ROAMINGPROFILE=LAPTOP-04UF7BNO,
	...,
	IDEA_INITIAL_DIRECTORY=C:\Users\Lenovo\Desktop
}

5. System.gc 静态方法

故名思意,该方法是用来主动执行jvm的垃圾回收,但是由于JVM本身已经存在了比较好的垃圾回收机制,一般情况下很少需要很少进行手动垃圾回收,因此该方法一般用的较少。

System.gc();

6. System.arraycopy() 静态方法

该方法主要用来实现数组的复制,其需要输入五个参数:src, srcPos, dest, destPos, length
参数解释:

  • src:源数组,即将该数组的值复制到目标数组
  • srcPos:源数组复制的起始位置,从0开始
  • dest:目标数组,即将源数组值复制到该数组
  • destPos:目标数组接收源数组复制的值的起始位置,从0开始
  • length:源数组从srcPos起共复制的值的个数;注意:src.length - srcPos以及 dest.length - destPos都需要大于length才能使用;
char[] char1 = {'1', '2', '3', '4'};
char[] char2 = {'5', '6', '7', '8'};
System.arraycopy(char1, 0, char2, 0, 1);
//输出:1 6 7 8
System.out.println(Arrays.toString(char2));

以上内容整理自网络以及本人拙见,如有不足之处欢迎指正!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值