System的常用方法

/*

  • 键 相关值的描述
    java.version Java 运行时环境版本
    java.vendor Java 运行时环境供应商
    java.vendor.url Java 供应商的 URL
    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 用户的当前工作目录
    */
package demo.api;

import java.util.Arrays;

class SystemTest {
    public static void main(String[] args) {
        /*
        arraycopy(Object src, int srcPos, Object dest, int destPos, int length) 一般
 		src - 源数组。
		srcPos - 源数组中的起始位置。
		dest - 目标数组。
		destPos - 目标数据中的起始位置。
		length - 要复制的数组元素的数量。
        */
        int[] arr1 = {10, 11, 12, 14};
        int[] arr2 = new int[4];
        System.arraycopy(arr1, 1, arr2, 1, 2);
        System.out.println(Arrays.toString(arr2));
        System.out.println("当前系统时间为(单位毫秒):" + System.currentTimeMillis());

        //System.exit(0);//退出jvm
        System.gc();//回收垃圾。如果一个对象被垃圾回收 器回收的时候,会先调用对象的finalize()方法。
        System.out.println("获取环境变量:" + System.getenv("JAVA_HOME"));

        //获取系统的所有属性
        //Properties properties = System.getProperties();
        //properties.list(System.out);

        //获得指定属性
        System.out.println("系统名:" + System.getProperty("os.name"));
        System.out.println("用户名:" + System.getProperty("user.name"));
    }
}


### Java `System` 类常用方法 #### 获取当前时间毫秒数 通过调用静态方法 `currentTimeMillis()` 可以获取自1970年1月1日午夜以来的时间,单位为毫秒。 ```java long startTime = System.currentTimeMillis(); // 执行某些操作... long endTime = System.currentTimeMillis(); System.out.println("耗时:" + (endTime - startTime) + " ms"); ``` 此方法广泛用于计算程序执行时间和性能评估[^1]。 #### 输出流控制 `out` 是一个标准输出对象,通常与 `println()`, `print()`, 和 `printf()` 方法一起使用来向控制台写入数据。 ```java System.out.println("这是一个测试字符串"); // 向控制台打印一行文字并换行 System.out.print("这是另一条消息"); // 不会自动换行 System.err.println("错误信息!"); // 错误输出流, 一般显示红色字体 ``` 这些方法允许开发者方便地调试用程序或将重要信息反馈给用户[^2]。 #### 输入重定向 可以利用 `setIn(InputStream)` 来改变默认的标准输入源。这使得可以从文件或其他外部资源读取数据而不是键盘输入。 ```java FileInputStream fileInputStream; try { fileInputStream = new FileInputStream(new File("input.txt")); System.setIn(fileInputStream); } catch (FileNotFoundException e) { e.printStackTrace(); } ``` 该特性对于自动化批处理作业非常有用,在不需要人工干预的情况下完成大量重复性的任务[^3]。 #### 属性查询 借助于 `getProperty(String key)` 或者 `getProperties()` 能够访问系统的环境变量以及 JVM 的配置参数。 ```java String javaVersion = System.getProperty("java.version"); String osName = System.getProperty("os.name"); System.out.println("Java版本:" + javaVersion); System.out.println("操作系统名称:" + osName); ``` 这对于跨平台开发尤其有价值,因为可以根据不同的运行环境调整用行为[^4]。 #### 运行命令 最后值得一提的是 `exec(String command)` 函数,它可以用来启动新的进程去执行指定的操作系统指令。 ```java Process process; try { process = Runtime.getRuntime().exec("notepad.exe"); } catch (IOException e) { e.printStackTrace(); } ``` 不过需要注意安全性和稳定性方面的问题,谨慎使用此类功能[^5]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值