1.System: java.lang.System
類中的方法和屬性都是靜態的
out:標準輸出,默認是控制檯.
in:標準輸入,默認是鍵盤
描述系統一些信息.獲取系統屬性信息: Properties getProperties()
Properties pro = System.getProperties();
//因爲Properties是hashtable的子類,也就是Map集合的一個子類對象.那麼可以通過map的方法取出該集合中的元素,
//該集合中存儲的都是字符串,沒有泛型定義
//Map方法取出所有元素
/*Set<String> keySet = pro.stringPropertyNames();
Iterator<String> it = keySet.iterator();
while(it.hasNext()){
String key = it.next();
String value = (String)pro.getProperty(key);
System.out.println(key+":::"+value);
}*/
//在系統中自定義一些特有信息
System.setProperty("哈哈","呵呵");
//高級for循環取出所有元素
/*for(Object obj:pro.keySet()){
String value = (String)pro.get(obj);
System.out.println(obj+"---"+value);
}*/
//獲取單個元素 System.getProperty(key);
System.out.println(System.getProperty("os.name"));
System.out.println(System.getProperty("user.country"));
System.out.println(System.getProperty("user.language"));
System.out.println(System.getProperty("file.encoding"));
可以在啓動JVM時,添加系統信息: java -D key=value 類名
2.Runtime: java.lang.Runtime
該類中並沒有提供構造函數
說明不可以new對象,那麼會直接想到該類中的方法都是靜態方法.可是該類中還有非靜態方法.說明該類肯定會提供了方法獲取本類對象,而且該方法是靜態的,並且返回值類型是本類類型
該方式是 static Runtime getRuntime();
由這個特點可以看出該類使用了單例設計模式
Runtime r = Runtime.getRuntime();
//Process p =
r.exec("winmine.exe");//exec方法返回的是一個進程Process,這是一個抽象類,成員方法也都是抽象的,而且沒有子類,因爲創建進程,你不懂,也不需要知道怎麼實現,是系統底層實現的
//Thread.sleep(2000);
//p.destroy();
Process p1 = r.exec("notepad.exe");//啓動windows自帶的記事本
Process p2 = r.exec("notepad.exe SystemDemo.java");//啓動windows自帶的記事本,並把SystemDemo.java裏文本內容顯示在打開的記事本里
Process p3 = r.exec("播放器軟件地址 mp3或電影文件");//這樣可以打開媒體文件
3.Date: java.util.Date
/*
//日期模式字母:
字母 日期或時間元素 表示 示例
G Era 標誌符 Text AD
y 年 Year 1996; 96
M 年中的月份 Month July; Jul; 07
w 年中的週數 Number 27
W 月份中的週數 Number 2
D 年中的天數 Number 189
d 月份中的天數 Number 10
F 月份中的星期 Number 2
E 星期中的天數 Text Tuesday; Tue
a Am/pm 標記 Text PM
H 一天中的小時數(0-23) Number 0
k 一天中的小時數(1-24) Number 24
K am/pm 中的小時數(0-11) Number 0
h am/pm 中的小時數(1-12) Number 12
m 小時中的分鐘數 Number 30
s 分鐘中的秒數 Number 55
S 毫秒數 Number 978
z 時區 General time zone Pacific Standard Time; PST; GMT-08:00
Z 時區 RFC 822 time zone -0800
*/
Date d = new Date();
System.out.println(d);//打印的時間看不懂,希望有些格式
//將模式封裝到SimpleDateFormat對象中
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
//調用format方法讓模式格式化知道Date對象
String date = sdf.format(d);
System.out.println(date);
4.Math: java.lang.Math
類中的方法和屬性都是靜態的
double d = Math.ceil(12.34);//=13 返回大於指定數據的最小整數
double d1 = Math.ceil(-12.34);//=-12
double d2 = Math.floor(15.34);//=15 返回小於指定數據的最大整數
long l = Math.round(12.34);//=12 四捨五入
double d3 = Math.pow(2,3);//=8 2(底數)的3(指數)次冪
//創建一個僞隨機數生成器(底層其實是一個算法,既然是算法就有可能找到規律,只要產生足夠多的數.沒有任何規律的數纔是隨機數)
double d4 = Math.random();//返回一個大於等於0.0,且小於1.0的數,
int d5 = (int)(Math.random()*10+1);//返回一個1到10(不包括)的int數
5.Random: java.util.Random
Random r = new Random();
r.nextDouble();//相當於Math.random();
r.nextInt();//隨機生成一個int範圍的int值
r.nextInt(10);//在 0(包括)和指定值(不包括)之間均勻分佈的 int 值