【从零开始学习JAVA | 第二十一篇】常见API介绍 System

目录

前言:

System:

System类中静态方法:

总结:


前言:

                system 是一个很底层的 API,是一个工具类,提供了一些与系统相关的方法。他在我们写项目的时候提供了一些非常实用的方法,本篇将会介绍一些实用的system API 的方法调用。

System:

System类是Java语言提供的一个标准类,它包含了一系列静态方法和成员变量,可以用于控制Java程序的输入、输出、错误输出、时间获取、系统属性获取和程序退出等多个方面,是Java程序中极为常用的类之一。

System类中静态方法:

1.out

System.out是Java语言标准输出流的常量,它对应标准输出设备,常用来向控制台输出数据或日志信息。System.out是PrintStream类型的对象,提供了多个输出数据的方法,例如print和println方法。

public class OutDemo {
    public static void main(String[] args) {
        System.out.println("Hello World!");
    }
}

输出:

Hello World!

2.err

System.err是Java语言标准错误输出流的常量,它对应标准错误输出设备,常用来输出程序运行中出现的错误信息。

public class ErrDemo {
    public static void main(String[] args) {
        System.err.println("Error occurred!");
    }
}

输出:

Error occurred!

3.urrentTimeMillis

System.currentTimeMillis是一个静态方法,它返回自1970年1月1日00:00:00 GMT以来的毫秒数,用于计时或获取当前时间。

public class CurrentTimeDemo {
    public static void main(String[] args) {
        long startTime = System.currentTimeMillis();

        // do some operation

        long endTime = System.currentTimeMillis();

        System.out.println("Time consumed: " + (endTime - startTime) + "ms");
    }
}

4.getProperty

System.getProperty是一个静态方法,它可以用来获取系统属性。常用的一些系统属性包括操作系统名称、Java版本号、文件分隔符、系统路径分隔符等。

public class PropertyDemo {
    public static void main(String[] args) {
        System.out.println(System.getProperty("os.name"));
        System.out.println(System.getProperty("java.version"));
        System.out.println(System.getProperty("file.separator"));
        System.out.println(System.getProperty("path.separator"));
    }
}

输出:

Windows 10
1.8.0_191
\
;

5.exit

System.exit是一个静态方法,它可以用来强制退出Java虚拟机。它接受一个整数参数,该参数为程序的退出状态码,通常0表示正常退出,非0表示异常退出。

public class ExitDemo {
    public static void main(String[] args) {
        System.exit(0);
    }
}

6. arraycopy

System.arraycopy是一个静态方法,用于将一个数组的内容复制到另一个数组中。它接受五个参数,分别为源数组、源数组的起始位置、目标数组、目标数组的起始位置和要复制的元素个数。

public class ArrayCopyDemo {
    public static void main(String[] args) {
        int[] srcArr = {1, 2, 3, 4, 5};
        int[] destArr = new int[5];

        System.arraycopy(srcArr, 0, destArr, 0, 5);

        System.out.println(Arrays.toString(destArr));
    }
}

输出:

[1, 2, 3, 4, 5]

7. gc

System.gc是一个静态方法,可以用于请求Java虚拟机执行垃圾回收操作。调用该方法并不保证垃圾回收一定会执行,只是向虚拟机发出了一种提示。

public class GCDemo {
    public static void main(String[] args) {
        Object obj = new Object();

        obj = null;
        System.gc();
    }
}

8. setIn,setOut,setErr

System类还提供了三个静态方法setIn、setOut和setErr,可以用于修改标准输入、输出和错误输出设备。这些方法可以被用来重定向程序输入输出流到文件或网络等特殊设备。

public class RedirectDemo {
    public static void main(String[] args) throws FileNotFoundException {
        System.setOut(new PrintStream(new FileOutputStream("output.txt")));
        System.out.println("Hello World!");
    }
}

