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方法
c、exit方法long start = System. currentTimeMillis();
public static void exit(int status)
d、gc方法该方法的作用是退出程序。其中status的值为0代表正常退出,非零代表异常退出。使用该方法可以在图形界面编程中实现程序的退出功能等。
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仍然在用。
for(Object obj:prop.keySet())Properties prop=System.getProperties();
{
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);
4、Calendar 类:java.util包中的类上面用到了SimpleDateFormat类,这个类是DateFormat的子类,用于格式化日期。
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);
SimpleDateFormat sdf1=new SimpleDateFormat("yyyy 年MM月dd日 E hh:mm:ss");Calendar c=Calendar.getInstance();
c.set(Calendar.DATE,11);//设为当前月的11号
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);
}