?? 我學(xué)習(xí)使用java的一點(diǎn)體會(huì).txt
字號(hào):
我學(xué)習(xí)使用java的一點(diǎn)體會(huì)
加入時(shí)間 2004-3-1 12:01:45 本站域名 www.code365.com
瀏覽統(tǒng)計(jì) Total:436 | Year:27 | Month:27 | Day:2
java基本類庫的學(xué)習(xí)
曾經(jīng)面試過一些java程序員,我出的題目是在使用java時(shí),經(jīng)常用到哪些類,在哪個(gè)包里。很少有人能答好,甚至有人做了2年java程序都沒有回答出,他們會(huì)用java,但必須依賴工具(指java集成開工具),我覺得他們可以編寫出程序,但不能編寫出特別好得程序。
我認(rèn)為作為java程序員必須掌握java類庫的兩個(gè)包:java.lang和java.util這兩個(gè)包。java.lang包提供的是java編程要用到的基本類包,java程序員天天在用,無非是看別人如何用,自己就如何用,但很少有人去總結(jié)一下,比如String 和StringBuffer這兩個(gè)類有什么差別,應(yīng)該有很多java程序員說不出來。另外Vector和HashMap這兩個(gè)類大家都在用,有多少人能說清楚Vector和HashMap繼承了哪些類,實(shí)現(xiàn)了哪些接口呢。
理論學(xué)習(xí)。認(rèn)真閱讀java API的以下內(nèi)容:java.lang包中的String,StringBuffer,Number,Double,F(xiàn)loat,Byte,Short,Integer,Long,Character,Boolean,Process,Runtime,System,Object,Cloneable,Class,ClassLoader,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,Random,Observer,Observable類和接口。主要理清楚這些類或接口的繼承關(guān)系、主要功能。
演繹階段。通過閱讀代碼,練習(xí)編程,學(xué)習(xí)并應(yīng)用這些類和接口。其實(shí)這些類的大部分是經(jīng)常用的,無非對(duì)這些類和接口說不清楚。在這些類中,對(duì)java.lang和java.util包中的類,最好將各個(gè)方法練習(xí)使用一次。而對(duì)java.util包中Collections framework中的類,最好理清楚各個(gè)類和接口之間的關(guān)系。常用的類的方法我就不具體介紹了,我舉一個(gè)使用Observer和Obserable 的例子(摘自《The Complete Reference Java 2 》)。在Observer和Obserable中,java實(shí)現(xiàn)了對(duì)設(shè)計(jì)模式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);
}
};
執(zhí)行結(jié)果
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
歸納階段。總結(jié)使用經(jīng)驗(yàn),體會(huì)這兩個(gè)包中類的繼承關(guān)系,對(duì)設(shè)計(jì)模式的支持(如Iterator本身就是設(shè)計(jì)模式,同時(shí)也是工廠方法模式的應(yīng)用),了解這些類提供的所有功能,比較功能相近類的異同。將這些類的api記在心中。
雖然集成開發(fā)環(huán)境支持方法提示功能,但我個(gè)人認(rèn)為,對(duì)于java.lang和java.util這兩個(gè)包的api應(yīng)當(dāng)熟記于心,java的其他類庫在使用時(shí)可以查找api。當(dāng)然如果從事不同的開發(fā),對(duì)其他類庫應(yīng)當(dāng)有相應(yīng)的了解,如開發(fā)swing,就應(yīng)當(dāng)對(duì)javax.swing包了如執(zhí)掌,開發(fā)b/s結(jié)構(gòu)的程序,就要了解javax.servlet,依個(gè)人的應(yīng)用來開發(fā)了。
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -