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

  }
}
复制代码

 

posted @   学而不思则罔!  阅读(163)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· SpringCloud带你走进微服务的世界
点击右上角即可分享
微信分享提示