总结:

        以上是System类中常用的几个静态方法和用法示例,系统类还提供了其他一些API,例如identityHashCode方法可以用于获取对象的哈希码,getenv方法可以用于获取环境变量等等。熟练掌握这些API的用法可以让Java程序编写变得更加高效和便捷。

如果我的内容对你有帮助,请点赞,评论,收藏。创作不易,大家的支持就是我坚持下去的动力!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32364.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

量子机器学习Variational Quantum Classifier (VQC)简介

变分量子分类器(Variational Quantum Classifier,简称VQC)是一种利用量子计算技术进行分类任务的机器学习算法。它属于量子机器学习算法家族,旨在利用量子计算机的计算能力,潜在地提升经典机器学习方法的性能。 VQC的…

优化--分类树,我从2s优化到0.1s

1.前言 分类树查询功能,在各个业务系统中可以说随处可见,特别是在电商系统中。 但就是这样一个简单的分类树查询功能,我们却优化了5次。 到底是怎么回事呢? 2.背景 我们的网站使用了SpringBoot推荐的模板引擎:Thym…

【Python实战】Python采集情感音频

成年人的世界真不容易啊 总是悲伤大于欢喜 爱情因为懵懂而快乐 却走进了复杂和困惑的婚姻 前言 我最近喜欢去听情感类的节目,比如说,婚姻类,我可能老了吧。我就想着怎么把音乐下载下来了,保存到手机上,方便我们业余时…

Jnpf低代码开发平台

一、写在前面 低代码开发平台,一个号称能在几分钟的时间里开发出一套公司内部都可使用的应用系统开发工具。 很多人或许都隐隐听说过低代码,因为低代码不仅远名国外,国内的腾讯、阿里、华为、网易、百度等科技巨头也纷纷入局,足以…

URL到页面: 探索网页加载的神秘过程

当我们从浏览器的地址栏输入 URL, 按下回车, 再到最后出现需要的网页界面, 这中间究竟发生了什么, 接下来就一步步进行解析. 主要是如下过程: 输入网址DNS 解析客户端发送 HTTP 请求建立 TCP 连接服务器处理请求, 计算响应, 返回响应浏览器渲染页面关闭连接 本篇中只是概述整…

docker 操作手册

名词解释 images:封装了应用程序的镜像 tag:镜像的标记,一个镜像可以创建多个标记 container:装载镜像并运行 常用命令 查看容器 docker ps -a //查看全部镜像 启动容器 docker start mysql //启动mysql容器 停止容器 doc…

Maven(三):Maven的组成详解

文章目录 坐标和依赖坐标详解依赖配置依赖范围传递性依赖依赖调节可选依赖优化排除依赖归类依赖优化依赖 仓库本地仓库远程仓库仓库镜像常用搜索地址 生命周期与插件三套生命周期clean生命周期default生命周期site生命周期 插件 聚合与继承更加灵活的构建常见问题使用jdk来运行…

TuyaOS 开发固件OTA上传固件指南

文章目录 一、产品创建二、TuyaOS设备开发三、固件上传 通过TuyaOS接入涂鸦云的产品全部默认支持固件OTA功能,TuyaOS设备实现固件OTA需要: 自定义产品创建TuyaOS嵌入式开发固件上传固件OTA配置与发布 等步骤实现产品OTA。本文重点讲述TuyaOS开发模式下&…

基于数据驱动 U-Net 模型的大气污染物扩散快速预测,提升计算速度近6000倍

项目背景 当前,常见的大气污染预测模型大多是基于物理机理构建的,比如空气质量预测模型 Calpuff、AERMOD、CMAQ 等。然而,这些模型运算较为复杂,对于输入数据的要求非常高,运算耗时也比较长,适合用于常规固…

如何在 ZBrush 和 UE5 中创建精灵吟游诗人(P1)

小伙伴们大家好,今天 云渲染小编给大家带来的是CG艺术家Hugo Sena关于“精灵吟游诗人”项目背后的工作流程,讨论了角色身体、服装和竖琴的工作流程,并解释了如何在虚幻引擎 5 中设置灯光。篇幅较长,分为上下两篇,大家接…

