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

news2024/11/17 6:53:43

目录

前言:

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程序编写变得更加高效和便捷。

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

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

基于Filebeat+Kafka+ELK实现Nginx日志收集并采用Elastalert2实现钉钉告警

目录 基于FilebeatKafkaELK实现Nginx日志收集1.规划好项目架构图2.部署前端web集群3.部署ES集群集群介绍环境准备集群搭建分片和副本 4.部署kafka集群环境准备静态IP配置重启网络服务域名解析设置安装时间同步服务关闭防火墙和selinux kafka集群依赖于zookeeperkafaka和zookeep…

8 系统定时器(Systick)

目录 系统定时器(Systick) SysTick定时器特性介绍 SysTick定时器的功能 SysTick定时器寄存器介绍 Systick定时器的使用 系统定时器(Systick) SysTick定时器特性介绍 计数宽度: 24bit来存储数据,2^24…

HOT21-搜索二维矩阵II

leetcode原题链接: 搜索二维矩阵II 题目描述 编写一个高效的算法来搜索 m x n 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性: 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1: 输入:matrix [[…

【CSS3系列】第八章 · 伸缩盒模型

写在前面 Hello大家好, 我是【麟-小白】,一位软件工程专业的学生,喜好计算机知识。希望大家能够一起学习进步呀!本人是一名在读大学生,专业水平有限,如发现错误或不足之处,请多多指正&#xff0…

基于matlab使用深度学习的语义分割算法实现(附源码)

一、前言 此示例演示如何使用语义分割网络对图像进行分割。 语义分割网络对图像中的每个像素进行分类,从而生成按类分割的图像。语义分割的应用包括自动驾驶的道路分割和医疗诊断的癌细胞分割。 此示例首先向您展示如何使用预训练的 Deeplab v3 [1] 网络分割图像&am…

git权限异常:fatal: Authentication failed for

本地电脑用户密码修改了,git 提交,拉取出现异常, 就会报这个错误fatal: Authentication failed for http://xxx/xxx/xxx 解决方法: git config --system --unset credential.helper 免输入用户密码方法: git config --global…

【超简单】Ubuntu 安装 bcompare 对比工具

下载 bcompare 安装包:《bcompare-4.4.6.27483_amd64.deb》 https://www.scootersoftware.com/download.php?zzdl4 安装 becompare 安装: sudo dpkg -i bcompare-4.4.6.27483_amd64.deb破解 cd /usr/lib/beyondcompare/ sudo sed -i "s/kee…

革新写作方式:ChatGPT最新版带来高质量聚合文章的批量生成

随着人工智能技术的不断发展,自然语言处理模型也在不断进步。ChatGPT最新版作为一种强大的语言模型,可以生成高质量的聚合文章,为写作方式带来了革新。本文将详细阐述ChatGPT最新版带来的革新之处,包括其应用领域、生成文章的流程…

剑指 Offer 12: 矩阵中的路径

这道题看着简直是完全没思路,看了下发现是使用回溯的方法。 下面这里要注意,newi是旧的i加上新的偏移值!newj同理,并不是加自己,别昏头! s是String类型的变量,要写成size() 下面是正确的代码&a…

计算机组成原理笔记——指令系统、中央处理器、总线、I/O系统(王道考研)(持续更新)

文章目录 前言指令系统指令系统概述指令格式扩展操作码 指令寻址方式指令寻址数据寻址基本的寻址思路偏移寻址隐含寻址 程序的机器级代码表示汇编基础AT&T格式和Intel格式C语言控制结构的汇编表示函数调用栈帧切换栈帧构造 CISC与RISC 中央处理器CPU的功能和基本结构运算器…

企业级微服务架构实战项目--xx优选-详情页面的异步调用completablefuture

一 常见的调用方式 1.1 并发 并发:同一时刻多个线程在访问同一个资源,多个线程对一个点 ​ 例子:春运抢票、微信抢红包、电商秒杀... 1.2 同步串行 代表多任务按先后顺序执行,并且都是同一个线程来执行。 1.3 异步串行 代表…

【Java面试题】Java基础语法

文章目录 JDK、JRE和JVM的关系栈和堆分别存的什么数据异步和同步线程和进程区别java的数据类型有哪些equals和HashCode重写的问题?深拷贝和浅拷贝的区别和equals的区别常见的运行时异常有哪些? JDK、JRE和JVM的关系 JDK、JRE和JVM的关系: JDK(Java De…

数据库监控与调优【一】—— 数据库调优的维度

数据库调优的维度 左边是千金良方的,右边是个人优化的 业务需求 不合理的需求,可能会造成很多问题勇敢地对不合理的需求说不拨乱反正,把不合理的需求变成合理的需求 例子 财务SaaS系统,财务领域有种叫做代账的概念&#xff0c…

uniapp+vue3+vite+ts+uviewPlus搭建项目

创建项目架构 首先使用官方提供的脚手架创建一个项目,这里我创建的 vue3 vite ts 的项目: npx degit dcloudio/uni-preset-vue#vite-ts project-name(如命令行创建失败,请直接访问 giteehttps://gitee.com/dcloud/uni-preset-vu…

2023-06-20 x-ui-服务器配置记录

基础软件: yum update -y yum install -y curl yum install -y socat 工作软件: bash <(curl -Ls https://raw.githubusercontent.com/sprov065/x-ui/master/install.sh) 设置: 参考: 使用云服务器搭建代理-腾讯云开发者社区-腾讯云

9 HAL库驱动框架简述

目录 HAL库驱动框架简述 HAL库外设设计思想 HAL库和Cube MX相结合 一、对外设的封装——句柄结构体 二、外设初始化 初始化结构体 初始化的逻辑 三、外设使用逻辑 通用接口函数 初始化函数 I/O操作函数 控制函数 状态参数 扩展接口函数 总结 补充&#xff1a;H…

算法拾遗三十四线段树

算法拾遗三十四线段树 线段树说明物理结构使用线段树落方块的问题 线段树说明 给定固定长度的数组&#xff0c;然后要在数组给定的范围内完成加法【如数组1&#xff0c;200下标元素加6】&#xff0c;更新【7&#xff0c;375范围数组元素更新为4】&#xff0c;查询操作【查询3到…

【云原生丶Docker】Docker镜像加速器:给冰山提提速!

Docker镜像加速器是一种用于加速Docker镜像下载和构建的工具。它可以提高Docker镜像的下载速度&#xff0c;从而加快应用程序的开发和部署速度。 Docker镜像加速器通常使用CDN(内容分发网络)技术来实现加速。CDN是一种分布式网络架构&#xff0c;可以将内容缓存在全球各地的服务…

命令行--git--多次commit如何合并成一个commit

参考:https://blog.csdn.net/qq_50652600/article/details/120800309 在我们平时开发中&#xff0c;我们提交代码免不了要和git打交道&#xff0c;那么我们肯定是先从预发分支上&#xff08;公司一般都用pre命名&#xff0c;这里为了方便演示用master&#xff09;上拉去最新的代…

测试工程师首用chatGPT,编写python读取xmind测试用例chatgtp+python+xmind

背景 有用xmind写测试用例的吧&#xff0c;统计一个xmind的条&#xff0c;需要花大量的时间&#xff0c;还有要统计有多少条冒烟的&#xff0c;多少条不通过的&#xff0c;还有通过的条数。 需求 快速使用python&#xff0c;写一个简单的脚本&#xff0c;统计所有xmind节点&…