我學習使用java的一點體會(3) (轉)
- 基本類庫的學習
曾經面試過一些java員,我出的題目是在使用java時,經常用到哪些類,在哪個包裡。很少有人能答好,甚至有人做了2年java程式都沒有回答出,他們會用java,但必須依賴工具(指java整合開工具),我覺得他們可以編寫出程式,但不能編寫出特別好得程式。
我認為作為java程式設計師必須掌握java類庫的兩個包:java.lang和java.util這兩個包。java.lang包提供的是java要用到的基本類包,java程式設計師天天在用,無非是看別人如何用,自己就如何用,但很少有人去總結一下,比如String 和StringBuffer這兩個類有什麼差別,應該有很多java程式設計師說不出來。另外Vector和HashMap這兩個類大家都在用,有多少人能說清楚Vector和HashMap繼承了哪些類,實現了哪些介面呢。
- 理論學習。認真閱讀java 的以下內容:java.lang包中的String,StringBuffer,Number,Double,Float,Byte,Short,Integer,Long,Character,Boolean,Process,Runtime,System,,Cloneable,Class,Claoader,Thread,ThreadGroup,Runnable,Package類或介面。java.util包中的Collection,list,Set,ArrayList,LinkedList,Hashset,TreeSet,Iterator,Map,SortedMap,HashMap,TreeMap,Comparator,Arrays,Enumeration,Vector,Stack,Dictionary,Hashtable,Properties,StringTokenizer,BitSet,Date,Calendar,Locale,Ran,Observer,Observable類和介面。主要理清楚這些類或介面的繼承關係、主要功能。
- 演繹階段。透過閱讀程式碼,練習程式設計,學習並應用這些類和介面。其實這些類的大部分是經常用的,無非對這些類和介面說不清楚。在這些類中,對java.lang和java.util包中的類,最好將各個方法練習使用一次。而對java.util包中Collections 中的類,最好理清楚各個類和介面之間的關係。常用的類的方法我就不具體介紹了,我舉一個使用Observer和Obserable 的例子(摘自《The Complete Reference Java 2 》)。在Observer和Obserable中,java實現了對設計Observer的支援。
Watcher.java程式碼
import java.util.*;
class Watcher implements Observer
{
public void update(Observable obj, Object arg )
{
System.out.println("Update() called, count is " +
((Integer) arg).intValue());
}
}
BeingWatched.java程式碼
import java.util.*;
class BeingWatched extends Observable
{
void counter( int period )
{
for(;period >=0; period-- )
{
setChanged();
notifyObservers( new Integer ( period ) );
try
{
Thread.sleep(100);
}
catch( InterruptedException e)
{
System.out.println("Sleep interrupeted" );
}
}
}
};ObserverDemo.java程式碼
public class ObserverDemo
{
public static void main( String[] args )
{
BeingWatched observed = new BeingWatched();
Watcher observing = new Watcher();
observed.addObserver( observing);
observed.counter(10);
}
};結果
Update() called, count is 10
Update() called, count is 9
Update() called, count is 8
Update() called, count is 7
Update() called, count is 6
Update() called, count is 5
Update() called, count is 4
Update() called, count is 3
Update() called, count is 2
Update() called, count is 1
Update() called, count is 0 -
歸納階段。總結使用,體會這兩個包中類的繼承關係,對設計模式的支援(如Iterator本身就是設計模式,同時也是工廠方法模式的應用),瞭解這些類提供的所有功能,比較功能相近類的異同。將這些類的api記在心中。
雖然整合開發環境支援方法提示功能,但我個人認為,對於java.lang和java.util這兩個包的api應當熟記於心,java的其他類庫在使用時可以查詢api。當然如果從事不同的開發,對其他類庫應當有相應的瞭解,如開發,就應當對javax.swing包瞭如執掌,開發b/s結構的程式,就要了解javax.,依個人的應用來開發了。
(未完)
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-998696/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 我學習使用java的一點體會 (轉)Java
- 我學習使用java的一點體會(2) (轉)Java
- 我學習使用java的一點體會(5) (轉)Java
- 我學習使用java的一點體會(4) (轉)Java
- 我學習使用java的一點體會(8) (轉)Java
- 我的一點學習經驗 (轉)
- 學習ASP.NET的體會(一) (轉)ASP.NET
- Java學習過程的一些重點(轉)Java
- 我這幾年程式設計師生涯的一點體會(轉)程式設計師
- 學習java一定會用到的應用軟體Java
- 使用Immutable js的一點體會JS
- 我求職的體會 (轉)求職
- 使用Rust的幾點理由,加入我們,一起學習!Rust
- 我對ORACLE資料鎖的一點體會Oracle
- 學習EJB CMP/CMR 的心得體會 (轉)
- 轉行Java能學會嗎?零基礎學習Java的學習路線Java
- Java學習筆記--我的第一個Java程式Java筆記
- 對軟體開發的一點心得體會 (轉)
- Java隨筆-Java泛型的一點學習Java泛型
- java學習總結及心得體會Java
- 個人學習SMC的一點體會--回答dREAMhTEATER兄 (2千字)
- 介面和抽象類使用的一點體會抽象
- python學習心得體會(一)Python
- 一點看法, 一點體會 -- 國外與國內,數學與計算機 (轉)計算機
- 最近學習的體會
- 在VB應用程式中使用INI檔案的一點體會 (轉)
- 我的C學習之路 (轉)
- java學習3Java
- Java學習(3)Java
- 學習專案管理理論後的體會(轉)專案管理
- 學習專案管理理論後的體會 (轉)專案管理
- 專案進度控制學習體會(轉)
- oracle的學習方法——關於測試的兩點體會Oracle
- 關於專案管理的一點體會-轉載專案管理
- 入門教程的一些學習體會
- java學習歷程——第一篇.如何使用java軟體Java
- Java學習從入門到精通(3)(轉)Java
- 我是一個高中生學習Java?Java