为摸鱼助力:一份Vue3的生成式ElementPlus表单组件

目录 一、实现背景 二、简介 三、组织架构设计 四、实现方式 五、代码示例 六、示例代码效果预览 七、项目预览地址 & 项目源码地址 目前项目还有诸多待完善的地方,大家有好的想法、建议、意见等欢迎再次评论,或于github提交Issues 一、实现…

【吃透网络安全】2023软考网络管理员考点网络安全(三)计算机系统安全评估

涉及知识点 计算机系统安全评估准则,计算机系统安全评估历史,软考网络管理员常考知识点,软考网络管理员网络安全,网络管理员考点汇总。 后面还有更多续篇希望大家能给个赞哈,这边提供个快捷入口! 第一节…

解决vue依赖报错SockJSServer.js出现Cannot read property ‘headers‘ of null

前言 在做新的需求需要变更vue的项目代码时突然出现报错 TypeError: Cannot read property ‘headers’ of null at Server.socket.on (***/node_modules/webpack-dev-server/lib/servers/SockJSServer.js:68:32) 不清楚为什么突然出现了这个问题,之前在这个vue项目…

【安全】使用docker安装Nessus

目录 一、准备docker环境服务器(略) 二、安装 2.1 搜索镜像 2.2 拉取镜像 2.3 启动镜像 三、离线更新插件 3.1 获取challenge 3.2 官方注册获取激活码 3.3 使用challenge码和激活码获取插件下载地址 3.4 下载的插件以及许可协议复制到容器内 四…

数据结构第六章 图 6.4 图的应用 错题整理

4.A A. 不是简单路径的话,有环,去环路径会更短 B. 适合的 弗洛伊德算法才不适合 C. 本来就是 D 2X2矩阵拓展到3X3矩阵 再扩大 若是子集 即加入新顶点后,最短路径都没有变,错 5.B 本题用弗洛伊德更合适 但这道题只需全部代入求最…

PowerShell系列(七)PowerShell当中的Provider介绍

往期回顾PowerShell系列(一):PowerShell介绍和cmd命令行的区别 PowerShell系列(二):PowerShell和Python之间的差异介绍 PowerShell系列(三):PowerShell发展历程梳理 P…

@DateTimeFormat与@JsonFormat不完全解析

目录 前言测试代码DateTimeFormat不加任何注解的情况普通请求JSON请求 JsonFormat普通请求JSON请求 其他方式(InitBinder)结论源码地址 前言 一直以来对DateTimeFormat与JsonFormat 比较模糊,容易搞忘,今天就做个笔记&#xff0c…

UE4自定义资产类型编辑器实现

在虚幻引擎中,资产是具有持久属性的对象,可以在编辑器中进行操作。 Unreal 附带多种资源类型,从 UStaticMesh 到 UMetasoundSources 等等。 自定义资源类型是实现专门对象的好方法,这些对象需要专门构建的编辑器来进行高效操作。 …

SQL语言的四大组成部分——DCL(数据控制语言)

1️⃣前言 SQL语言中的DCL(Data Control Language)是一组用于控制数据库用户访问权限的语言,主要包括GRANT、REVOKE、DENY等关键字。 文章目录 1️⃣前言2️⃣DCL语言3️⃣GRANT关键字4️⃣REVOKE关键字5️⃣DENY关键字6️⃣总结附&#xff1…

【kubernetes】部署网络组件Calico与CoreDNS

前言:二进制部署kubernetes集群在企业应用中扮演着非常重要的角色。无论是集群升级,还是证书设置有效期都非常方便,也是从事云原生相关工作从入门到精通不得不迈过的坎。通过本系列文章,你将从虚拟机配置开始,到使用二进制方式从零到一搭建起安全稳定的高可用kubernetes集…