Java中System类和RunTime类的Api

目录

System 类

1)out

2)err

3)in

4)currentTimeMillis()

5)nanoTime()

6)arraycopy(Object 要从里面复制东西的数组, int 要从里面复制东西数组的索引起始位置, Object 获得复制元素的数组, int 获得复制元素数组的起始索引, int 要复制东西的个数)

7)gc()

8)exit(int status)

9)getProperties()

10.案例:统计程序运行时间

1.代码

2.效果

11.案例:获得系统属性信息

1.代码

2.效果

​编辑

Runtime 类

1)getRuntime()

2)exec(String command)

3)exec(String[] cmdarray)

4)exec(String command, String[] envp)

5)exec(String command, String[] envp, File dir)

6)availableProcessors()

7)freeMemory()

8)totalMemory()

9)maxMemory()

10)addShutdownHook(Thread hook)

11)removeShutdownHook(Thread hook)

12.案例:获取JVM信息

1.代码

2.效果 

13.案例:打开记事本

1.代码

2.效果


System 类

System 类主要用于获取系统属性、标准输入输出流以及执行垃圾回收等操作。它包含了许多静态方法和字段。

  1. 1)out

    • 标准输出流,通常连接到控制台。
    System.out.println("Hello, World!");
  2. 2)err

    • 标准错误流,通常用于打印错误信息。
    System.err.println("This is an error message.");
  3. 3)in

    • 标准输入流,通常从控制台读取数据。
    Scanner scanner = new Scanner(System.in);
    String input = scanner.nextLine();
  4. 4)currentTimeMillis()

    • 返回当前时间的毫秒表示形式。
    long currentTime = System.currentTimeMillis();
  5. 5)nanoTime()

    • 返回最精确的可用系统计时器的当前值,以纳秒为单位。
    long nanoTime = System.nanoTime();
  6. 6)arraycopy(Object 要从里面复制东西的数组, int 要从里面复制东西数组的索引起始位置, Object 获得复制元素的数组, int 获得复制元素数组的起始索引, int 要复制东西的个数)

    • 从一个数组复制指定范围的元素到另一个数组。
    int[] srcArray = {1, 2, 3, 4, 5};
    int[] destArray = new int[5];
    System.arraycopy(srcArray, 0, destArray, 0, 5);
  7. 7)gc()

    • 建议 JVM 进行垃圾回收。
    System.gc();
  8. 8)exit(int status)

    • 终止当前正在运行的 Java 虚拟机。
    System.exit(0); // 正常退出
  9. 9)getProperties()

    • 获取当前系统的所有属性。
    Properties properties = System.getProperties();
    for (String key : properties.stringPropertyNames()) {System.out.println(key + ": " + properties.getProperty(key));
    }

10.案例:统计程序运行时间

1.代码

package org.xiji.system;public class SystemS {public static void main(String[] args){//起始时间long startTime = System.currentTimeMillis();System.out.println("开始时间:"+startTime);int sum = 0 ;for (int i = 0; i < 1000000000; i++) {sum += i;}//结束时间long endTime = System.currentTimeMillis();System.out.println("结束时间:"+endTime);System.out.println("运行时间:"+(endTime-startTime)+"ms");}
}

2.效果

11.案例:获得系统属性信息

1.代码

package org.xiji.system;import java.util.Enumeration;
import java.util.Properties;public class MyProperties {public static void main(String[] args){Properties properties = System.getProperties();System.out.println("获得key集合");Enumeration<Object> keys = properties.keys();System.out.println("系统属性Key:");while (keys.hasMoreElements()){String key = (String) keys.nextElement();String value = properties.getProperty(key);System.out.println(key+" = "+value);}}
}

2.效果

可以看到获取了很多系统的信息

Runtime 类

Runtime允许应用程序与其运行环境进行交互。每个 Java 应用程序都有一个 Runtime 实例,可以通过 Runtime.getRuntime() 方法获取。

  1. 1)getRuntime()

    • 返回与当前 Java 应用程序相关的 Runtime 对象。
    Runtime runtime = Runtime.getRuntime();
  2. 2)exec(String command)

    • 执行指定的字符串命令。
    try {Process process = runtime.exec("notepad.exe");
    } catch (IOException e) {e.printStackTrace();
    }
  3. 3)exec(String[] cmdarray)

    • 使用给定的参数数组执行命令。
    try {Process process = runtime.exec(new String[]{"cmd", "/c", "dir"});
    } catch (IOException e) {e.printStackTrace();
    }
  4. 4)exec(String command, String[] envp)

    • 在指定的环境变量下执行命令。
    try {Process process = runtime.exec("notepad.exe", new String[]{"PATH=C:\\Windows\\System32"});
    } catch (IOException e) {e.printStackTrace();
    }
  5. 5)exec(String command, String[] envp, File dir)

    • 在指定的工作目录和环境变量下执行命令。
    try {Process process = runtime.exec("notepad.exe", null, new File("C:\\"));
    } catch (IOException e) {e.printStackTrace();
    }
  6. 6)availableProcessors()

    • 返回可用处理器的数量。
    int processors = runtime.availableProcessors();
    System.out.println("Number of available processors: " + processors);
  7. 7)freeMemory()

    • 返回 JVM 当前可用的内存数量。
    long freeMemory = runtime.freeMemory();
    System.out.println("Free Memory: " + freeMemory);
  8. 8)totalMemory()

    • 返回 JVM 总共可以使用的内存数量。
    long totalMemory = runtime.totalMemory();
    System.out.println("Total Memory: " + totalMemory);
  9. 9)maxMemory()

    • 返回 JVM 可以使用的最大内存量。
    long maxMemory = runtime.maxMemory();
    System.out.println("Max Memory: " + maxMemory);
  10. 10)addShutdownHook(Thread hook)

    • 注册一个新的虚拟机关闭钩子。
    runtime.addShutdownHook(new Thread(() -> {System.out.println("Shutting down...");
    }));
  11. 11)removeShutdownHook(Thread hook)

    • 移除之前注册的虚拟机关闭钩子。
    Thread shutdownHook = new Thread(() -> {System.out.println("Shutting down...");
    });
    runtime.addShutdownHook(shutdownHook);
    runtime.removeShutdownHook(shutdownHook);

