System类总结与常用方法介绍

本文详细介绍了Java中的System类,包括其不能被实例化的特性、标准输入输出流、系统属性访问以及重点讲解了arraycopy()、currentTimeMillis()、nanoTime()、getProperties()和getProperty()等常用方法的用法和示例。


前言

在java中,输入输出是我们经常使用的操作,这个就是System类,
System.in 和标准输出System.out.println();等等。
那么这个类又有什么功能呢?
本文介绍了System类的一些常用方法与类的概述。


以下是本篇文章正文内容:

一、System 类的定义?

System 类包含一些有用的类字段和方法。它里面都是静态方法 ,它不能被实例化。
在 System 类提供的设施中,有标准输入、标准输出和错误输出流;
对外部定义的属性和环境变量的访问;
加载文件和库的方法;
还有快速复制数组的一部分的实用方法。

二、字段

public final static InputStream in;	//标准输入流

public final static PrintStream out;	//标准输出流

public final static PrintStream err;	//标准错误输出流

代码详解:

public static void main(String[] args) {		 
		
		Scanner sr =new Scanner(System.in);	
		/*	
		 * System.in
		 *	“标准”输入流。此流已打开并准备提供输入数据。
		 * 	通常,此流对应于键盘输入或者由主机环境或用户指定的另一个输入源。
		 */
		
		System.out.println();
		/*
		 * 	System.out
		 * 	“标准”输出流。此流已打开并准备接受输出数据。
		 * 	通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。 
		 */	
		
		
		try {
			//某某异常
		} catch (Exception e) {
			
			System.err.println("异常注释");//“标准”错误输出流。此流已打开并准备接受输出数据。
		}finally {
			sr.close();//关闭异常
		}
		/*
		 * 通常,此流对应于显示器输出或者由主机环境或用户指定的另一个输出目标。
		 * 按照惯例,此输出流用于显示错误消息,
		 * 或者显示那些即使用户输出流(变量 out 的值)
		 * 已经重定向到通常不被连续监视的某一文件或其他目标,
		 * 也应该立刻引起用户注意的其他信息。 
		 * 
		 */
	}

三、常用方法

arraycopy()- 拷贝数组

static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

作用:
从指定源数组中复制一个数组,复制从指定的位置开始,到目标数组的指定位置结束。

参数介绍:

src - 源数组。
srcPos - 源数组中的起始位置。
dest - 目标数组。
destPos - 目标数据中的起始位置。
length - 要复制的数组元素的数量。
代码演示:

public static void main(String[] args) {
		
		int[] a = {1,3,5,7,9};
		int[] b = {5,5,5,5,5}; 
		
		System.arraycopy(a, 0, b, 0, 4);	//拷贝
		
		System.out.print("拷贝后的数组:");
		
		for (int i = 0; i < b.length; i++) {
			System.out.print(b[i]+" ");	// 结果:1 3 5 7 5
		}
	}

currentTimeMillis() - 返回毫秒数

static long currentTimeMillis()

作用:
返回以毫秒为单位的当前时间。

实例:
代码演示:

public static void main(String[] args) {
		
		currentTimeMillis();	
		//结果:
		//当前时间毫秒数:1598242562562
		//当前时间:2020年08月24日12:16:02
	}
	public static void currentTimeMillis() {
			
			long ms = System.currentTimeMillis();//返回以毫秒为单位的当前时间。
			
			System.out.println("当前时间毫秒数:"+ms);	
			
			//转换成当前时间
			Date date = new Date();
		   
			date.setTime(ms);
			//yyyy:年	MM:月	dd:日	HH:小时	mm:分钟	   ss:秒
			SimpleDateFormat str=new SimpleDateFormat("yyyy年MM月dd日HH:mm:ss");	//格式化	
		    
			System.out.println("当前时间:"+str.format(date));
		
	}

nanoTime()- 返回微秒数

public static long nanoTime()

作用:
返回最准确的可用系统计时器的当前值,以毫微秒为单位。

实例:
测试某些代码执行的时间长度;

代码演示:

public static void main(String[] args) {
		nanoTime();
	}
	public static void nanoTime() {
		//例如,测试某些代码执行的时间长度:
		 long startTime = System.nanoTime();
		  
		 long estimatedTime = System.nanoTime() - startTime;
		  
		 System.out.println("代码运行毫秒数:"+estimatedTime);//系统计时器的当前值,以毫微秒为单位。
	}

getProperties() - 系统属性

static Properties getProperties() 

作用:
确定当前的系统属性。

这个系统属性集合包含以下键的值

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

代码演示:

在这里插入代码片

public static void getProperties() {

	Properties prop= System.getProperties();//获取系统的属性信息

	Set keySet = prop.keySet();
	
	Iterator it = keySet.iterator();
	//打印当前的系统属性
	while(it.hasNext()) {
		String key = (String)it.next();
		String value = (String)prop.get(key);
		
		System.out.println(key + ":属性:"+value);
	}
}

运行截图:
在这里插入图片描述

getProperty() - 指定系统属性

static String getProperty(String key) 

作用:
获取指定键指示的系统属性。

代码演示:

public static void main(String[] args) {
		
			// 设置指定键指示的系统属性。
			String name  = System.getProperty("os.name");//操作系统的名称
				
			System.out.println("操作系统的名称:"+name);
	}

程序结果:
在这里插入图片描述


四、总结

以上就是今天要讲的内容,本文介绍了System类的一些常用方法的使用和介绍,java 的API文档上提供了大量的包类方法的使用和介绍,工欲善其事必先利其器,本文档是Java平台,标准版的API规范。jdk API 1.8.zip我已经上传需要的可以下载;
点击这里是文档下载地址

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值