JAVA System类
1. 介绍
System 类代表系统(当前运行的JVM,并不是 所处的操作系统) 在类的内部放置了很多 系统级的属性和控制方法 所在位置 java.lang.System 该类的 构造方法 是 private的 ,所以是无法创建对象 但是 他的成员方法和成员属性都是 static的,所以 直接 System.[成员属性|成员方法] 就可以使用 private System() { }
2. System_exit
object System_exit { def main(args: Array[String]): Unit = { /* * 功能: * 终止当前运行的 JVM * 语法: * public static void exit(int status) * 参数: * 0: 正常退出 * !0: 异常退出 * */ println("run job") System.exit(1) // run job // Process finished with exit code 1 } }
3. System_currentTimeMillis
object System_currentTimeMillis { def main(args: Array[String]): Unit = { /* * 功能: * 获取 当前系统时间戳(毫秒值) * */ val curTime: Long = System.currentTimeMillis() println(curTime) //1662619740018 } }
4. System_arraycopy
object System_arraycopy { def main(args: Array[String]): Unit = { /* * 功能: * 复制数组,将源数据的元素 复制到 目标数组的指定位置中去 (native方法,性能上比使用循环高效) * * 语法: * public static native void arraycopy(Object src,int srcPos, Object dest, * int destPos,int length); * 参数: * @param src 源数组 * @param srcPos 源数组-开始位置 * @param dest 目标数组 * @param destPos 目标数组-开始位置 * @param length 目标数组-要复制的元素个数 * * 异常: * IndexOutOfBoundsException => 复制元素个数 > 目标数组长度 * ArrayStoreException => 源数组&目标数组 数据类型不一致 * NullPointerException => 源数组&目标数组 数据为空 * */ val array: Array[Int] = Array(1, 2, 3, 4, 5, 6) println(s"修改前:${array.mkString(",")}") // TODO 这样赋值 只是将 array的引用 复制给了变量 array_bak,指向的数组地址 是一个 val array_bak: Array[Int] = array array_bak(0) = 99 println(s"修改后:${array.mkString(",")}") // TODO 使用 System.arraycopy 复制 数组 val array_bak1: Array[Int] = new Array[Int](10) System.arraycopy(array, 1, array_bak1, 1, 3) println(s"修改后:${array_bak1.mkString(",")}") } }
5. JVM 环境变量(系统属性)
// TODO JVM 环境变量(系统属性) object System_evn_var { def main(args: Array[String]): Unit = { /* * TODO 成员方法 创建 Properties 结构 用来存储 JVM的环境变量 * private static Properties props; * * TODO 设置 环境变量 * public static String setProperty(String key, String value) * public static void setProperties(Properties props) * * TODO 获取 环境变量 * public static String getProperty(String key) * public static Properties getProperties() * System.getProperties.load(new FileInputStream("")) * * TODO 清除环境变量 * public static String clearProperty(String key) * * */ // TODO 获取 环境变量-所有key val strings: util.Set[String] = System.getProperties.stringPropertyNames() strings.forEach(println(_)) // TODO 获取 环境变量-根据key 获取value val value: String = System.getProperty("user.name") println(s"user.name=${value}") // TODO 设置 环境变量-批量 val pro: Properties = new Properties pro.setProperty("name1", "张飞") pro.setProperty("name2", "赵云") System.setProperties(pro) System.getProperties.stringPropertyNames.forEach(println(_)) // TODO 设置 环境变量-key value System.setProperty("user.name", "root") println(s"user.name=${System.getProperty("user.name")}") // TODO 设置 环境变量-读取外部 properties文件 System.getProperties.load(new FileInputStream("/Users/dxm/Desktop/home/d_book/java_home/SparkSourceCode01/src/main/resources/log4j.properties")) System.getProperties.stringPropertyNames.forEach(println(_)) // TODO 清除环境变量 System.clearProperty("user.name") println(s"user.name=${System.getProperty("user.name")}") } }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界