本節介紹一下java中那些經常使用的類,包括:系統相關類(System、Runtime)、日期時間類(Date等)、Object、Math、Random、File、枚舉類(Enum)java
1.System類的成員變量算法
1 System.out.println("hello world");
2.System類的成員方法sql
getProperty方法:獲取系統的屬性信息,常見的屬性名以及屬性說明以下表所示編程
屬性名 | 屬性說明 |
java.version | jdk版本 |
java.home | jdk安裝目錄 |
os.name | 操做系統名稱 |
os.version | 操做系統版本 |
user.home | 用戶宿主目錄 |
user.name | 用戶名稱 |
user.dir | 當前工做目錄 |
代碼示例:數組
1 System.out.println("jdk版本:"+System.getProperty("java.version")); 2 System.out.println("操做系統:"+System.getProperty("os.name")); 3 System.out.println("用戶:"+System.getProperty("user.name")); 4 System.out.println("用戶目錄:"+System.getProperty("user.home")); 5 System.out.println("當前工做目錄:"+System.getProperty("user.dir"));
currentTimeMillis方法:獲取當前的計算機時間,時間的表達格式爲當前計算機時間和GMT時間(格林威治時間)1970年1月1號0時0分0秒所差的毫秒數。dom
1 Long ctime = System.currentTimeMillis(); 2 System.out.println("系統當前時間:"+ctime);//系統當前時間:1509009739936
arraycopy方法:進行數組拷貝,也就是將一個數組中的內容複製到另一個數組中的指定位置,因爲該方法是native方法,因此性能上比使用循環高效。(ArrayList的插入和刪除操做就是調用System類的arraycopy方法實現的)性能
1 //將數組按指定要求進行復制 2 char[] a = {'A','B','C','D'}; 3 char[] b = {'1','2','3','4','5'}; 4 /* 5 * 將原數組a從第1個索引開始複製到目標數組b的第2個索引開始的位置,一共複製2個元素 6 * 便是將a[1]複製給b[2],a[2]複製給b[3],因此最終爲1 2 B C 5 7 */ 8 System.arraycopy(a, 1, b, 2, 2); 9 for (int i = 0; i < b.length; i++) { 10 System.out.print(b[i]+" "); 11 }//1 2 B C 5
gc方法:請求系統進行垃圾回收,至關於給GC加上了優先級。至於系統是否馬上回收,則取決於系統中垃圾回收算法的實現以及系統執行時的狀況,這個方法只是對Runtime類中的gc方法進行了一次包裝。測試
1 //請求垃圾回收 2 System.gc();
exit方法:退出程序,其中status的值爲0表明正常退出,非零表明異常退出。使用該方法能夠在圖形界面編程中實現程序的退出功能等。spa
這裏首先給出Runtime類的一些總結:操作系統
1.Runtime類的內存管理
Runtime類表明了java程序的運行環境,經過Runtime類能夠訪問JVM的相關信息,如處理器數量、內存信息等等。另外還有Runtime類的gc方法,通知JVM進行垃圾回收,這是一個native方法,由C語言實現。
1 //獲取java程序關聯的運行時對象 2 Runtime runtime = Runtime.getRuntime(); 3 4 System.out.println("處理器數量:"+runtime.availableProcessors()); 5 System.out.println("空閒內存數:"+runtime.freeMemory()); 6 System.out.println("總內存數:"+runtime.totalMemory()); 7 System.out.println("最大可用內存數:"+runtime.maxMemory());
2.Runtime類執行其餘程序
除了可以獲取JVM的信息以外,Runtime類還能夠直接單獨啓動一條進程來運行操做系統的命令,主要調用exec這個成員方法來實現。
1 //獲取java程序關聯的運行時對象 2 Runtime runtime = Runtime.getRuntime(); 3 4 //運行記事本程序 5 runtime.exec("notepad.exe");
java提供了一系列用於處理日期、時間的類,包括建立日期、時間對象,獲取系統當前日期、時間等的操做。
java提供了Date類來處理日期和時間,這裏介紹的是java.util包下的Date類,而不是java.sql包下的Date類。因爲這個Date類的歷史悠久,因此大部分構造器、成員方法已經失效,這裏先介紹它未失效的兩個構造器:
因爲Date類的大部分紅員方法也失效了,這裏介紹一些還未失效的方法:
1 Date date = new Date(); 2 System.out.println(date);//Mon Oct 30 15:09:54 CST 2017 3 System.out.println(date.getTime());//1509347462950 4 5 Date d1 = new Date(10000); 6 Date d2 = new Date(20000); 7 System.out.println(d1.before(d2));//true 8 System.out.println(d1.compareTo(d2));//-1 9 10 date.setTime(100000000); 11 System.out.println(date);//Fri Jan 02 11:46:40 CST 1970
Date對象的格式化能夠採用SimpleDateFormat這個類的format(Date date)方法,具體代碼示例以下:
1 Date date = new Date(); 2 SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss"); 3 System.out.println(simpleDateFormat.format(date));//2017/10/30 15:15:48
由於Date類在設計上的一些缺陷,因此java提供了Calendar類來更好地處理日期和時間。Calendar是一個抽象類,因此不能建立一個Calendar類的實例對象,可是能夠經過getInstance靜態方法得到。這裏介紹一些Calendar類經常使用的操做:
1 //經過getInstance()方法得到Calendar的實例對象 2 Calendar calendar = Calendar.getInstance(); 3 4 /* 5 * 經過calendar對象獲取日期和時間信息 6 * 注意:Calendar類中年份的數值直接書寫,月份的值爲實際的月份值減1,日期的值就是實際的日期值。 7 */ 8 System.out.println(calendar.get(calendar.YEAR));//年 9 System.out.println(calendar.get(calendar.MONTH)+1);//月 10 System.out.println(calendar.get(calendar.DAY_OF_MONTH));//日 11 System.out.println(calendar.get(calendar.HOUR_OF_DAY));//時 12 System.out.println(calendar.get(calendar.MINUTE));//分 13 System.out.println(calendar.get(calendar.SECOND));//秒 14 15 //設置日期和時間 16 calendar.set(2017, 11, 10, 15, 30, 20); 17 18 /*利用SimpleDateFormat進行格式化 19 * 注意:此處format方法傳入的參數爲一個Date對象,因此須要調用calendar對象的getTime方法以獲取一個Date對象 20 */ 21 System.out.println(new SimpleDateFormat("yyyy/MM/dd HH:mm:ss").format(calendar.getTime()));//2017/12/10 15:30:20 22 23 /* 24 *計算時間差: 25 * 經過調用calendar類的getTimeInMillis方法,計算毫秒級的時間差,再進行換算獲得所需的時間差格式 26 */ 27 Calendar startCalendar = Calendar.getInstance(); 28 startCalendar.set(2017, 6, 1, 12, 30, 50);//起始時間爲2017/7/1 12:30:50 29 Calendar endCalendar = Calendar.getInstance();//結束時間爲當前時間 30 long deltaTime = endCalendar.getTimeInMillis() - startCalendar.getTimeInMillis() ; 31 //直接輸出毫秒級的時間差 32 System.out.println(deltaTime); 33 //換算整天數的時間差 34 System.out.println(deltaTime/(1000*3600*24));
下一節將介紹剩下的幾個經常使用類。