java的一些其他的对象:System、Runtime、Date、Math

来源:互联网 发布:画皮Q传源码 编辑:程序博客网 时间:2024/05/07 15:04

1、java.lang包中的System对象:

System类不能被实例化,因为全都是静态的

静态的字段:in、out、err

静态的方法:

a、arraycopy方法

public static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length)

该方法的作用是数组拷贝,也就是将一个数组中的内容复制到另外一个数组中的指定位置,由于该方法是native方法,所以性能上比使用循环高效。

使用示例:

         int[] a = {1,2,3,4};

         int[] b = new int[5];

         System.arraycopy(a,1,b,3,2);

该代码的作用是将数组a中,从下标为1开始,复制到数组b从下标3开始的位置,总共复制2个。也就是将a[1]复制给b[3],将a[2]复制给b[4],这样经过复制以后数组a中的值不发生变化,而数组b中的值将变成{0,0,0,2,3}。

             b、currentTimeMillis方法

            long start = System. currentTimeMillis();

             c、exit方法

                            public static void exit(int status)

该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。

              d、gc方法
                                  public static void gc()

该方法的作用是请求系统进行垃圾回收。至于系统是否立刻回收,则取决于系统中垃圾回收算法的实现以及系统执行时的情况。

 e、getProperty方法

                            public static String getProperty(String key)

该方法的作用是获得系统中属性名为key的属性对应的值。系统中常见的属性名以及属性的作用如下表所示。


属性名

属性说明

java.version

Java 运行时环境版本

java.home

Java 安装目录

os.name

操作系统的名称

os.version

操作系统的版本

user.name

用户的账户名称

user.home

用户的主目录

user.dir

用户的当前工作目录

f、getProperties():返回值是Properties,是Hashtable的子类,虽然hashtable被替代了,但是Properties仍然在用。

Properties prop=System.getProperties();

for(Object obj:prop.keySet())
{
String value=(String)prop.get(obj);
System.out.println(obj+"~~~"+value);
}
String value=(String)prop.get("os.name");

System.out.println(value);

2、Runtime类:也是在java.lang包,该类并没有提供构造函数,不可以new对象,提供的也都是静态方法。

   Runtime r=Runtime.getRuntime();

Process p=r.exec("C:\\Windows\\notepad.exe");

Thread.sleep(4000);

p.destroy();

3、Date类:java.util包中的类

Date d=new Date();

System.out.println(d);
SimpleDateFormat sdf=new SimpleDateFormat("yyyy 年MM月dd日  E hh:mm:ss");
String time=sdf.format(d);
System.out.println(time);

 上面用到了SimpleDateFormat类,这个类是DateFormat的子类,用于格式化日期。

4、Calendar 类:java.util包中的类
System.out.println(c);
System.out.println(c.get(Calendar.YEAR));
System.out.println(c.get(Calendar.MONTH));
System.out.println(c.get(Calendar.DAY_OF_MONTH));
System.out.println(c.get(Calendar.DAY_OF_WEEK));

 // 15 分钟以后  
   c.add(Calendar.MINUTE, 15);  
   int minute= c.get(Calendar.MINUTE);  
   System.out.println("MINUTE + 15 = " + minute);  
  
   // 30分钟前  
   c.add(Calendar.MINUTE, -30);  
   int MINUTE = c.get(Calendar.MINUTE);  
   System.out.println("MINUTE - 30 = " + MINUTE);  

Calendar c=Calendar.getInstance();

c.set(Calendar.DATE,11);//设为当前月的11号

   SimpleDateFormat sdf1=new SimpleDateFormat("yyyy 年MM月dd日  E hh:mm:ss");
String time1=sdf1.format(c.getTime());
System.out.println(time1);

练习:1、获取昨天的现在这个时刻:c.add(Calendar.DAY_OF_MONTH, -1);

  2、获取任意年的二月多少天:三月一日的前一天就是二月的最后一天

main()

{

int year=2015;

showdays(year);

}
public static void showdays(int year) {

Calendar c=Calendar.getInstance();

c.set(year, 2, 1);

c.add(Calendar.DAY_OF_MONTH, -1);

       System.out.println(year+"年的二月有"+c.get(Calendar.DATE)+"天");

}

5、java.lang包中的Math类

          abs、ceil、floor、round、pow

       double d1=Math.random();
System.out.println(d1);
//产生的是大于等于0小于1的伪随机数,如果想得到1到10之间的则需要d*10+1

       //使用下面的java .util包中的类产生也可
Random r=new Random();
for(int x=0;x<10;x++)
{
int d2=r.nextInt(10)+1;
System.out.println(d2);
}

0 0
原创粉丝点击