System類包含一些有用的類字段和方法(都是靜態的)。它不能被實例化。java
在System類提供的設施中,有標準輸入、標準輸出和錯誤輸出流;對外部定義的屬性和環境變量的訪問;加載文件和庫的方法;還有快速複製數組的一部分的實用方法。設計模式
字段摘要:數組
1,static PrintStream err 「標準」錯誤輸出流。dom
2,static InputStream in "標準「輸入流。//獲取鍵盤錄入。函數
3,static PrintStream out "標準」輸出流。//打印在控制檯上。測試
部分方法:設計
1,static void arraycopy(Object src, int srcPos, Object dest, int destPos, int length):從指定源數組中複製一個數組,複製從指定的位置開始,到目標數組的指定位置結束。
code
2,static long currentTimeMillis() :返回以毫秒爲單位的當前時間。
orm
3,static void exit(int status):終止當前正在運行的 Java 虛擬機。
對象
4,static void gc():運行垃圾回收器。
5,static Properties getProperties() :肯定當前的系統屬性。//由於Properties是HashTable的子類,也就是Map集合的一個子類對象。那麼樂意經過Map的方法取出該集合中的元素。該集合存儲的都是字符串,沒有泛型定義。
如何在系統中自定義一些特有信息呢?
6,static String setProperty(String key, String value) :設置指定鍵指示的系統屬性。
7,static String getProperty(String key):獲取指定鍵指示的系統屬性。
可不能夠在JVM啓動時,動態加載一些屬性信息呢?
格式:-D<name>=<value> :set a system property。
Runtime:該類並無提供構造函數。說明不能夠new對象。會直接想到該類中的方法都是靜態的。發現該類中還有非靜態方法。說明該類確定提供了方法獲取本類對象,並且該方法是靜態的,而且返回值類型是本類類型。
由這個特色能夠看出該類使用了單例設計模式完成。
每一個 Java 應用程序都有一個 Runtime
類實例,使應用程序可以與其運行的環境相鏈接。能夠經過 getRuntime
方法獲取當前運行時。
應用程序不能建立本身的 Runtime 類實例。
部分方法:
1,static Runtime getRuntime() :返回與當前 Java 應用程序相關的運行時對象。
2,Process exec(String command):在單獨的進程中執行指定的字符串命令。//Process中的方法:abstract void
destroy():殺掉子進程。
//Process p = r.exec("notepad.exe SystemDemo.java"); 用文件相關聯的程序(筆記本)打開文件。
類 Date
表示特定的瞬間,精確到毫秒。
部分方法:
1,boolean after(Date when):測試此日期是否在指定日期以後。
2,boolean before(Date when):測試此日期是否在指定日期以前。
3,Object clone():返回此對象的副本。
4,int compareTo(Date anotherDate):比較兩個日期的順序。
5,boolean equals(Object obj):比較兩個日期的相等性。
6,int hashCode():返回此對象的哈希碼值。
7,void setTime(long time):設置此
Date
對象,以表示 1970 年 1 月 1 日 00:00:00 GMT 之後 time
毫秒的時間點。
8,String toString():把此
Date
對象轉換爲如下形式的 String
: dow mon dd hh:mm:ss zzz yyyy 其中: dow 是一週中的某一天 (Sun, Mon, Tue, Wed, Thu, Fri, Sat)。\
System.out.println(new Date);//打印的時間看不懂,但願有些格式。在Date類中另請參見DateFormat(日期格式化,是文本類),直接已知子類SimpleDateFormat。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日")//將模式封裝到SimpleDateFormat對象中。
String time = sdf.format(d);//調用format方法讓模式格式化指定Date對象。
Calendar類:Calendar
類是一個抽象類,它爲特定瞬間與一組諸如 YEAR
、MONTH
、DAY_OF_MONTH
、HOUR
等 日曆字段
之間的轉換提供了一些方法,併爲操做日曆字段(例如得到下星期的日期)提供了一些方法。
Calendar類中方法:
1,static Calendar getInstance():使用默認時區和語言環境得到一個日曆。//Calendar c = Calendar.getInstance();
2,int get(int field):返回給定日曆字段的值。
3,void set(int field, int value):將給定的日曆字段設置爲給定值。
4,void set(int year, int month, int date):設置日曆字段
YEAR
、MONTH
和 DAY_OF_MONTH
的值。
5,abstract void add(int field, int amount):根據日曆的規則,爲給定的日曆字段添加或減去指定的時間量。
//sop(c.get(Calendar.YEAR)+"年"); //獲取年份。
//sop((c.get(Calendar.MONTH)+1)+"月"); //爲了不每次加1和月,使用查表法。
//c.set(2012,2,23); //設置時間。
兩個練習:
1,獲取任意年的二月有多少天?
思路:根據指定年設置一個時間就是
c.set(year,2,1);//某一年的3月1日。
c.add (Calendar.DAY_OF_MONTH,-1);//3月1日,往前推一天,就是2月最後一天。
2,獲取昨天的如今這個時刻?
c.add(Calendar.DAY_OF_MONTH,-1);
類MATH:Math
類包含用於執行基本數學運算的方法,如初等指數、對數、平方根和三角函數。
方法摘要:
1,static xxx abs(xxx a):返回xxx值的絕對值。
2,static double ceil(double a):返回最小的(最接近負無窮大)
double
值,該值大於等於參數,並等於某個整數。//返回大於指定數據的最小整數。
3,static double floor(double a):返回最大的(最接近正無窮大)
double
值,該值小於等於參數,並等於某個整數。//返回小於指定數據的最大整數。
4,static long round(double a):返回最接近參數的
long
。//四捨五入。
5,static double pow(double a, double b):返回第一個參數的第二個參數次冪的值。//a是底數,b是指數。
6,static double random():返回帶正號的
double
值,該值大於等於 0.0
且小於 1.0
。
//方法二:Random類
Random r = new Random();int d = r.nextInt(10);
練習:給定一個小數,保留該小數的後兩位。