本季目標
1、StringBuffer類?
2、Runtime 類?
3、包裝類與JDK 1.5的新特性——泛型?
4、日期的操作類?
5、Math類?
6、Random類
2、Runtime 類?
3、包裝類與JDK 1.5的新特性——泛型?
4、日期的操作類?
5、Math類?
6、Random類
1、StringBuffer(重點)?
· String 類的時候說過:String 類的內容一旦聲明則不可改變,改變的只是其地址。那么如果現在非要使用循環不斷的修改String內容的時候,則就可以使用StringBuffer,也是一個字符串,但是可以修改。?
· String類中的字符串連接使用的是“+”,而StringBuffer中的連接使用的是append()方法。
· String 類的時候說過:String 類的內容一旦聲明則不可改變,改變的只是其地址。那么如果現在非要使用循環不斷的修改String內容的時候,則就可以使用StringBuffer,也是一個字符串,但是可以修改。?
· String類中的字符串連接使用的是“+”,而StringBuffer中的連接使用的是append()方法。

看下效果:

在內容會不斷修改的時候使用StringBuffer比較合適。

現在再看下效果哈~

StringBuffer是不能直接轉成String 類對象,必須調用toString()方法才可以把一個StringBuffer 的對象變為String類的對象。


2、Runtime表示運行時(了解)?
在一個JVM中只有一個運行時,可以通過此類調用本機的一些程序。?
此類中所有的構造方法對外部不可見,也就是說構造方法被私有化了,所以看不見。?
單態 --> 在整個JVM中只能有一個運行時,所以其內部必然有一個方法可以取得Runtime對象。?
public static Runtime getRuntime()
在一個JVM中只有一個運行時,可以通過此類調用本機的一些程序。?
此類中所有的構造方法對外部不可見,也就是說構造方法被私有化了,所以看不見。?
單態 --> 在整個JVM中只能有一個運行時,所以其內部必然有一個方法可以取得Runtime對象。?
public static Runtime getRuntime()

看下效果:

Exec方法返回的是一個Process對象


看下效果:記事本打開三秒后自動關閉了哈~

3、包裝類?
在JAVA 中提出了一種概念:一切皆對象,如果有此概念的話,則肯定有個矛盾點:?
基本數據類型是對象嗎?肯定不是,那么此時如果要符合之前的理論,則必須把基本數據類型進行包裝。
在JAVA 中提出了一種概念:一切皆對象,如果有此概念的話,則肯定有個矛盾點:?
基本數據類型是對象嗎?肯定不是,那么此時如果要符合之前的理論,則必須把基本數據類型進行包裝。


看下效果:這就是典型包裝類的使用哈~

實際上包裝類即可以把一個基本類型包裝成對象,也可以把包裝類變為基本數據類型。?
Integer --> int:public int intValue()可以實現
Integer --> int:public int intValue()可以實現

看下效果:

以上的操作在 JDK 1.4之前都是這樣做的,必須手工進行裝箱或拆箱操作,而且包裝類是不能直接進行++或—操作的。
在JDK 1.5之后提供了自動的裝箱和拆箱操作,用戶不用像之前那樣必須直接調用方法完成了。
在JDK 1.5之后提供了自動的裝箱和拆箱操作,用戶不用像之前那樣必須直接調用方法完成了。

看下效果:

3、包裝類與JDK 1.5的新特性——泛型
思考題:?
現在要求實現一個坐標的操作類,有以下三種坐標:?
· 整數:x = 30 ; y = 50?
· 小數:x = 30.3 ; y = 50.5?
· 字符串:東經,北緯?
考慮點:?
對于用戶而言,肯定只關心x和y的設置,你不能說讓用戶自己去選擇設置整數或小數等。?
以上問題我通過方法的重載做?我們驗證一下使用方法的重載哈~
現在要求實現一個坐標的操作類,有以下三種坐標:?
· 整數:x = 30 ; y = 50?
· 小數:x = 30.3 ; y = 50.5?
· 字符串:東經,北緯?
考慮點:?
對于用戶而言,肯定只關心x和y的設置,你不能說讓用戶自己去選擇設置整數或小數等。?
以上問題我通過方法的重載做?我們驗證一下使用方法的重載哈~

此處就可以使用JDK 1.5提供的新功能 —— 泛型,在運行的時候由外部指定具體的操作類型。






4、日期的操作類
取得當前的日期
可以直接使用java.util.Date類完成。


打印的時間:Tue Mar 10 21:05:44 CST 2009?
這樣的時間看起來很別扭,不太符合我們中國人的習慣。一般直接使用此類的話,得到的時間不是很舒服,可以直接使用另外一個類——Calendar,此類可以把時間精確到毫秒。?
Calendar是一個抽象類,如果是抽象類,則此處肯定使用其子類完成。
這樣的時間看起來很別扭,不太符合我們中國人的習慣。一般直接使用此類的話,得到的時間不是很舒服,可以直接使用另外一個類——Calendar,此類可以把時間精確到毫秒。?
Calendar是一個抽象類,如果是抽象類,則此處肯定使用其子類完成。



看下效果:

下面我們有選擇滴進行刪減哈~?


(2)日期的格式化類
例如,現在有以下一個時間:?
2009-3-10 21:18:30:345?
將以上的時間格式顯示為:?
2009年3月10日 21點18分30 秒345毫秒?
把之前的日期格式重新格式化了一下。?
如果要完成上面的功能,則就可以使用SimpleDateFormart類,此類可以使用固定的模板把時間扣出來。
2009-3-10 21:18:30:345?
將以上的時間格式顯示為:?
2009年3月10日 21點18分30 秒345毫秒?
把之前的日期格式重新格式化了一下。?
如果要完成上面的功能,則就可以使用SimpleDateFormart類,此類可以使用固定的模板把時間扣出來。



看下效果哈~

5、Math類
數學操作類,但是在面試中里面有一個方法比較常見:round()方法,這個方法主要就是四舍五入哈~~~
四舍五入的操作類

來看下效果哈~

6、Random類,取得隨機數


看下效果:

#######################Michael分割線#######################
謹以此博文慶祝一下今天成為〓博客之星〓
#######################Michael分割線#######################
本文轉自redking51CTO博客,原文鏈接:http://blog.51cto.com/redking/137834,如需轉載請自行聯系原作者