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")}")

  }
}

Original: https://www.cnblogs.com/bajiaotai/p/16670044.html
Author: 学而不思则罔!
Title: JAVA System类

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/565509/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球