能解决的问题:

  1. 获得当前Java程序运行平台的相关信息

 

概述:

  1. System类代表的是当前Java程序的运行平台
  2. System类提供了很多静态方法来获得当前运行平台的信息(具体见程序)

 

部分api:

返回类型方法名称说明
Map<String,String>getenv()获得当前系统环境信息
StringgetProperty(String key)获得系统属性
intidentityHashCode(Object x)唯一性hashCode
longcurrentTimeMillis()返回一个毫秒级时间
longnanoTime()返回一个纳秒级时间
(需要系统支持)
voidrunFinalization()运行对象的finalize方法
voidgc()运行垃圾回收器
voidexit(int status)终止当前运行的JVM

 

程序演示: 放大

  1. package com.cxy.f;  
  2. import java.util.Map;  
  3.   
  4. public class SystemTest  
  5. {  
  6.     public static void main(String[] args)  
  7.     {  
  8.         //获得系统所有环境变量,在这里我们可以找到熟悉的 JAVA_HOME  
  9.         Map<String,String> env=System.getenv();  
  10.         for(String one:env.keySet())  
  11.         {  
  12.             System.out.println(one+":"+env.get(one));  
  13.         }  
  14.         //当然我们也可以直接获取某个环境变量,只要你知道他的名字  
  15.         System.out.println(System.getenv("java_home"));  
  16.         System.out.println("-----------------------------");  
  17.           
  18.         //获得系统属性 更多的请参见JAVA API  
  19.         System.out.println(System.getProperty("os.name"));  
  20.         System.out.println(System.getProperty("java.vm.name"));  
  21.         System.out.println(System.getProperty("java.version"));  
  22.         System.out.println(System.getProperty("user.home"));  
  23.         System.out.println(System.getProperty("user.dir"));  
  24.         System.out.println("-----------------------------");  
  25.           
  26.         //由对象地址计算的hashCode,标识对象的唯一性(新手请绕过)  
  27.         String s1=new String("cxy");  
  28.         String s2=new String("cxy");  
  29.         System.out.println("对象s1和s2的自身的hashCode是否一样:"+(s1.hashCode()==s2.hashCode()));  
  30.         System.out.println("对象s1和s2的由地址计算的hashCode是否一样:"+(System.identityHashCode(s1)==System.identityHashCode(s2)));  
  31.           
  32.         String s3="cxy";  
  33.         String s4="cxy";  
  34.         System.out.println("对象s3和s4的由地址计算的hashCode是否一样:"+(System.identityHashCode(s3)==System.identityHashCode(s4)));  
  35.         System.out.println("-----------------------------");  
  36.           
  37.         //两个获取系统当前时间的方法(1970年1月1日午夜的时间差)  
  38.         System.out.println(System.currentTimeMillis());  //毫秒级  
  39.         System.out.println(System.nanoTime());  //纳米级  
  40.         System.out.println("-----------------------------");  
  41.           
  42.         System.runFinalization();  //运行对象的finalize方法。  
  43.         System.gc();  //运行垃圾回收器(官方解释) 实际上这种运行可能只是建议性运行  
  44.           
  45.         //终止当前运行的java虚拟机(官方文档翻译)  
  46.         //实际上调用的是Runtime.getRuntime().exit(status)  
  47.         System.exit(0);  //参数 如果是非0代表异常终止,多放在捕获异常的catch块中  
  48.     }  
  49.   
  50. }