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")}")
}
}
Original: https://www.cnblogs.com/bajiaotai/p/16670044.html
Author: 学而不思则罔!
Title: JAVA System类
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/565509/
转载文章受原作者版权保护。转载请注明原作者出处!