12.案例:获取JVM信息

1.代码

package org.xiji.system;public class GetJVMInfo {public static void main(String[] args){Runtime runtime = Runtime.getRuntime();//处理器个数System.out.println("处理器个数:"+runtime.availableProcessors());//JVM总内存System.out.println("JVM总内存:"+runtime.totalMemory()/1024/1024+"MB");//JVM空闲内存System.out.println("JVM空闲内存:"+runtime.freeMemory()/1024/1024+"MB");//JVM最大内存System.out.println("JVM最大内存:"+runtime.maxMemory()/1024/1024+"MB");}
}

2.效果 

13.案例:打开记事本

1.代码

package org.xiji.system;public class OpenNotePad {public static void main(String[] args){Runtime r = Runtime.getRuntime();try{r.exec("notepad");System.out.println("记事本已经打开");}catch (Exception e){e.printStackTrace();}}
}

2.效果

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

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

相关文章

运维工具之ansible

Ansible 1.什么是ansible? ​ ansible是基于ssh架构的自动化运维工具&#xff0c;由python语言实现&#xff0c;通过ansible可以远程批量部署等。 2.部署前提 ​ 控制端需要安装ansible,被控制端要开启ssh服务&#xff0c;并允许远程登录&#xff0c;被管理主机需要安装py…

探讨Facebook在全球社交网络中的技术优势

Facebook作为全球最大的社交网络之一&#xff0c;其技术优势在于多个方面&#xff0c;这些优势不仅塑造了用户体验&#xff0c;也影响了整个社交媒体生态。 个性化用户体验 Facebook通过分析用户的行为和兴趣&#xff0c;提供个性化的内容推荐。利用机器学习算法&#xff0c;平…

仅用一分钟,AI如何帮你构建完整的论文初稿?揭秘背后科技!

大家好&#xff01;在今天的分享中&#xff0c;我们将深入探讨一项令人兴奋的技术进展&#xff1a;仅用一分钟&#xff0c;AI如何帮助你构建一篇完整的论文初稿。这项技术不仅节省了研究人员和学生的宝贵时间&#xff0c;还改变了我们对学术写作的传统认知。 首先&#xff0c;…

【读书笔记·VLSI电路设计方法解密】问题10:从概念到硅片开发SoC芯片的主要任务

从概念到硅片的SoC芯片开发过程可分为以下四个任务&#xff1a;设计、验证、实现和软件开发。 设计&#xff1a;通常从市场调研和产品定义开始&#xff0c;然后进行系统设计&#xff0c;最后以RTL编码结束。验证&#xff1a;确保芯片按照设计规格能够准确执行功能&#xff0c;…

深度学习500问——Chapter17:模型压缩及移动端部署(4)

文章目录 17.9 常用的轻量级网络有哪些 17.9.1 SequeezeNet 17.9.2 MobileNet 17.9.3 MobileNet-v2 17.9.4 Xception 17.9 常用的轻量级网络有哪些 17.9.1 SequeezeNet SqueezeNet出自 F.N.landola, S.Han等人发表的论文《SqueezeNet&#xff1a;ALexNet-level accuracy with…

目标检测中的损失函数

损失函数是用来衡量模型与数据的匹配程度的&#xff0c;也是模型权重更新的基础。计算损失产生模型权重的梯度&#xff0c;随后通过反向传播算法&#xff0c;模型权重得以更新进而更好地适应数据。一般情况下&#xff0c;目标损失函数包含两部分损失&#xff0c;一个是目标框分…

RandLA-Net PB 模型 测试

tensorflow ckpt 模型 转换 pb 模型, 测试模型是否正确, 后续实现 c++ 部署。 Code: https://github.com/QingyongHu/RandLA-Net 测试PB 模型 RandLANetConvert.py import tensorflow.compat.v1 as tf tf.disable_v2_behavior

R语言中的plumber介绍

R语言中的plumber介绍 基本用法常用 API 方法1. GET 方法2. POST 方法3. 带路径参数的 GET 方法 使用 R 对数据进行操作处理 JSON 输入和输出运行 API 的其他选项其他功能 plumber 是个强大的 R 包&#xff0c;用于将 R 代码转换为 Web API&#xff0c;通过使用 plumber&#x…

PowerJob做定时任务调度

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、区别对比二、使用步骤1. 定时任务类型2.PowerJob搭建与部署 前言 提示&#xff1a;这里可以添加本文要记录的大概内容&#xff1a; PowerJob是基于java开…

如何优化抖音直播间数据?

在数字驱动的时代&#xff0c;缺乏精准的数据支撑&#xff0c;任何线上活动都难以形成有效的流量循环。特别是在抖音直播这一领域&#xff0c;深入理解并优化核心数据&#xff0c;是提升直播效果、吸引并留住观众的关键。那么&#xff0c;抖音直播平台在评估一场直播时&#xf…

【重学 MySQL】四十六、创建表的方式

【重学 MySQL】四十六、创建表的方式 使用CREATE TABLE语句创建表使用CREATE TABLE LIKE语句创建表使用CREATE TABLE AS SELECT语句创建表使用CREATE TABLE SELECT语句创建表并从另一个表中选取数据&#xff08;与CREATE TABLE AS SELECT类似&#xff09;使用CREATE TEMPORARY …

安装最新 MySQL 8.0 数据库(教学用)

安装 MySQL 8.0 数据库&#xff08;教学用&#xff09; 文章目录 安装 MySQL 8.0 数据库&#xff08;教学用&#xff09;前言MySQL历史一、第一步二、下载三、安装四、使用五、语法总结 前言 根据 DB-Engines 网站的数据库流行度排名&#xff08;2024年&#xff09;&#xff0…

【Redis】持久化(上)---RDB

文章目录 持久化的概念RDB手动触发自动触发bgsave命令的运行流程RDB文件的处理RDB的优缺点RDB效果展示 持久化的概念 Redis支持AOF和RDB两种持久化机制,持久化功能能有效的避免因进程退出而导致的数据丢失的问题,当下次重启的时候利用之前持久化的文件即可实现数据恢复. 所以此…

一键生成PPT的AI工具-Kimi!

一键生成PPT的AI工具-Kimi&#xff01; 前言介绍Kimi为什么选择Kimi如何使用Kimi在线编辑PPT下载生成的PPT自己编辑 结语 &#x1f600;大家好&#xff01;我是向阳&#x1f31e;&#xff0c;一个想成为优秀全栈开发工程师的有志青年&#xff01; &#x1f4d4;今天不来讨论前后…

启动hadoop后没有 NodeManager和 ResourceManager

跟着黑马网课学下去时发现我的hadoop启动后没有NodeManager和ResourceManager 找到日志的路径 我在/export/server/hadoop/etc/hadoop/hadoop-env.sh文件里配置了日志存放的路径 这里找到你的日志路径&#xff0c;每个人的习惯和看的教程不同&#xff0c;日志放的地方大概率也…

对象比较工具类:实现对业务的修改记录保存(对象字段差异对比)

测试 1&#xff1a;User类 Data NoArgsConstructor AllArgsConstructor public class User {FieldLabel("姓名")private String name;FieldLabel("年龄")private Integer age;FieldLabel("手机")private String phone;FieldLabel("手机号…

OpenEBS 实现 PV 动态持久化存储安装

什么是 OpenEBS OpenEBS 将 Kubernetes 工作节点可用的任何存储转换为本地或复制的 Kubernetes 持久卷。OpenEBS 可帮助应用程序和平台团队轻松部署需要快速、高持久性、可靠且可扩展的容器原生存储的Kubernetes 有状态工作负载。 安装OpenEBS 1.所有节点安装iSCSI启动器 yu…

PostgreSQL学习笔记四:GUI管理工具

PostgreSQL 是一款广泛使用的开源关系数据库管理系统&#xff0c;拥有许多图形用户界面&#xff08;GUI&#xff09;工具来帮助用户更高效地管理数据库。以下是一些流行的 PostgreSQL 管理工具&#xff1a; pgAdmin&#xff1a; 一个流行的开源 PostgreSQL GUI 工具&#xff0c…

Graph知识图谱融入向量数据库,带来RAG效果飞升

01. 前言 随着大型语言模型&#xff08;LLMs&#xff09;在各种应用中的广泛使用&#xff0c;如何提升其回答的准确性和相关性成为一个关键问题。检索增强生成&#xff08;RAG&#xff09;技术通过整合外部知识库&#xff0c;为LLMs提供了额外的背景信息&#xff0c;有效地改…

Linux-sed和gawk

文本处理-sed编辑器 文本处理-gawk程序 文本处理-sed编辑器基础 文本处理-sed编辑器基础-使用地址 文本处理-sed编辑器基础-删除行 文本处理-sed编辑器基础-插入和附加文本 文本处理-sed编辑器基础-修改行/转换命令 文本处理-sed编辑器基础-回顾打印-打印行/打印行号/列出行 文…