JAVA 中系统相关的类

System 类

        代表的是当前 Java 程序运行的平台(操作系统),该类被关键字 final 修饰,即该类不能够派生子类,同时该类的构造器被关键字 private 修饰,因此不能够创建 System 类型的实例对象。  

        System 类中定义声明的都是 static 关键字修饰的静态成员变量和静态成员方法,可以直接通过类名的方式去访问。

常用方法

(1)long currentTimeMillis()

        返回当前系统时间对应的时间戳,单位是毫秒。

示例:

public class Test {public static void main(String[] args) {System.out.println(System.currentTimeMillis());}
}

 打印结果:

(2)long nanoTime()

        返回当前系统时间对应的时间戳,单位是纳秒。

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

        数组拷贝操作,src 表示源数组对象,srcPos 表示源数组对象的起始位置,dest 表示目标数组对 象,destPos 表示目标数组对象的起始位置,length 表示要拷贝的元素的个数,即从源数组对象 src 的 srcPos 位置开始,拷贝 length 个元素到目标数组 dest 的 destPos 位置。

示例:

import java.util.Arrays;public class Test {public static void main(String[] args) {//源数组int[] src = {123,245,678,36,568,36,5,7,457};//目标数组int[] dest = new int[20];//输出 copy 前的目标数组System.out.println(Arrays.toString(dest));//把源数组中从索引位置 3 开始,copy 5 个元素到目标数组索引为 10 的位置System.arraycopy(src, 3, dest, 10, 5);//输出 copy 后的目标数组System.out.println(Arrays.toString(dest));}
}

打印结果:

 (4)Properties getProperties()

        返回所有的系统属性,返回值是一个 Properties 集合。

 示例:

import java.util.Map;
import java.util.Properties;public class Test {public static void main(String[] args) {Properties properties = System.getProperties();//对 properties 集合进行遍历输出for (Map.Entry<Object, Object> entry : properties.entrySet()) {System.out.println("系统属性:" + entry.getKey() + ",属性值:" +entry.getValue());}}
}

打印结果:

(5)String getProperty(String key)

        返回系统指定属性 key 对应的属性值。 

(6)String getProperty(String key, String def)

        返回系统指定属性 key 对应的属性值,如果找到了系统指定属性 key 对应的属性值则直接返回,如果找不到,即找到的是 null,则返回默认的提示信息 def。

(7)String getenv(String name)

        返回指定的环境变量 name 的值。

示例:

System.out.println(System.getenv("path"));

打印结果:

(8)java.util.Map getenv()

        返回所有的环境变量及其对应的值的键值对构成的 Map 集合。

(9)void exit(int status)

        终止当前正在运行的 Java 虚拟机,该方法内部间接调用了 Runtime 类型实例对象的 exit(status)。

示例:

public class Test {public static void main(String[] args) {for(int i = 0;i < 1000;i++) {if(i == 300) {// status 为 0 的时候,表示正常退出程序,即结束当前正在运行的 Java 虚拟机;// status 为 非0 的整数时候,表示非正常退出程序;System.exit(0); //终止虚拟机的运行}System.out.println(i);}}public static void exit(int status) {Runtime.getRuntime().exit(status);}}

(10)void gc()

        运行垃圾回收器,释放垃圾空间,该方法内部间接调用了 Runtime 类型实例对象的 gc()。

 源码:

public static void gc() {Runtime.getRuntime().gc();
}

Runtime 类

        代表的是当前 Java 程序的运行环境,每一个 Java 程序的运行都会有一个与之对应的唯一的 Runtime 类型的实例对象。

        Runtime 类的构造器被关键字 private 修饰,即我们不能够直接创建 Runtime 类型的实例对象,同时在 Runtime 类中声明定义了一个 private 修饰的 Runtime 类型的静态成员变量 currentRuntime:

private static Runtime currentRuntime = new Runtime();

        该静态成员变量 currentRuntime 会在 Runtime 类第一次被使用的时候初始化,这就是典型的单例模式。

        Runtime 类中提供了一个静态成员方法 Runtime getRuntime() 用来返回 Runtime 类型的实例对象,该方法的源码如下:

public static Runtime getRuntime() {return currentRuntime;
}

        getRuntime() 方法的源码中返回的是 currentRuntime 变量指向的 Runtime 类型的实例对象,即把Runtime 类型的唯一实例返回。

常用方法

(1)void exit(int status)

        终止当前正在运行的 Java 虚拟机,System 类中的 exit(int status)方法的底层就是间接的调用了 Runtime 类型实例对象的 exit(status)。

(2)Process exec(String command) throws IOException

        单独启动一个线程来运行指定的命令。

示例:

import java.io.IOException;
import java.util.Scanner;public class Test {public static void main(String[] args) throws IOException {System.out.println("1、QQ音乐");System.out.println("2、腾讯视频");System.out.print("请选择打开应用:");Scanner scanner = new Scanner(System.in);if(scanner.nextInt() == 1) {Runtime.getRuntime().exec("D:\\Program Files (x86)\\Tencent\\QQMusic\\QQMusic2039.19.59.45\\QQMusic.exe");} else if (scanner.nextInt() == 2){Runtime.getRuntime().exec("D:\\Users\\Lenovo\\LenovoSoftstore\\Install\\tengxunshibin\\QQLive.exe");}else {System.out.println("暂无此选项");}}
}

打印结果:

(3)int availableProcessors()

        可用于 JVM 的处理器的数量。

(4)long maxMemory()

        返回 JVM 能够从操作系统那挖掘使用的最大内存空间。

(5)long totalMemory()

        当前 JVM 使用的总内存,程序实际运行的时候总是从操作系统那慢慢的挖掘内存,即用多少挖掘多少,一般是随着程序运行的过程中使用的内存越来越大,最终达到 maxMemory()。

(6)long freeMemory()

        表示 JVM 从操作系统那挖掘过来的没有使用的内存。

(7)void gc()

        运行垃圾回收去,释放垃圾空间,System 类中的 gc() 方法的底层就是调用的 Runtime 类型实例对象的 gc() 方法。

什么是 gc?java 是如何处理的?

         GC(Garbage Collector):垃圾收集器,它可以用来释放垃圾空间所占用的内存。 Java 中 GC 有两种操作方式:

(1)由 JVM 不定期的执行 GC 操作。

(2)由程序员手动的调用 Runtime 类型实例对象的 gc() 方法或者 System 类中的 gc() 方法进行垃圾空间的释放。

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

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

相关文章

【数据采集工具】Sqoop从入门到面试学习总结

国科大学习生活&#xff08;期末复习资料、课程大作业解析、大厂实习经验心得等&#xff09;: 文章专栏&#xff08;点击跳转&#xff09; 大数据开发学习文档&#xff08;分布式文件系统的实现&#xff0c;大数据生态圈学习文档等&#xff09;: 文章专栏&#xff08;点击跳转&…

【DNF mysql8.0安装】DNF安装MySQL服务器教程

在基于Red Hat的Linux发行版中&#xff0c;如CentOS或Fedora&#xff0c;DNF&#xff08;Dandified Yum&#xff09;是包管理器&#xff0c;用于安装、更新和卸载软件包。以下是使用DNF安装MySQL服务器&#xff08;也称为MySQL Community Server&#xff09;的步骤&#xff1a;…

网易博客旧文----Xtreme ToolkitPro 的CommandBarsDesigner编辑生成的界面如何使用

Xtreme ToolkitPro 的CommandBarsDesigner编辑生成的界面如何使用 2013-03-04 17:22:42| 分类&#xff1a; MFC | 标签&#xff1a; |举报 |字号大中小 订阅 著名的界面开发商Codejock Software开发的MFC界面控件和BCGsoft公司开发的BCGControlBarPro界面有得一拼。 codejock…

SpringBoot整合Freemarker(一)

Freemarker和jsp一样是一个视图的引擎模板&#xff0c;其实所有的模板引擎的工作原理都是类似的&#xff0c;如下图&#xff1a; 接下来就具体讲解一下Freemarker的用法&#xff0c;参考手册&#xff1a;模板 数据模型 输出 - FreeMarker 中文官方参考手册 SpringBoot默认就…

Agentic RAG(基于智能体的检索增强生成)是检索增强生成(Retrieval-Augmented Generation,RAG)技术的一种高级形式

Agentic RAG&#xff08;基于智能体的检索增强生成&#xff09;是检索增强生成&#xff08;Retrieval-Augmented Generation&#xff0c;RAG&#xff09;技术的一种高级形式&#xff0c;它通过引入人工智能代理&#xff08;Agent&#xff09;的概念&#xff0c;为语言模型赋予了…

本地项目上传Github+Gitee上传特定分支到Linux服务器(自用)

一、本地项目上传Github 上传整个项目到一个全新的repositories 或者 上传一个文件到一个特定的分支 步骤 1: 在本地创建 Git 仓库 在项目的根目录下运行以下命令&#xff0c;初始化本地 Git 仓库&#xff1a; git init步骤 2: 添加文件到 Git 仓库 使用以下命令将所有文件…

vite server正则表达式

vite server支持正则表达式&#xff0c;这样可以在测试时将一些请求模拟转发到本地后端服务的端口。且不会出现跨域的问题。 例如下面的配置&#xff0c;解决了3个问题&#xff1a; 1&#xff09;API请求URI地址转发到本地后端服务 2&#xff09;文件资源路径转发到本地后端服…

微前端架构及其解决方案对比

微前端架构及其解决方案对比 微前端架构是一种通过将大型前端应用拆分为多个独立的、可单独部署的小型应用的设计模式。随着这种模式的流行&#xff0c;诞生了多种微前端实现方案&#xff0c;每个方案都有其独特的特点和适用场景。以下是常见的微前端解决方案及其优缺点对比&a…

Socket 网络编程与 C# 中的应用实例

一、引言 在当今数字化时代&#xff0c;网络编程成为构建各种分布式应用和实现设备间通信的关键技术。Socket 网络编程作为一种底层且强大的网络通信方式&#xff0c;为开发者提供了直接操控网络连接和数据传输的手段。从即时通讯应用到网络游戏服务器&#xff0c;从文件传输工…

智能EDA小白从0开始 —— DAY24 Pulsic

Pulsic公司简介及其革命性EDA工具Animate Preview深度解析 一、公司概览与背景 Pulsic&#xff0c;一家深耕于电子设计自动化&#xff08;EDA&#xff09;领域的精密设计自动化公司&#xff0c;自2001年1月在英国布里斯托尔成立以来&#xff0c;便致力于解决先进节点设计所面…

一些简单的汇编指令

硬件架构和汇编指令 一、硬件架构 ARM芯片属于精简指令集计算机(RISC:Reduced Instruction Set Computing)&#xff0c; 它所用的指令比较简单&#xff0c;有如下特点: ① 对内存只有读、写指令 ② 对于数据的运算是在CPU内部实现 ③ 使用RISC指令的CPU复杂度小一点&#xff0…

中国科学院大学与美团发布首个交互式驾驶世界模型数据集DrivingDojo:推进交互式与知识丰富的驾驶世界模型

中国科学院大学与美团发布首个交互式驾驶世界模型数据集DrivingDojo&#xff1a;推进交互式与知识丰富的驾驶世界模型 Abstract 驾驶世界模型因其对复杂物理动态的建模能力而受到越来越多的关注。然而&#xff0c;由于现有驾驶数据集中的视频多样性有限&#xff0c;其卓越的建…

简述RESTFul风格的API接口

目录 传统的风格API REST风格 谓词规范 URL命令规范 避免多级URL 幂等 CURD的接口设计 REST响应 响应成功返回的状态码 重定向 错误代码 客户端 服务器 RESTful的返回格式 返回格式 从上一篇文章我们已经初步知道了怎么在VS中创建一个webapi项目。这篇文章来探讨一…

外包干了2个月,技术明显退步

回望过去&#xff0c;我是一名普通的本科生&#xff0c;于2019年通过校招有幸加入了南京某知名软件公司。那时的我&#xff0c;满怀着对未来的憧憬和热情&#xff0c;投入到了功能测试的岗位中。日复一日&#xff0c;年复一年&#xff0c;转眼间&#xff0c;我已经在这个岗位上…

Git协作场景

1、日常需求开发 在日常开发中&#xff0c;研发人员通常需要从 develop 分支创建 feature 分支进行功能开发&#xff0c;并在开发完成后将其合并回 develop。常规的操作流程如下&#xff1a; 创建 feature 分支&#xff1a; 研发人员从 develop 分支创建一个新的 feature 分支…

优化SpringBoot接口:异步处理提升系统吞吐量策略

作者介绍&#xff1a;✌️大厂全栈码农|毕设实战开发&#xff0c;专注于大学生项目实战开发、讲解和毕业答疑辅导。 推荐订阅精彩专栏 &#x1f447;&#x1f3fb; 避免错过下次更新 Springboot项目精选实战案例 更多项目&#xff1a;CSDN主页YAML墨韵 学如逆水行舟&#xff0c…

牵手App红娘来助力,打造线上交友“好管家”

线上交友以其便捷性、广泛性和互动性等特点&#xff0c;正逐渐成为单身男女寻找恋爱伴侣的重要渠道。相较于传统相亲模式&#xff0c;线上交友不仅打破了时间和空间的限制&#xff0c;更以其丰富的互动功能和个性化的匹配算法&#xff0c;为用户提供了前所未有的交友体验。在这…

Python数据分析-航空公司客户满意度分析

一、研究背景 随着航空业的快速发展&#xff0c;航空公司之间的竞争愈发激烈。航空公司不再仅仅依靠价格、航班时间等基本要素来吸引客户&#xff0c;而更多地关注如何提升客户体验与满意度。乘客的飞行体验和满意度不仅影响了他们的忠诚度&#xff0c;也对航空公司在市场中的…

IJKPlayer源码分析-整体结构

根据我们的之前的老方法&#xff0c;采用结构化的方式来对IJKPlayer源码做个分析&#xff0c;首先&#xff0c;我们从整体的角度先把IJKPlayer的整体架构和流程讲下&#xff0c;让大家先有个整体的印象。 本地JNI入口 在Android环境下&#xff0c;JVM层载入一个本地so库流程大致…

在数据库产品中如何设计基于列和行的访问控制功能

在数据库产品中设计基于列和行的访问控制功能&#xff08;Column-Level and Row-Level Access Control, CLAC 和 RLAC&#xff09;是一种细粒度的权限管理方式&#xff0c;能够进一步提升数据安全性和灵活性。通过这种控制&#xff0c;数据库可以限制特定用户或角色只能访问某些…