一、System类:
包含一些有用的类字段和方法,他不能被实例化没有提供构造参数。
out:标注输出流,默认是控制台或者屏幕。
in:标准输入流,默认是键盘。
描述系统一些信息。
System可以描述系统环境。
获取系统属性信息:Properties getProperties(); // 返回一个Properties
设置属性信息:setProperty(“mykey”,”myvalue”);
在虚拟机启动时动态的加载一些属性信息:java命令的-D<name>=<value> eg:java–Dhaha=qqqq
import java.util.*;
classSystemDemo
{
public static void main(String[] args)
{
Properties prop =System.getProperties(); //定义一个Properties对象接受系统调用的getProperties方法。
// 因为Properties是Hashtable的子类,也就是Map集合的一个子类对象。
// 那么可以通过map的方法取出该集合中的元素。
// 该集合中存储的都是字符串,没有泛型定义。所以下面输出时候不强转也可以。
// 获取所有属性信息
for(Object obj :prop.keySet()) // 输出查看属性
{
String value =(String)prop.get(obj);
System.out.println(obj+”::”+value);
}
// 如何在系统中自定义一些特有信息呢?
// 通过setProperty(“mykey”,”myvalue”);
System.setProperty(“mykey”,”myvalue”); // 调用方法设置特有属性信息
for(Object obj :prop.keySet()) // 再次输出查看属性
{
String value =(String)prop.get(obj); // 强转动作,变成字符串。此处不强转也可以。
System.out.println(obj+”::”+value);
}
// 获取指定属性信息
String value =System.getProperty(“os.name”);
System.out.println(”value=”+value);
// 可不可以在虚拟机启动时动态的加载一些属性信息呢?
// java命令的-D<name>=<value> eg: java –Dhaha=qqqq
String v =System.getProperty(“haha”); // 获取haha的信息赋给v
System.out.println(”v=”+v); // 输出haha的值
}
}
二、Runtime类:
每个Java应用程序都有个Runtime类实例使应用程序能与其运行的环境相连接。
Runtime类没有构造函数,不能手动建立对象。但其有非静态方法,因为他有一个静态方法getRuntime(),用于返回与当前Java应用程序相关的运行时对象。(单利设计模式)
Runtime对象,该类中并没有提供构造函数,说明不可以new对象,那么会直接想到该类中的方法都是静态的。说明该类肯定会提供方法获取本类对象,而且该方法是静态的,并且返回值类型是本类类型。那么,该方法就是:static Runtime getRuntime();由这个特点可以看出该类使用了单例设计模式完成,保证了对象的唯一性。
exec方法返回一个Process进程,Process的一个实例。Process是一个抽象类。其中的方法都是抽象的。
Process类中有一个destroy();方法,用于杀掉子进程。
classRuntimeDemo
{
public static void main(String[] args)throws Exception
{
Runtime r =Runtime.getRuntime();
// 执行扫雷。由于地址可能出错所以要抛出异常。
Process p = r.exec(“c:\\winmine.exe”); \\ \为转意字符所以\\
Thread.sleep(4000); // 线程创建后等四秒。在杀死
p.destroy(); // 杀死进程。
Process p = r.exec(“notepad.exeSystemDemo.java”); //以记事本打开SystemDemo.java这个java文件
}
}
Date类:表示特定的瞬间,精确到毫秒。此类有构造方法。但大部分已过时只剩两个。
DateFormat类:日期格式化抽象类不能实例化对象。但他有一个非抽象子类SimpleDateFormat此类在java.text包中。
importjava.util.*;
importjava.text.*;
classDateDemo
{
Date d = new Date();
System.out.println(d); // 打印结果:Sun Jan16 10:58:47 CST 2011
// 打印的结果的时间看不懂希望有些格式。
// 将模式封装到SimpleDateformat对象中。
SimpleDateFormat sdf = newSimpleDateFormat(“yyyy年mm月dd日E hh:mm:ss”);
// 调用format方法让模式格式化指定Date对象。
sdf.format(d);
System.out.println(“time=”+time); // 结果为:time=2011年01月16日星期日11:06:54
{
三、Calendar类
Calendar日历抽象类可以单独获取日期中的月、日、年。有一个子类GregorianCalendar
注意获取月份从0开始。
importjava.util.*;
classCalendarDemo
{
public static void main(String[] args)
{
Calendar c =Calendar.getInstance();
String[] mons = {“一月”,”二月”,”三月”,”四月”,”五月”,”六月”,”七月”,”八月”,”九月”,”十月”,”十一
月”,” 十二月”};
String[] weeks = {“星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”,”星期日”};
int index =c.get(Calendar.MONTH);
int index1 =c.get(Calendar.DAY_OF_WEEK);
// 直接获取YEAR、MONTH、DAY_OF_MONTH
sop(c.get(Calendar.YEAR)+”年”);
// 查表法替换
sop(mons[index]); // sop((c.get(Calendar.MONTH)+1)+”月”);
sop(c.get(Calendar. DAY_OF_MONTH)+”日”);
// 查表法替换
sop(weeks[index1]); // sop(“星期”+c.get(Calendar.DAY_OF_WEEK));
/*
Date d = new Date();
SimpleDateFormat sdf = newSimpleDateFormat(“yyyy”);
String year = sdf.format(d);
System.out.println(year);
*/
}
public static void sop(Object obj) // 定义输出方法。
{
System.out.println(obj);
}
}
Calendar类其它操作:
importjava.util.*;
classCalendarDemo2
{
public static void main(String[] args)
{
Calendar c = Calendar.getInstance();
c.set(2012,2,23); // 设置时间。
printCalendar(c); // 打印结果为2012年三月23日星期五
c.add(Calendar.YEAR,4); // 将年字段加四
c.add(Calendar.MONTH,4); // 将月字段加四
c.add(Calendar.MONTH,-4); // 将月字段往前推一四个月。月份超出自动处理年的变换
}
public static void printCalendar(Calendarc) // 定义方法用于输出打印日期
{
String[] mons = {“一月”,”二月”,”三月”,”四月”,”五月”,”六月”,”七月”,”八月”,”九月”,”十月”,”十一
月”,” 十二月”};
String[] weeks = {“星期一”,”星期二”,”星期三”,”星期四”,”星期五”,”星期六”,”星期日”};
int index =c.get(Calendar.MONTH);
int index1 =c.get(Calendar.DAY_OF_WEEK);
// 直接获取YEAR、MONTH、DAY_OF_MONTH
sop(c.get(Calendar.YEAR)+”年”);
// 查表法替换
sop(mons[index]); // sop((c.get(Calendar.MONTH)+1)+”月”);
sop(c.get(Calendar. DAY_OF_MONTH)+”日”);
// 查表法替换
sop(weeks[index1]);
}
public static void sop(Object obj) // 定义输出方法。
{
System.out.println(obj);
}
}
四、类Math:
工具类,没有特有数据,其中的方法都是静态方法。包含用于执行基本数学运算的方法。
util包中提供了一个Random类。要比Math中的方法更多。
importjava.util.*; // 用Random类需要导包。
classMathDemo
{
public static void main(String[] args)
{
// Math.random() 第一种方法
for(int x=0; x<10; x++)
{
double d=Math.random(); // random()方法演示随机产生一个大于等于0.0且小于1.0的数。
int d1 =(int)(Math.random()*10+1); // 随机生成1到10的整数。
sop(d);
}
// Random类 第二种方法
Random r = new Random();
{
for(int x=0;x<10; x++)
{
int d =r.nextInt(10)+1; // nextInt方法返回一个随机整数在0到指定数(不包含)之间
sop(d);
}
}
}
public static void show() // 定义Math类中方法演示的方法
{
double d =Math.ceil(12.34); // ceil方法返回大于指定数据的最小整数。
double d1 =Math.floor(-16.34); // floor方法返回小于指定数据的最大整数。
long l =Math.round(12.34); // 返回指定数的四舍五入结果。
sop(“d=”+d); // 13.0
sop(“d1=”+d1); // -16
sop(“l=”+l); // 13
double d2 =Math.pow(2,3); // 返回2的3次方。
sop(“d2=”+d2);
}
public static void sop(Object obj) // 定义输出方法。
{
System.out.println(obj);
}
}