對于Java開發(fā)學(xué)習(xí)者來說,基礎(chǔ)掌握的知識點(diǎn)有以下幾種:
1. Java面向?qū)ο蟮膬?yōu)點(diǎn):易維護(hù)、易復(fù)用、易擴(kuò)展,由于面向?qū)ο笥蟹庋b、繼承、多態(tài)性的特性,可以設(shè)計(jì)出低耦合的系統(tǒng),使系統(tǒng)更加靈活、更加易于維護(hù)。
2. Java虛擬機(jī)的概念,任何一種可以運(yùn)行Java字節(jié)碼的軟件均可看成是Java的虛擬機(jī)(JVM)
3. JDK顧名思義它是給開發(fā)者提供的開發(fā)工具箱,是給程序開發(fā)者用的。它除了包括完整的JRE(Java Runtime Environment),Java運(yùn)行環(huán)境,還包含了其他供開發(fā)者使用的工具包。
4. JRE的概念,普通用戶而只需要安裝JRE(Java Runtime Environment)來運(yùn)行Java程序。而程序開發(fā)者必須安裝JDK來編譯、調(diào)試程序。
5. Java中覆蓋(Override)是指子類對父類方法的一種重寫,子類只能拋出比父類更少的異常,且訪問權(quán)限不能比父類的小。被覆蓋的方法不能是 private 的,否則只是在子類中重新定義了一個方法。
Java中重載(Overload)表示同一個類中可以有多個名稱相同的方法,但這些方法的參數(shù)列表各不相同。
第2章 一切都是對象2.1 用句柄操縱對象2.2 必須創(chuàng)建所有對象2.2.1 保存在什么地方2.2.2 特殊情況:主類型2.2.3 Java中的數(shù)組2.3 絕對不要清除對象2.3.1 作用域2.3.2 對象的作用域2.4 新建數(shù)據(jù)類型:類2.4.1 字段和方法2.5 方法、自變量和返回值2.5.1 自變量列表2.6 構(gòu)建Java程序2.6.1 名字的可見性2.6.2 使用其他組件2.6.3 static關(guān)鍵字2.7 我們的第一個Java程序2.8 注釋和嵌入文檔2.8.1 注釋文檔2.8.2 具體語法2.8.3 嵌入HTML2.8.4 @see:引用其他類2.8.5 類文檔標(biāo)記2.8.6 變量文檔標(biāo)記2.8.7 方法文檔標(biāo)記2.8.8 文檔示例2.9 編碼樣式2.10 總結(jié)2.11 練習(xí) 第3章 控制程序流程3.1 使用Java運(yùn)算符3.1.1 優(yōu)先級3.1.2 賦值3.1.3 算術(shù)運(yùn)算符3.1.4 自動遞增和遞減3.1.5 關(guān)系運(yùn)算符3.1.6 邏輯運(yùn)算符3.1.7 按位運(yùn)算符3.1.8 移位運(yùn)算符3.1.9 三元if-else運(yùn)算符3.1.10 逗號運(yùn)算符3.1.11 字串運(yùn)算符+3.1.12 運(yùn)算符常規(guī)操作規(guī)則3.1.13 造型運(yùn)算符3.1.14 Java沒有“sizeof”3.1.15 復(fù)習(xí)計(jì)算順序3.1.16 運(yùn)算符總結(jié)3.2 執(zhí)行控制3.2.1 真和假3.2.2 if-else3.2.3 反復(fù)3.2.4 do-while3.2.5 for3.2.6 中斷和繼續(xù)3.2.7 切換3.3 總結(jié)3.4 練習(xí) 第4章 初始化和清除4.1 由構(gòu)建器保證初始化4.2 方法過載4.2.1 區(qū)分過載方法4.2.2 主類型的過載4.2.3 返回值過載4.2.4 默認(rèn)構(gòu)建器4.2.5 this關(guān)鍵字4.3 清除:收尾和垃圾收集4.3.1 finalize()用途何在4.3.2 必須執(zhí)行清除4.4 成員初始化4.4.1 規(guī)定初始化4.4.2 構(gòu)建器初始化4.5 數(shù)組初始化4.5.1 多維數(shù)組4.6 總結(jié)4.7 練習(xí) 第5章 隱藏實(shí)施過程5.1 包:庫單元5.1.1 創(chuàng)建獨(dú)一無二的包名5.1.2 自定義工具庫5.1.3 利用導(dǎo)入改變行為5.1.4 包的停用5.2 Java訪問指示符5.2.1 “友好的”5.2.2 public:接口訪問5.2.3 private:不能接觸5.2.4 protected:“友好的一種”5.3 接口與實(shí)現(xiàn)5.4 類訪問5.5 總結(jié)5.6 練習(xí) 第6章 類再生6.1 合成的語法6.2 繼承的語法6.2.1 初始化基礎(chǔ)類6.3 合成與繼承的結(jié)合6.3.1 確保正確的清除6.3.2 名字的隱藏6.4 到底選擇合成還是繼承6.5 protected6.6 遞增開發(fā)6.7 上溯造型6.7.1 何謂“上溯造型”?6.8 final關(guān)鍵字6.8.1 final數(shù)據(jù)6.8.2 final方法6.8.3 final類6.8.4 final的注意事項(xiàng)6.9 初始化和類裝載6.9.1 繼承初始化6.10 總結(jié)6.11 練習(xí) 第7章 多形性7.1 上溯造型7.1.1 為什么要上溯造型7.2 深入理解7.2.1 方法調(diào)用的綁定7.2.2 產(chǎn)生正確的行為7.2.3 擴(kuò)展性7.3 覆蓋與過載7.4 抽象類和方法7.5 接口7.5.1 Java的“多重繼承”7.5.2 通過繼承擴(kuò)展接口7.5.3 常數(shù)分組7.5.4 初始化接口中的字段7.6 內(nèi)部類7.6.1 內(nèi)部類和上溯造型7.6.2 方法和作用域中的內(nèi)部類7.6.3 鏈接到外部類7.6.4 static內(nèi)部類7.6.5 引用外部類對象7.6.6 從內(nèi)部類繼承7.6.7 內(nèi)部類可以覆蓋嗎?7.6.8 內(nèi)部類標(biāo)識符7.6.9 為什么要用內(nèi)部類:控制框架7.7 構(gòu)建器和多形性7.7.1 構(gòu)建器的調(diào)用順序7.7.2 繼承和finalize()7.7.3 構(gòu)建器內(nèi)部的多形性方法的行為7.8 通過繼承進(jìn)行設(shè)計(jì)7.8.1 純繼承與擴(kuò)展7.8.2 下溯造型與運(yùn)行期類型標(biāo)識7.9 總結(jié)7.10 練習(xí) 第8章 對象的容納8.1 數(shù)組8.1.1 數(shù)組和第一類對象8.1.2 數(shù)組的返回8.2 集合8.2.1 缺點(diǎn):類型未知8.3 枚舉器(反復(fù)器)8.4 集合的類型8.4.1 Vector8.4.2 BitSet8.4.3 Stack8.4.4 Hashtable8.4.5 再論枚舉器8.5 排序8.6 通用集合庫8.7 新集合8.7.1 使用Collections8.7.2 使用Lists8.7.3 使用Sets8.7.4 使用Maps8.7.5 決定實(shí)施方案8.7.6 未支持的操作8.7.7 排序和搜索8.7.8 實(shí)用工具8.8 總結(jié)8.9 練習(xí) 第9章 違例差錯控制9.1 基本違例9.1.1 違例自變量9.2 違例的捕獲9.2.1 try塊9.2.2 違例控制器9.2.3 違例規(guī)范9.2.4 捕獲所有違例9.2.5 重新“擲”出違例9.3 標(biāo)準(zhǔn)Java違例9.3.1 RuntimeException的特殊情況9.4 創(chuàng)建自己的違例9.5 違例的限制9.6 用finally清除9.6.1 用finally做什么9.6.2 缺點(diǎn):丟失的違例9.7 構(gòu)建器9.8 違例匹配9.8.1 違例準(zhǔn)則9.9 總結(jié)9.10 練習(xí) 第10章 Java IO系統(tǒng)10.1 輸入和輸出10.1.1 InputStream的類型10.1.2 OutputStream的類型10.2 增添屬性和有用的接口10.2.1 通過FilterInputStream從InputStream里讀入數(shù)據(jù)10.2.2 通過FilterOutputStream向OutputStream里寫入數(shù)據(jù)10.3 本身的缺陷:RandomAccessFile10.4 File類10.4.1 目錄列表器10.4.2 檢查與創(chuàng)建目錄10.5 IO流的典型應(yīng)用10.5.1 輸入流10.5.2 輸出流10.5.3 快捷文件處理10.5.4 從標(biāo)準(zhǔn)輸入中讀取數(shù)據(jù)10.5.5 管道數(shù)據(jù)流10.6 StreamTokenizer10.6.1 StringTokenizer10.7 Java 1.1的IO流10.7.1 數(shù)據(jù)的發(fā)起與接收10.7.2 修改數(shù)據(jù)流的行為10.7.3 未改變的類10.7.4 一個例子10.7.5 重定向標(biāo)準(zhǔn)IO10.8 壓縮10.8.1 用GZIP進(jìn)行簡單壓縮10.8.2 用Zip進(jìn)行多文件保存10.8.3 Java歸檔(jar)實(shí)用程序10.9 對象串聯(lián)10.9.1 尋找類10.9.2 序列化的控制10.9.3 利用“持久性”10.10 總結(jié)10.11 練習(xí) 第11章 運(yùn)行期類型鑒定11.1 對RTTI的需要11.1.1 Class對象11.1.2 造型前的檢查11.2 RTTI語法11.3 反射:運(yùn)行期類信息11.3.1 一個類方法提取器11.4 總結(jié)11.5 練習(xí) 第12章 傳遞和返回對象12.1 傳遞句柄12.1.1 別名問題12.2 制作本地副本12.2.1 按值傳遞12.2.2 克隆對象12.2.3 使類具有克隆能力12.2.4 成功的克隆12.2.5 Object.clone()的效果12.2.6 克隆合成對象12.2.7 用Vector進(jìn)行深層復(fù)制12.2.8 通過序。
建議你看本書《Think in java》。上邊的講解很容易懂。
學(xué)java:
先把基本語法搞懂,你學(xué)過C++,java的語法和C++很像。你只要著重把他們不同的地方學(xué)清楚就行。
然后搞懂類。java純面向?qū)ο蟮摹K械拇a都在類中。所以你要把java中重要的類學(xué)一遍。比如流類,集合類,數(shù)據(jù)庫操作類,網(wǎng)絡(luò)編程的類等。當(dāng)然,在這之前你要把java面向?qū)ο蟮乃枷肱虲++有什么區(qū)別。這樣你學(xué)習(xí)類的時候就容易多了。
最后多實(shí)踐點(diǎn),學(xué)了類之后,就用你學(xué)的類寫點(diǎn)小程序,加深理解。
API說白了就是別人寫好的類。像上邊說的流類,集合類等都是API。API都有相應(yīng)的文檔供我們學(xué)習(xí)。你學(xué)java基礎(chǔ),一般在下載JDK時會同時下載下相應(yīng)的文檔。沒有的話你可以到官方網(wǎng)站上去下載。
1、對象的初始化(1) 非靜態(tài)對象的初始化 在創(chuàng)建對象時,對象所在類的所有數(shù)據(jù)成員會首先進(jìn)行初始化。
基本類型:int型,初始化為0。 如果為對象:這些對象會按順序初始化。
※在所有類成員初始化完成之后,才調(diào)用本類的構(gòu)造方法創(chuàng)建對象。 構(gòu)造方法的作用就是初始化。
(2) 靜態(tài)對象的初始化 程序中主類的靜態(tài)變量會在main方法執(zhí)行前初始化。 不僅第一次創(chuàng)建對象時,類中的所有靜態(tài)變量都初始化,并且第一次訪問某類(注意此時 未創(chuàng)建此類對象)的靜態(tài)對象時,所有的靜態(tài)變量也要按它們在類中的順序初始化。
2、繼承時,對象的初始化過程 (1) 主類的超類由高到低按順序初始化靜態(tài)成員,無論靜態(tài)成員是否為private。 (2) 主類靜態(tài)成員的初始化。
(3) 主類的超類由高到低進(jìn)行默認(rèn)構(gòu)造方法的調(diào)用。注意,在調(diào)用每一個超類的默認(rèn)構(gòu)造 方法前,先進(jìn)行對此超類進(jìn)行非靜態(tài)對象的初始化。
(4) 主類非靜態(tài)成員的初始化。 (5) 調(diào)用主類的構(gòu)造方法。
3、關(guān)于構(gòu)造方法 (1) 類可以沒有構(gòu)造方法,但如果有多個構(gòu)造方法,就應(yīng)該要有默認(rèn)的構(gòu)造方法,否則在繼承此類時,需要在子類中顯式調(diào)用父類的某一個非默認(rèn)的構(gòu)造方法了。 (2) 在一個構(gòu)造方法中,只能調(diào)用一次其他的構(gòu)造方法,并且調(diào)用構(gòu)造方法的語句必須是 第一條語句。
4、有關(guān)public、private和protected (1) 無public修飾的類,可以被其他類訪問的條件是:a.兩個類在同一文件中,b.兩個類 在同一文件夾中,c.兩個類在同一軟件包中。 (2) protected:繼承類和同一軟件包的類可訪問。
(3) 如果構(gòu)造方法為private,那么在其他類中不能創(chuàng)建該類的對象。 5、抽象類 (1) 抽象類不能創(chuàng)建對象。
(2) 如果一個類中一個方法為抽象方法,則這個類必須為abstract抽象類。 (3) 繼承抽象類的類在類中必須實(shí)現(xiàn)抽象類中的抽象方法。
(4) 抽象類中可以有抽象方法,也可有非抽象方法。抽象方法不能為private。
(5) 間接繼承抽象類的類可以不給出抽象方法的定義。 6、final關(guān)鍵字 (1) 一個對象是常量,不代表不能轉(zhuǎn)變對象的成員,仍可以其成員進(jìn)行操作。
(2) 常量在使用前必須賦值,但除了在聲明的同時初始化外,就只能在構(gòu)造方法中初始化 。 (3) final修飾的方法不能被重置(在子類中不能出現(xiàn)同名方法)。
(4) 如果聲明一個類為final,則所有的方法均為final,無論其是否被final修飾,但數(shù)據(jù) 成員可為final也可不是。 7、接口interface (用implements來實(shí)現(xiàn)接口) (1) 接口中的所有數(shù)據(jù)均為 static和final即靜態(tài)常量。
盡管可以不用這兩個關(guān)鍵字修飾 ,但必須給常量賦初值。 (2) 接口中的方法均為public,在實(shí)現(xiàn)接口類中,實(shí)現(xiàn)方法必須可public關(guān)鍵字。
(3) 如果使用public來修飾接口,則接口必須與文件名相同。 8、多重繼承 (1) 一個類繼承了一個類和接口,那么必須將類寫在前面,接口寫在后面,接口之間用逗 號分隔。
(2) 接口之間可多重繼承,注意使用關(guān)鍵字extends。 (3) 一個類雖只實(shí)現(xiàn)了一個接口,但不僅要實(shí)現(xiàn)這個接口的所有方法,還要實(shí)現(xiàn)這個接口 繼承的接口的方法,接口中的所有方法均須在類中實(shí)現(xiàn)。
9、接口的嵌入 (1) 接口嵌入類中,可以使用private修飾。此時,接口只能在所在的類中實(shí)現(xiàn),其他類不 能訪問。
(2) 嵌入接口中的接口一定要為public。 10、類的嵌入 (1) 類可以嵌入另一個類中,但不能嵌入接口中。
(2) 在靜態(tài)方法或其他方法中,不能直接創(chuàng)建內(nèi)部類對象,需通過手段來取得。 手段有兩種: class A { class B {} B getB() { B b = new B(); return b; } } static void m() { A a = new A(); A.B ab = a.getB(); // 或者是 A.B ab = a.new B(); } (3) 一個類繼承了另一個類的內(nèi)部類,因?yàn)槌愂莾?nèi)部類,而內(nèi)部類的構(gòu)造方法不能自動 被調(diào)用,這樣就需要在子類的構(gòu)造方法中明確的調(diào)用超類的構(gòu)造方法。
接上例: class C extends A.B { C() { new A().super(); // 這一句就實(shí)現(xiàn)了對內(nèi)部類構(gòu)造方法的調(diào)用。 } } 構(gòu)造方法也可這樣寫: C(A a) { a.super(); } // 使用這個構(gòu)造方法創(chuàng)建對象,要寫成C c = new C(a); a是A的對象。
11、異常類 JAVA中除了RunTimeException 類,其他異常均須捕獲或拋出。至于數(shù)據(jù)庫,WEB,JSP,JS之類的那是高級部分了。
java基礎(chǔ)知識如下:
1.繼承、類extends,只能有一個父類,super調(diào)用父類,
2.方法重構(gòu)(名字相同參數(shù)不同),
3.多態(tài)(子類的多樣), final不能繼承-可以被匿名類引用,
上轉(zhuǎn)型。
4.接口、interface 名,沒有方法體,只能implement實(shí)現(xiàn)接口,可以多實(shí)現(xiàn),為實(shí)現(xiàn)類提供實(shí)現(xiàn)方法的模板規(guī)范,可以有成員變量,接口回調(diào)。
5.抽象類、abstract 類,含有抽象方法的類,可以含有非抽象方法,只能繼承不能new,和接口的功能類似。
6.泛型類、class 名稱<;泛型列表>;(不能是基本類型),聲明泛型 。
7.內(nèi)部類、在類內(nèi)部定義的類,只能被這個類使用。
8.匿名類、將一個類的實(shí)現(xiàn)作為一個參數(shù)。
9.異常類、自定義一個類 MyException繼承Exception類,當(dāng)執(zhí)行 StringBuffer類,可以操作字符串的內(nèi)容(截取,代替,獲取);StringTokenizer類,可以解析字符串,有兩個構(gòu)造方法StringTokenizer(字符串,分隔符),分隔符的任意排列組合,返回結(jié)果集,hasMoreTokenizer是否為false來判斷,nextTokens()來獲取下一個對象。
10.正則表達(dá)式、字符串對象調(diào)用matches(正則表達(dá)式),判斷是否和正則表達(dá)式匹配,返回boolean類型;字符串對象調(diào)用replaceAll(正則表達(dá)式,替換的字符串)產(chǎn)生一個將匹配正則表達(dá)式的字串替換后的新的字符串對象;字符串調(diào)用split(正則表達(dá)式),返回一個字符串?dāng)?shù)組,以正則表達(dá)式作為分隔符。
11.字符串解析、用Scanner(字符串)類來分隔字符串,Scanner對象調(diào)用useDelimiter(正則表達(dá)式)來設(shè)置分隔符,返回一個結(jié)果集,可以精細(xì)化的獲取數(shù)字型的結(jié)果,和非數(shù)字型的結(jié)果,hasNext()判斷,next/nextInt/nextDouble獲取下一個。
12.模式匹配、建立模式對象Pattern.compile(正則表達(dá)式),建立匹配對象 Pattern對象.matcher(目標(biāo)字符串),返回結(jié)果集,Matcher對象調(diào)用方法find()尋找返回Boolean(類似next()+hasNext()),group()返回匹配的字符串,replaceAll(替換的字符串)返回一個替換了所以匹配的字串的新的字符串,模式可以用|來連接,即正則表達(dá)式1|正則表達(dá)式2。
-A- AJAX: (建議不譯,原因:專有名詞) [Asynchronous JavaScript and XML,異步JavaScript及XML] annotation: 注解 Ant: (建議不譯,原因:專有名詞) AOP: (建議不譯,原因:專有名詞) [aspect-oriented programming, 面向?qū)用婢幊蘛 application: 應(yīng)用 argument: 參數(shù) -B- B2B: (建議不譯,原因:專有名詞) [Business-to-Business, 業(yè)務(wù)對業(yè)務(wù)] BAM: (建議不譯,原因:專有名詞) [Business Activity Monitoring, 業(yè)務(wù)活動監(jiān)測] BMP: (建議不譯,原因:專有名詞) [bean-managed persistence, Bean管理的持久化] BPEL: (建議不譯,原因:專有名詞) [Business Process Excution Language, 業(yè)務(wù)流程執(zhí)行語言] BPM: (建議不譯,原因:專有名詞) [Business Process Modeling, 業(yè)務(wù)流程建模] build: 建立;編譯 -C- C2B: (建議不譯,原因:專有名詞) [Consumer-to-Business, 客戶對業(yè)務(wù)] CAD: (建議不譯,原因:專有名詞) [Computer Aided Design, 計(jì)算機(jī)輔助設(shè)計(jì)] CAM: (建議不譯,原因:專有名詞) [Computer Aided Modeling, 計(jì)算機(jī)輔助建模] case-insensitive: 大小寫不敏感 case-sensitive: 大小寫敏感 container: 容器 cluster: 集群 CMP: (建議不譯,原因:專有名詞) [container-managed persistence, 容器管理的持久化] component: 組件,部件 configuration: 配置 context: 上下文,環(huán)境 control: 控件 convention: 約定 CORBA: (建議不譯,原因:專有名詞) [Common Object Request Broker Architecture,公共對象請求代理體系] COS: (建議不譯,原因:專有名詞) [Common Object Services,公共對象服務(wù)] couple: 耦合 CRUD: 專指數(shù)據(jù)庫操作create, read, update, delete,可以不譯 -D- Daemon: (建議不譯,原因:專有名詞) [Internet中用于郵件收發(fā)的后臺程序] DAO: (建議不譯,原因:專有名詞) [Data Access Object, 數(shù)據(jù)訪問對象] data: 數(shù)據(jù) DBMS: (建議不譯,原因:專有名詞) [Database Management System, 數(shù)據(jù)庫管理系統(tǒng)] DDL: (建議不譯,原因:專有名詞) [Data Definition Language, 數(shù)據(jù)定義語言] Declarative Programming: 聲明式編程 delegate: 委托 Dependency Injection: 依賴注入 deploy: 部署 deserialize: 反序列化(也可譯為反串行化),即取出 dialect: (行業(yè))術(shù)語 directive: 指令 DIT: (建議不譯,原因:專有名詞) [Directory Information Tree, 目錄信息樹] DML: (建議不譯,原因:專有名詞) [Data Manipulation Language, 數(shù)據(jù)操作語言] DNS: (建議不譯,原因:專有名詞) [Internet Domain Name System, 因特網(wǎng)域名系統(tǒng)] domain: 域 DSL: (建議不譯,原因:專有名詞) [Domain-Specific Languages, 特定領(lǐng)域語言] DTOs: (建議不譯,原因:專有名詞) [data transfer objects, 數(shù)據(jù)傳輸對象] -E- EAI: (建議不譯,原因:專有名詞) [Enterprise Application Integration: 企業(yè)應(yīng)用集成] ECC: (建議不譯,原因:專有名詞) [error correcting codes: 錯誤糾正代碼] EIS: (建議不譯,原因:專有名詞) [Enterprise Information System: 企業(yè)信息系統(tǒng)] EJB: (建議不譯,原因:專有名詞) [Enterprise JavaBean, 企業(yè)JavaBean] encapsulate: 封裝 ESB: (建議不譯,原因:專有名詞) [Enterprise Service Bus, 企業(yè)服務(wù)總線] event: 事件 -F- FAQs: (建議不譯,原因:專有名詞) [Frequently Asked Questions, 經(jīng)常提問的問題] FIFO: 先進(jìn)先出 [First in, First out] fire: 觸發(fā) firewall: 防火墻 framework: 框架 function: 函數(shù) -G- GoF: "四人幫",對名著Design Patterns-Elements of Reusable Object-Oriented Software的四名作者的"戲"稱。
[Gang of Four] granularity: 顆粒性,顆粒度 GUI: (建議不譯,原因:專有名詞) [Graphic User Interface: 圖形用戶接口] GUID: (建議不譯,原因:專有名詞) [Globally Unique Identifier: 全球唯一標(biāo)識符] -H- hard-coding: 硬碥碼 Hibernate: (建議不譯,原因:專有名詞) [一種為應(yīng)用程序提供持久化服務(wù)的框架] -I- IDE: 集成開發(fā)環(huán)境 [Integrated Development Environment] implement: 實(shí)現(xiàn) internet: 因特網(wǎng) (也可以不譯,原因:在中文環(huán)境下已經(jīng)得到充分理解及認(rèn)同) intranet: 企業(yè)內(nèi)部網(wǎng) IoC: (建議不譯,原因:專有名詞) [Inversion of Control, 控制反轉(zhuǎn)] -J- JavaBean: (建議不譯,原因:專有名詞) JCP: (建議不譯,原因:專有名詞) [Java Community Process, Java社區(qū)研究] JDBC: (建議不譯,原因:專有名詞) [Java DataBase Connectivity, Java數(shù)據(jù)庫連接] JDO: (建議不譯,原因:專有名詞) [Java Data Objects, Java數(shù)據(jù)對象] JES: Java企業(yè)系統(tǒng) [Java Enterprise System] JOnAS: (建議不譯,原因:專有名詞) [ Java Open Application Server, Java開放應(yīng)用服務(wù)器] JNDI: (建議不譯,原因:專有名詞) [Java Naming and Directory Interface, Java命名與目錄接口] JTA: (建議不譯,原因:專有名詞) [Java Transaction API: Java事務(wù)API] JVM: (建議不譯,原。
實(shí)現(xiàn)排序有好幾種,我隨便寫一種給你參考下吧。
EXP:實(shí)現(xiàn)Comparator接口來比較對象,實(shí)現(xiàn)排序功能。1.定義一個學(xué)生類Student .java,須重寫toString()方法。
public class Student { private String name; private int age; private int score; public Student(String name, int age, int score) { super(); this.name = name; this.age = age; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } public String toString() { return "Student [name=" + name + ", age=" + age + ", score=" + score + "]"; }}2.寫一個比較類MyComparator.java,須實(shí)現(xiàn)Comparator接口public class MyComparator implements Comparator<Student> { public int compare(Student s1, Student s2) { if (s1.getScore() > s2.getScore()) { return 1; } else if (s1.getScore() < s2.getScore()) { return -1; } else { return 0; } }}3.寫一個測試類Test.javapublic class Test { public static void main(String args[]) throws IOException { new Test().sort(); } private void sort() { Student s1 = new Student("小明", 20, 150); Student s2 = new Student("小艾", 20, 100); Student s3 = new Student("小白", 20, 190); Student s4 = new Student("小黑", 20, 90); Student s5 = new Student("小黃", 20, 130); List<Student> list = new ArrayList<Student>(); list.add(s1); list.add(s2); list.add(s3); list.add(s4); list.add(s5); Collections.sort(list, new MyComparator()); System.out.println(list); }} 4.輸出結(jié)果:[Student [name=小黑, age=20, score=90], Student [name=小艾, age=20, score=100], Student [name=小黃, age=20, score=130], Student [name=小明, age=20, score=150], Student [name=小白, age=20, score=190]]。
可以直接學(xué),先學(xué)習(xí)變量,語法,面向?qū)ο螅赐陼投嗑毩?xí),有個半年就可以繼續(xù)學(xué)習(xí)后面的了,基礎(chǔ)部分多下點(diǎn)功夫,以后省很多功夫,當(dāng)然我現(xiàn)在學(xué)習(xí)java只需要3天就可以完成這部分,因?yàn)槲乙呀?jīng)有c++的基礎(chǔ)了
然后是可以考慮學(xué)習(xí)下JSP,不學(xué)也可以,不學(xué)的話就應(yīng)該學(xué)習(xí)java的程序設(shè)計(jì)了,就是桌面程序的!SWT和AWT是什么,什么是SWING,這些都要知道~
然后是學(xué)下TCP/IP和UDP,做個小程序,然后就隨便了,要有項(xiàng)目才能提高,光看書不行的
聲明:本網(wǎng)站尊重并保護(hù)知識產(chǎn)權(quán),根據(jù)《信息網(wǎng)絡(luò)傳播權(quán)保護(hù)條例》,如果我們轉(zhuǎn)載的作品侵犯了您的權(quán)利,請?jiān)谝粋€月內(nèi)通知我們,我們會及時刪除。
蜀ICP備2020033479號-4 Copyright ? 2016 學(xué)習(xí)鳥. 頁面生成時間:4.176秒