System类
前言
在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.version | Java 运行时环境版本 |
| java.vendor | Java 运行时环境供应商 |
| java.vendor.url | Java 供应商的 UR |
| java.home | Java 安装目录 |
| java.vm.specification.version | Java 虚拟机规范版本 |
| java.vm.specification.vendor | Java 虚拟机规范供应商 |
| java.vm.specification.name | Java 虚拟机规范名称 |
| java.vm.version | Java 虚拟机实现版本 |
| java.vm.vendor | Java 虚拟机实现供应商 |
| java.vm.name | Java 虚拟机实现名称 |
| java.specification.version | Java 运行时环境规范版本 |
| java.specification.vendor | Java 运行时环境规范供应商 |
| java.specification.name | Java 运行时环境规范名称 |
| java.class.version | Java 类格式版本号 |
| java.class.path | Java 类路径 |
| 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我已经上传需要的可以下载;
点击这里是文档下载地址
本文详细介绍了Java中的System类,包括其不能被实例化的特性、标准输入输出流、系统属性访问以及重点讲解了arraycopy()、currentTimeMillis()、nanoTime()、getProperties()和getProperty()等常用方法的用法和示例。
1万+

被折叠的 条评论
为什么被折叠?



