工具類System,Runtime,Math,Date,Calendar
API--- java.lang.System: 屬性和行為都是靜態的。
long currentTimeMillis(); // 返回當前時間毫秒值
exit(); // 退出虛擬機
Properties getProperties() ; // 獲取當前系統的屬性信息
Properties prop = System.getProperties(); //獲取系統的屬性信息,並將這些信息存儲到Properties集合中。
System.setProperty("myname","畢老師"); //給系統屬性信息集添加具體的屬性信息
//臨時設置方式:運行jvm時,可以通過jvm的參數進行系統屬性的臨時設置,可以在
String name = System.getProperty("os.name");//獲取指定屬性的信息
//想要知道該系統是否是該軟件所支持的系統中的一個。
Set<String> hs = new HashSet<String>();
hs.add("Windows XP");
hs.add("Windows 7");
if(hs.contains(name))
System.out.println("可以支持");
else
System.out.println("不支持
--------------------------------------------------------------------------------------------------------------------
API--- java.lang.Runtime: 類中沒有構造方法,不能創建對象。
但是有非靜態方法。說明該類中應該定義好了對象,並可以通過一個static方法獲取這個對象。用這個對象來調用非靜態方法。這個方法就是 static Runtime getRuntime();
這個Runtime其實使用單例設計模式進行設計。
class RuntimeDemo {
public static void main(String[] args) throws Exception {
Runtime r = Runtime.getRuntime();
Process p = r.exec("notepad.exe SystemDemo.java"); //運行指定的程序
Thread.sleep(4000);
p.destroy(); //殺掉進程
}
}
--------------------------------------------------------------------------------------------------------------------
API--- java.util.Math: 用於數學運算的工具類,屬性和行為都是靜態的。該類是final不允許繼承。
static double ceil(double a) ; //返回大於指定數值的最小整數
static double floor(double a) ; //返回小於指定數值的最大整數
static long round(double a) ; //四舍五入成整數
static double pow(double a, double b) ; //a的b次冪
static double random(); //返回0~1的偽隨機數
public static void main(String[] args) {
Random r = new Random();
for(int x=0; x<10; x++) {
//double d = Math.floor(Math.random()*10+1);
//int d = (int)(Math.random()*10+1);
int d = r.nextInt(10)+1;
System.out.println(d);
}
}
--------------------------------------------------------------------------------------------------------------------
API--- java.util.Date:日期類,月份從0-11;
/*
日期對象和毫秒值之間的轉換。
1,日期對象轉成毫秒值。Date類中的getTime方法。
2,如何將獲取到的毫秒值轉成具體的日期呢?
Date類中的setTime方法。也可以通過構造函數。
*/
//日期對象轉成毫秒值
Date d = new Date();
long time1 = d.getTime();
long time2 = System.currentTimeMillis(); / /毫秒值。
//毫秒值轉成具體的日期
long time = 1322709921312l;
Date d = new Date();
d.setTime(time);
/*
將日期字符串轉換成日期對象:使用的就是DateFormat方法中的 Date parse(String source) ;
*/
public static void method() throws Exception {
String str_time = "2011/10/25";
DateFormat df = new SimpleDateFormat("yyyy/MM/dd"); //SimpleDateFormat作為可以指定用戶自定義的格式來完成格式化。
Date d = df.parse(str_time);
}
/*
如果不需要使用特定的格式化風格,完全可以使用DateFormat類中的靜態工廠方法獲取具體的已經封裝好風格的對象。getDateInstance();getDateTimeInstance();
*/
Date d = new Date();
DateFormat df = DateFormat.getDateInstance(DateFormat.LONG);
df = DateFormat.getDateTimeInstance(DateFormat.LONG,DateFormat.LONG);
String str_time = df.format(d);
//將日期對象轉換成字符串的方式:DateFormat類中的format方法。
//創建日期格式對象。
DateFormat df = new SimpleDateFormat(); //該對象的建立內部會封裝一個默認的日期格式。11-12-1 下午1:48
//如果想要自定義日期格式的話。可使用SimpleDateFormat的構造函數。將具體的格式作為參數傳入到構造函數中。如何表示日期中年的部分呢?可以必須要參與格式對象文檔。
df = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
//調用DateFormat中的format方法。對已有的日期對象進行格式化。
String str_time = df.format(d);
--------------------------------------------------------------------------------------------------------------------
API--- java.util. Calendar:日歷類
public static void method(){
Calendar c = Calendar.getInstance();
System.out.println(c.get(Calendar.YEAR)+"年"+(c.get(Calendar.MONTH)+1)+"月"
+getNum(c.get(Calendar.DAY_OF_MONTH))+"日"
+"星期"+getWeek(c.get(Calendar.DAY_OF_WEEK)));
}
public static String getNum(int num){
return num>9 ? num+"" : "0"+num;
}
public static String getWeek(int index){
/*
查表法:建立數據的對應關系.
最好:數據個數是確定的,而且有對應關系。如果對應關系的一方,是數字,而且可以作為角標,那麽可以通過數組來作為表。
*/
String[] weeks = {"","日","一","二","三","四","五","六"};
return weeks[index];
}
工具類System,Runtime,Math,Date,Calendar