system类的几个方法中,有很大一部分是对外部定义的属性和环境变量的访问和删除,也有arraycopy这实用的方法。
①getenv()方法,这是一个重载的方法,参数可以为空或者是String类型。前者返回Map集合。后者根据String返回参数值。代码如下:
public class Demo1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Map<String,String> map=System.getenv();//使用无参方法
Collection c=map.values();
Iterator it =c.iterator();
while(it.hasNext())
{
System.out.println(it.next());
}
}
}
package com.j2se.system;
public class Demo2 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(System.getenv("path"));//获取系统变量--path的值
System.out.println(System.getenv("classpath"));//获取系统变量--classpath的值
}
}
②getPropertiey(String name)方法和getProperties()方法。后者返回
Properties类,是Hashtable的子类。可以转化为枚举类型,然后遍历取值。代码如下;
package com.j2se.system;
import java.util.Enumeration;
import java.util.Properties;
public class Demo5 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Properties p=System.getProperties();
Enumeration<Object> e=p.elements();
Enumeration<String> e1=(Enumeration<String>) p.propertyNames();
while(e1.hasMoreElements())
{
System.out.println(e1.nextElement()+": "+System.getProperty(e1.nextElement()));
}
}
}
③currentTimemillion方法,可以得到一个长整型的数值,可以利用这个方法算出执行某一段程序所花费的时间。同时,还有gc方法和exit方法也应该引起我们的注意,gc方法执行以后,系统的垃圾回收器可能会回收不用的对象,减少空间占用。代码如下:
public class Demo11 {
public static void main(String[] args)
{
long start =System.currentTimeMillis();//获取起始时间
int j=0,k=0;
for(int i=0;i<100000000;i++)
{
j++;
k++;
j=j*k;
}
long end =System.currentTimeMillis();//获取结束时间
long time =end-start;
System.out.println("运行所用时间:"+time);//打印运行时间
System.exit(0);
System.out.println("11111");//验证exit方法,此语句不会执行
}
}
程序会打印for循环执行以后的时间。但是最后一条语句不会打印。
system类主要提供了一些关于jdk的环境的获取和操作的字段和方法,但是也会有数组的复制这种比较实用的方法。