注冊 | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)JAVA及其相關(guān)Java編程思想(第三版)

Java編程思想(第三版)

Java編程思想(第三版)

定 價(jià):¥95.00

作 者: (美)Bruce Eckel著;陳昊鵬,饒若楠等譯;陳昊鵬譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 計(jì)算機(jī)科學(xué)叢書
標(biāo) 簽: Java

ISBN: 9787111162209 出版時(shí)間: 2005-05-01 包裝: 平裝
開本: 26cm+光盤1片 頁數(shù): 796 字?jǐn)?shù):  

內(nèi)容簡介

  內(nèi)容簡介目錄從本書獲得的各項(xiàng)大獎(jiǎng)以及來自世界各地的讀者評論中,不難看出這是一本經(jīng)典之作。本書作者有多年的教學(xué)經(jīng)驗(yàn),對C、C++、Java語言都有獨(dú)到、深入的理解。因此他非常了解如何教授Java語言這門課程,也非常明白語言教學(xué)中的難點(diǎn)及人們的困惑。作者以通俗易懂及小而直接的示例解釋了一個(gè)個(gè)晦澀抽象的概念,精心選取“對讀者理解Java語言來說最為重要”的部分編寫成書。同時(shí)又在隨書光盤中提供了大量參考材料—這也是本書絕對物超所值的地方。隨書光盤沒有包含本書的源代碼(可以從支持網(wǎng)站www.MindView.net免費(fèi)下載),而是提供了大量作者講授的討論課內(nèi)容及本書的前2版內(nèi)容。本書內(nèi)容豐富—從Java的基礎(chǔ)語法到最高級(jí)特性,適合各層次的Java程序員閱讀,同時(shí)也是高等院校講授面向?qū)ο蟪绦蛟O(shè)計(jì)語言及Java語言的絕佳教材。第1章對象導(dǎo)論11.1抽象過程11.2每個(gè)對象都有一個(gè)接口21.3每個(gè)對象都提供服務(wù)41.4被隱藏的具體實(shí)現(xiàn)51.5復(fù)用具體實(shí)現(xiàn)51.6繼承:復(fù)用接口61.7伴隨多態(tài)的可互換對象91.8對象的創(chuàng)建、使用和生命期121.8.1集合與迭代器131.8.2單根繼承結(jié)構(gòu)141.8.3向下轉(zhuǎn)型與模板/泛型151.8.4確保正確清理151.9異常處理:處理錯(cuò)誤161.10并發(fā)性171.11持久性171.12Java與Internet181.12.1Web是什么181.12.2客戶端編程191.12.3服務(wù)器端編程231.12.4應(yīng)用231.13Java為什么成功241.13.1系統(tǒng)易于表達(dá)、易于理解241.13.2類庫的巨大影響力241.13.3錯(cuò)誤處理241.13.4大型程序設(shè)計(jì)241.14Java與C++251.15總結(jié)26第2章一切都是對象272.1用引用操縱對象272.2必須由你創(chuàng)建所有對象282.2.1存儲(chǔ)到什么地方282.2.2特例:基本類型292.2.3Java中的數(shù)組302.3永遠(yuǎn)不需要銷毀對象302.3.1作用域302.3.2對象的作用域312.4創(chuàng)建新的數(shù)據(jù)類型:類312.5方法、參數(shù)和返回值332.6構(gòu)建一個(gè)Java程序352.6.1名字可見性352.6.2運(yùn)用其他構(gòu)件352.6.3static 關(guān)鍵字362.7你的第一個(gè)Java程序372.8注釋和嵌入式文檔392.8.1注釋文檔392.8.2語法392.8.3嵌入式HTML402.8.4一些標(biāo)簽示例412.8.5文檔示例422.9編碼風(fēng)格432.10總結(jié)432.11練習(xí)43第3章控制程序流程453.1使用Java操作符453.1.1優(yōu)先級(jí)453.1.2賦值453.1.3算術(shù)操作符483.1.4自動(dòng)遞增和遞減503.1.5關(guān)系操作符523.1.6邏輯操作符533.1.7按位操作符553.1.8移位操作符563.1.9三元操作符 if-else593.1.10逗號(hào)操作符603.1.11字符串操作符 +603.1.12使用操作符時(shí)常犯的錯(cuò)誤613.1.13類型轉(zhuǎn)換操作符613.1.14Java沒有“sizeof”633.1.15再論優(yōu)先級(jí)633.1.16操作符小結(jié)643.2執(zhí)行流程控制733.2.1true和false733.2.2if-else733.2.3return743.2.4迭代753.2.5do-while763.2.6for763.2.7break和 continue783.2.8switch833.3總結(jié)863.4練習(xí)86第4章初始化與清理894.1用構(gòu)造器確保初始化894.2方法重載914.2.1區(qū)分重載方法934.2.2涉及基本類型的重載934.2.3以返回值區(qū)分重載方法984.2.4缺省構(gòu)造器984.2.5this關(guān)鍵字994.3清理:終結(jié)處理和垃圾回收1024.3.1finalize()的用途何在1034.3.2你必須實(shí)施清理1034.3.3終結(jié)條件1044.3.4垃圾回收器如何工作1054.4成員初始化1074.4.1指定初始化1084.4.2構(gòu)造器初始化1094.5數(shù)組初始化1154.6總結(jié)1214.7練習(xí)122第5章隱藏具體實(shí)現(xiàn)1255.1包:程序庫單元1255.1.1創(chuàng)建獨(dú)一無二的包名1275.1.2定制工具庫1295.1.3用 import改變行為1305.1.4對使用包的忠告1305.2Java訪問權(quán)限修飾詞1315.2.1包訪問權(quán)限1315.2.2public:接口訪問權(quán)限1315.2.3private: 你無法訪問1335.2.4protected:繼承訪問權(quán)限1345.3接口和實(shí)現(xiàn)1355.4類的訪問權(quán)限1365.5總結(jié)1385.6練習(xí)139第6章復(fù)用類1416.1組合語法1416.2繼承語法1446.3結(jié)合使用組合和繼承1486.3.1確保正確清理1496.3.2名稱屏蔽1526.4在組合與繼承之間選擇1536.5protected關(guān)鍵字1556.6增量開發(fā)1566.7向上轉(zhuǎn)型1566.8final關(guān)鍵字1586.8.1final 數(shù)據(jù)1586.8.2final 方法1616.8.3final 類1636.8.4有關(guān)final的忠告1636.9初始化及類的加載1646.10總結(jié)1666.11練習(xí)166第7章多態(tài)1697.1再論向上轉(zhuǎn)型1697.2轉(zhuǎn)機(jī)1727.2.1方法調(diào)用綁定1727.2.2產(chǎn)生正確的行為1737.2.3可擴(kuò)展性1757.2.4缺陷:“覆蓋”私有方法1787.3抽象類和抽象方法1797.4構(gòu)造器和多態(tài)1827.4.1構(gòu)造器的調(diào)用順序1827.4.2繼承與清理1847.4.3構(gòu)造器內(nèi)部的多態(tài)方法的行為1867.5用繼承進(jìn)行設(shè)計(jì)1887.5.1純繼承與擴(kuò)展1897.5.2向下轉(zhuǎn)型與運(yùn)行時(shí)類型識(shí)別1917.6總結(jié)1927.7練習(xí)193第8章接口與內(nèi)部類1958.1接口1958.1.1Java中的多重繼承1988.1.2通過繼承來擴(kuò)展接口2008.1.3群組常量2028.1.4初始化接口中的字段2038.1.5嵌套接口2048.2內(nèi)部類2078.2.1內(nèi)部類與向上轉(zhuǎn)型2088.2.2在方法和作用域內(nèi)的內(nèi)部類2108.2.3匿名內(nèi)部類2118.2.4鏈接到外部類2158.2.5嵌套類2168.2.6引用外圍類的對象2188.2.7從多層嵌套類中訪問外部類的成員2198.2.8內(nèi)部類的繼承2208.2.9內(nèi)部類可以被覆蓋嗎2208.2.10局部內(nèi)部類2228.2.11內(nèi)部類標(biāo)識(shí)符2238.3為什么需要內(nèi)部類2248.3.1閉包與回調(diào)2268.3.2內(nèi)部類與控制框架2288.4總結(jié)2338.5練習(xí)233第9章通過異常處理錯(cuò)誤2359.1基本異常2359.2捕獲異常2379.2.1try塊2379.2.2異常處理程序2379.3創(chuàng)建自定義異常2389.4異常說明2419.5捕獲所有異常2429.5.1重新拋出異常2439.5.2異常鏈2469.6Java標(biāo)準(zhǔn)異常2499.7使用finally進(jìn)行清理2519.7.1finally用來做什么2529.7.2缺憾:異常丟失2549.8異常的限制2559.9構(gòu)造器2589.10異常匹配2609.11其他可選方式2619.11.1歷史2629.11.2觀點(diǎn)2639.11.3把異常傳遞給控制臺(tái)2659.11.4把“被檢查的異?!鞭D(zhuǎn)換為“不檢查的異?!?659.12異常使用指南2679.13總結(jié)2679.14練習(xí)267第10章類型檢查26910.1為什么需要RTTI26910.1.1Class對象27110.1.2類型轉(zhuǎn)換前先做檢查27310.2RTTI語法28210.3反射:運(yùn)行時(shí)的類信息28410.4總結(jié)28810.5練習(xí)288第11章對象的集合29111.1數(shù)組29111.1.1數(shù)組是第一級(jí)對象29211.1.2返回一個(gè)數(shù)組29411.1.3Arrays類29611.1.4填充數(shù)組30211.1.5復(fù)制數(shù)組30411.1.6數(shù)組的比較30511.1.7數(shù)組元素的比較30611.1.8數(shù)組排序30811.1.9在已排序的數(shù)組中查找31011.1.10對數(shù)組的小結(jié)31111.2容器簡介31111.2.1容器的打印31211.2.2填充容器31311.3容器的缺點(diǎn):未知類型31911.3.1有時(shí)候它也能工作32011.3.2制作一個(gè)類型明確的ArrayList32211.4迭代器32311.5容器的分類法32611.6Collection的功能方法32811.7List的功能方法33111.7.1使用LinkedList制作棧33411.7.2使用LinkedList制作隊(duì)列33511.8Set的功能方法33611.9Map的功能方法33911.9.1SortedMap34311.9.2LinkedHashMap34411.9.3散列法與散列碼34511.9.4覆蓋hashCode()35311.10持有引用35611.11再論迭代器36011.12選擇接口的不同實(shí)現(xiàn)36111.12.1對List的選擇36111.12.2對Set的選擇36411.12.3對Map的選擇36611.13List的排序和查詢36811.14實(shí)用方法36911.14.1設(shè)定Collection或Map為不可修改37111.14.2Collection或Map的同步控制37211.15未獲支持的操作37311.16Java 1.0/1.1 的容器37511.16.1Vector和Enumeration37511.16.2Hashtable37611.16.3Stack37611.16.4BitSet37711.17總結(jié)37811.18練習(xí)379第12章Java I/O系統(tǒng)38312.1File類38312.1.1目錄列表器38312.1.2目錄的檢查及創(chuàng)建38612.2輸入和輸出38812.2.1InputStream類型38912.2.2OutputStream類型38912.3添加屬性和有用的接口39012.3.1通過FilterInputStream從Input-Stream讀取數(shù)據(jù)39112.3.2通過FilterOutPutStream向OutputStream寫入39112.4Reader和Writer39212.4.1數(shù)據(jù)的來源和去處39312.4.2更改流的行為39312.4.3未發(fā)生變化的類39412.5自我獨(dú)立的類:RandomAccessFile39412.6I/O流的典型使用方式39512.6.1輸入流39712.6.2輸出流39812.6.3管道流39912.7文件讀寫的實(shí)用工具40012.8標(biāo)準(zhǔn)I/O40112.8.1從標(biāo)準(zhǔn)輸入讀取40112.8.2將System.out轉(zhuǎn)換成PrintWriter40212.8.3標(biāo)準(zhǔn)I/O重定向40212.9新I/O40312.9.1轉(zhuǎn)換數(shù)據(jù)40612.9.2獲取基本類型40912.9.3視圖緩沖器41112.9.4用緩沖器操縱數(shù)據(jù)41512.9.5緩沖器的細(xì)節(jié)41512.9.6存儲(chǔ)器映射文件41912.9.7文件加鎖42212.10壓縮42412.10.1用GZIP進(jìn)行簡單壓縮42412.10.2用Zip進(jìn)行多文件保存42512.10.3Java檔案文件42812.11對象序列化42912.11.1尋找類43212.11.2序列化的控制43312.11.3使用“持久性”44012.12Preferences44512.13正則表達(dá)式44712.13.1創(chuàng)建正則表達(dá)式44712.13.2量詞44812.13.3模式和匹配器44912.13.4split()45512.13.5替換操作45612.13.6reset()45812.13.7正則表達(dá)式和Java I/O45912.13.8需要StringTokenizer嗎45912.14總結(jié)46012.15練習(xí)461第13章并發(fā)46313.1動(dòng)機(jī)46313.2基本線程46413.2.1讓步46613.2.2休眠46713.2.3優(yōu)先權(quán)46913.2.4后臺(tái)線程47113.2.5加入到某個(gè)線程47313.2.6編碼的變體47513.2.7建立有響應(yīng)的用戶界面48013.3共享受限資源48113.3.1不正確地訪問資源48113.3.2資源沖突48413.3.3解決共享資源競爭48613.3.4臨界區(qū)49113.4線程狀態(tài)49513.5線程之間的協(xié)作49613.5.1等待與通知49613.5.2線程間使用管道進(jìn)行輸入/輸出49913.5.3更復(fù)雜的協(xié)作50113.6死鎖50113.7正確的停止方法50413.8中斷阻塞線程50513.9線程組50613.10總結(jié)50713.11練習(xí)508第14章創(chuàng)建窗口與applet程序51114.1applet基礎(chǔ)51214.1.1applet的限制51214.1.2applet的優(yōu)勢51314.1.3應(yīng)用框架51314.1.4在Web瀏覽器中運(yùn)行applet51414.1.5使用Appletviewer工具51614.1.6測試applet51614.2從命令行運(yùn)行applet51714.3創(chuàng)建按鈕52014.4捕獲事件52014.5文本區(qū)域52214.6控制布局52414.6.1BorderLayout52414.6.2FlowLayout52514.6.3GridLayout52514.6.4GridBagLayout52614.6.5絕對定位52614.6.6BoxLayout52614.6.7最好的方式是什么53014.7Swing事件模型53014.7.1事件與監(jiān)聽器的類型53014.7.2跟蹤多個(gè)事件53514.8Swing組件一覽53714.8.1按鈕53814.8.2圖標(biāo)54014.8.3工具提示54214.8.4文本域54214.8.5邊框54414.8.6滾動(dòng)面板54514.8.7一個(gè)迷你編輯器54714.8.8復(fù)選框54814.8.9單選按鈕54914.8.10組合框(下拉列表)55014.8.11列表框55114.8.12頁簽面板55314.8.13消息框55414.8.14菜單55514.8.15彈出式菜單56014.8.16繪圖56214.8.17對話框56414.8.18文件對話框56714.8.19Swing組件上的HTML56914.8.20滑塊與進(jìn)度條57014.8.21樹57114.8.22表格57314.8.23選擇外觀57414.8.24剪貼板57614.9把a(bǔ)pplet打包進(jìn)JAR文件57814.10為applet簽名57914.11JNLP與Java Web Start58314.12編程技術(shù)58714.12.1動(dòng)態(tài)綁定事件58714.12.2將業(yè)務(wù)邏輯與用戶界面邏輯相分離58914.12.3規(guī)范方式59114.13Swing與并發(fā)59114.13.1再論Runnable59114.13.2管理并發(fā)59314.14可視化編程與JavaBean59614.14.1JavaBean是什么59714.14.2使用Introspector抽取出BeanInfo59814.14.3一個(gè)更復(fù)雜的Bean60314.14.4JavaBean與同步60614.14.5把Bean打包60914.14.6對Bean更高級(jí)的支持61014.14.7有關(guān)Bean的其他讀物61114.15總結(jié)61114.16練習(xí)611第15章發(fā)現(xiàn)問題61515.1單元測試61615.1.1一個(gè)簡單的測試框架61715.1.2JUnit62615.2利用斷言提高可靠性63015.2.1斷言語法63015.2.2為“按契約設(shè)計(jì)”使用斷言63315.2.3示例:按契約設(shè)計(jì)+白盒單元測試63515.3用Ant構(gòu)建63915.3.1使所有事物自動(dòng)化63915.3.2使用make的問題64015.3.3Ant:事實(shí)上的標(biāo)準(zhǔn)64015.3.4用CVS進(jìn)行版本控制64315.3.5每日構(gòu)建64515.4日志64515.4.1日志級(jí)別64715.4.2LogRecord64915.4.3處理器65015.4.4過濾器65415.4.5格式器65515.4.6例子:發(fā)送email報(bào)告日志消息65615.4.7通過名字空間控制日志級(jí)別65815.4.8大型工程的日志實(shí)踐66015.4.9小結(jié)66215.5調(diào)試66315.5.1使用JDB調(diào)試66315.5.2圖形化調(diào)試器66715.6剖析和優(yōu)化66715.6.1追蹤內(nèi)存消費(fèi)66815.6.2追蹤C(jī)PU的使用66815.6.3覆蓋測試66815.6.4JVM剖析接口66815.6.5使用HPROF66915.6.6線程性能67015.6.7優(yōu)化指南67115.7doclet67115.8總結(jié)67215.9練習(xí)673第16章分析與設(shè)計(jì)67516.1方法學(xué)67516.2階段0:制定計(jì)劃67616.3階段1:做什么67716.4階段2:如何構(gòu)建67916.4.1對象設(shè)計(jì)的五個(gè)階段68016.4.2對象開發(fā)指南68116.5階段3:構(gòu)建系統(tǒng)核心68116.6階段4:迭代用例68116.7階段5:演化68216.8成功的計(jì)劃68316.9極限編程68316.9.1優(yōu)先編寫測試68316.9.2結(jié)對編程68416.10過渡策略68516.10.1指南68516.10.2管理上的障礙68616.11總結(jié)687附錄A對象的傳遞與返回689附錄BJava編程指南723附錄C補(bǔ)充材料731附錄D資源735索引739

作者簡介

  作者:BruceEckelBruceEckel從1986年至今,已經(jīng)發(fā)表了超過150篇計(jì)算機(jī)技術(shù)文章,出版了6本書(其中4本是關(guān)于C++的),并且在全世界做了數(shù)百次演講。他是《ThinkinginJava》、《ThinkinginC++》、《C++Inside&Out》《UsingC++》和《ThinkinginPatterns》的作者,同時(shí)還是《BlackBeltC++》文集的編輯。他的《ThinkinginC++》一本書在1995年被評為“最佳軟件開發(fā)圖書”,《ThinkinginJava》被評為1999年JavaWorld“最愛讀者歡迎圖書”,并且贏得了編輯首選圖書獎(jiǎng)。C++編程思想第2卷:實(shí)用編程技術(shù)>>更多作品

圖書目錄

第1章  對象導(dǎo)論        1
1.1  抽象過程        1
1.2  每個(gè)對象都有一個(gè)接口        2
1.3  每個(gè)對象都提供服務(wù)        4
1.4  被隱藏的具體實(shí)現(xiàn)        5
1.5  復(fù)用具體實(shí)現(xiàn)        5
1.6  繼承:復(fù)用接口        6
1.7  伴隨多態(tài)的可互換對象        9
1.8  對象的創(chuàng)建、使用和生命期        12
1.8.1  集合與迭代器        13
1.8.2  單根繼承結(jié)構(gòu)        14
1.8.3  向下轉(zhuǎn)型與模板/泛型        15
1.8.4  確保正確清理        15
1.9  異常處理:處理錯(cuò)誤        16
1.10  并發(fā)性        17
1.11  持久性        17
1.12  Java與Internet        18
1.12.1  Web是什么        18
1.12.2  客戶端編程        19
1.12.3  服務(wù)器端編程        23
1.12.4  應(yīng)用        23
1.13  Java為什么成功        24
1.13.1  系統(tǒng)易于表達(dá)、易于理解        24
1.13.2  類庫的巨大影響力        24
1.13.3  錯(cuò)誤處理        24
1.13.4  大型程序設(shè)計(jì)        24
1.14  Java與C++        25
1.15  總結(jié)        26
第2章  一切都是對象        27
2.1  用引用操縱對象        27
2.2  必須由你創(chuàng)建所有對象        28
2.2.1  存儲(chǔ)到什么地方        28
2.2.2  特例:基本類型        29
2.2.3  Java中的數(shù)組        30
2.3  永遠(yuǎn)不需要銷毀對象        30
2.3.1  作用域        30
2.3.2  對象的作用域        31
2.4  創(chuàng)建新的數(shù)據(jù)類型:類        31
2.5  方法、參數(shù)和返回值        33
2.6  構(gòu)建一個(gè)Java程序        35
2.6.1  名字可見性        35
2.6.2  運(yùn)用其他構(gòu)件        35
2.6.3  static 關(guān)鍵字        36
2.7  你的第一個(gè)Java程序        37
2.8  注釋和嵌入式文檔        39
2.8.1  注釋文檔        39
2.8.2  語法        39
2.8.3  嵌入式HTML        40
2.8.4  一些標(biāo)簽示例        41
2.8.5  文檔示例        42
2.9  編碼風(fēng)格        43
2.10  總結(jié)        43
2.11  練習(xí)        43
第3章  控制程序流程        45
3.1  使用Java操作符        45
3.1.1  優(yōu)先級(jí)        45
3.1.2  賦值        45
3.1.3  算術(shù)操作符        48
3.1.4  自動(dòng)遞增和遞減        50
3.1.5  關(guān)系操作符        52
3.1.6  邏輯操作符        53
3.1.7  按位操作符        55
3.1.8  移位操作符        56
3.1.9  三元操作符 if-else        59
3.1.10  逗號(hào)操作符        60
3.1.11  字符串操作符 +        60
3.1.12  使用操作符時(shí)常犯的錯(cuò)誤        61
3.1.13  類型轉(zhuǎn)換操作符        61
3.1.14  Java沒有“sizeof”        63
3.1.15  再論優(yōu)先級(jí)        63
3.1.16  操作符小結(jié)        64
3.2  執(zhí)行流程控制        73
3.2.1  true和false        73
3.2.2  if-else        73
3.2.3  return        74
3.2.4  迭代        75
3.2.5  do-while        76
3.2.6  for        76
3.2.7  break和 continue        78
3.2.8  switch        83
3.3  總結(jié)        86
3.4  練習(xí)        86
第4章  初始化與清理        89
4.1  用構(gòu)造器確保初始化        89
4.2  方法重載        91
4.2.1  區(qū)分重載方法        93
4.2.2  涉及基本類型的重載        93
4.2.3  以返回值區(qū)分重載方法        98
4.2.4  缺省構(gòu)造器        98
4.2.5  this關(guān)鍵字        99
4.3  清理:終結(jié)處理和垃圾回收        102
4.3.1  finalize()的用途何在        103
4.3.2  你必須實(shí)施清理        103
4.3.3  終結(jié)條件        104
4.3.4  垃圾回收器如何工作        105
4.4  成員初始化        107
4.4.1  指定初始化        108
4.4.2  構(gòu)造器初始化        109
4.5  數(shù)組初始化        115
4.6  總結(jié)        121
4.7  練習(xí)        122
第5章  隱藏具體實(shí)現(xiàn)        125
5.1  包:程序庫單元        125
5.1.1  創(chuàng)建獨(dú)一無二的包名        127
5.1.2  定制工具庫        129
5.1.3  用 import改變行為        130
5.1.4  對使用包的忠告        130
5.2  Java訪問權(quán)限修飾詞        131
5.2.1  包訪問權(quán)限        131
5.2.2  public:接口訪問權(quán)限        131
5.2.3  private: 你無法訪問        133
5.2.4  protected:繼承訪問權(quán)限        134
5.3  接口和實(shí)現(xiàn)        135
5.4  類的訪問權(quán)限        136
5.5  總結(jié)        138
5.6  練習(xí)        139
第6章  復(fù)用類        141
6.1  組合語法        141
6.2  繼承語法        144
6.3  結(jié)合使用組合和繼承        148
6.3.1  確保正確清理        149
6.3.2  名稱屏蔽        152
6.4  在組合與繼承之間選擇        153
6.5  protected關(guān)鍵字        155
6.6  增量開發(fā)        156
6.7  向上轉(zhuǎn)型        156
6.8  final關(guān)鍵字        158
6.8.1  final 數(shù)據(jù)        158
6.8.2  final 方法        161
6.8.3  final 類        163
6.8.4  有關(guān)final的忠告        163
6.9  初始化及類的加載        164
6.10  總結(jié)        166
6.11  練習(xí)        166
第7章  多態(tài)        169
7.1  再論向上轉(zhuǎn)型        169
7.2  轉(zhuǎn)機(jī)        172
7.2.1  方法調(diào)用綁定        172
7.2.2  產(chǎn)生正確的行為        173
7.2.3  可擴(kuò)展性        175
7.2.4  缺陷:“覆蓋”私有方法        178
7.3  抽象類和抽象方法        179
7.4  構(gòu)造器和多態(tài)        182
7.4.1  構(gòu)造器的調(diào)用順序        182
7.4.2  繼承與清理        184
7.4.3  構(gòu)造器內(nèi)部的多態(tài)方法的行為        186
7.5  用繼承進(jìn)行設(shè)計(jì)        188
7.5.1  純繼承與擴(kuò)展        189
7.5.2  向下轉(zhuǎn)型與運(yùn)行時(shí)類型識(shí)別        191
7.6  總結(jié)        192
7.7  練習(xí)        193
第8章  接口與內(nèi)部類        195
8.1  接口        195
8.1.1  Java中的多重繼承        198
8.1.2  通過繼承來擴(kuò)展接口        200
8.1.3  群組常量        202
8.1.4  初始化接口中的字段        203
8.1.5  嵌套接口        204
8.2  內(nèi)部類        207
8.2.1  內(nèi)部類與向上轉(zhuǎn)型        208
8.2.2  在方法和作用域內(nèi)的內(nèi)部類        210
8.2.3  匿名內(nèi)部類        211
8.2.4  鏈接到外部類        215
8.2.5  嵌套類        216
8.2.6  引用外圍類的對象        218
8.2.7  從多層嵌套類中訪問外部類的成員        219
8.2.8  內(nèi)部類的繼承        220
8.2.9  內(nèi)部類可以被覆蓋嗎        220
8.2.10  局部內(nèi)部類        222
8.2.11  內(nèi)部類標(biāo)識(shí)符        223
8.3  為什么需要內(nèi)部類        224
8.3.1  閉包與回調(diào)        226
8.3.2  內(nèi)部類與控制框架        228
8.4  總結(jié)        233
8.5  練習(xí)        233
第9章  通過異常處理錯(cuò)誤        235
9.1  基本異常        235
9.2  捕獲異常        237
9.2.1  try塊        237
9.2.2  異常處理程序        237
9.3  創(chuàng)建自定義異常        238
9.4  異常說明        241
9.5  捕獲所有異常        242
9.5.1  重新拋出異常        243
9.5.2  異常鏈        246
9.6  Java標(biāo)準(zhǔn)異常        249
9.7  使用finally進(jìn)行清理        251
9.7.1  finally用來做什么        252
9.7.2  缺憾:異常丟失        254
9.8  異常的限制        255
9.9  構(gòu)造器        258
9.10  異常匹配        260
9.11  其他可選方式        261
9.11.1  歷史        262
9.11.2  觀點(diǎn)        263
9.11.3  把異常傳遞給控制臺(tái)        265
9.11.4  把“被檢查的異常”轉(zhuǎn)換為“不檢查的異?!?nbsp;       265
9.12  異常使用指南        267
9.13  總結(jié)        267
9.14  練習(xí)        267
第10章  類型檢查        269
10.1  為什么需要RTTI        269
10.1.1  Class對象        271
10.1.2  類型轉(zhuǎn)換前先做檢查        273
10.2  RTTI語法        282
10.3  反射:運(yùn)行時(shí)的類信息        284
10.4  總結(jié)        288
10.5  練習(xí)        288
第11章  對象的集合        291
11.1  數(shù)組        291
11.1.1  數(shù)組是第一級(jí)對象        292
11.1.2  返回一個(gè)數(shù)組        294
11.1.3  Arrays類        296
11.1.4  填充數(shù)組        302
11.1.5  復(fù)制數(shù)組        304
11.1.6  數(shù)組的比較        305
11.1.7  數(shù)組元素的比較        306
11.1.8  數(shù)組排序        308
11.1.9  在已排序的數(shù)組中查找        310
11.1.10  對數(shù)組的小結(jié)        311
11.2  容器簡介        311
11.2.1  容器的打印        312
11.2.2  填充容器        313
11.3  容器的缺點(diǎn):未知類型        319
11.3.1  有時(shí)候它也能工作        320
11.3.2  制作一個(gè)類型明確的ArrayList        322
11.4  迭代器        323
11.5  容器的分類法        326
11.6  Collection的功能方法        328
11.7  List的功能方法        331
11.7.1  使用LinkedList制作棧        334
11.7.2  使用LinkedList制作隊(duì)列        335
11.8  Set的功能方法        336
11.9  Map的功能方法        339
11.9.1  SortedMap        343
11.9.2  LinkedHashMap        344
11.9.3  散列法與散列碼        345
11.9.4  覆蓋hashCode()        353
11.10  持有引用        356
11.11  再論迭代器        360
11.12  選擇接口的不同實(shí)現(xiàn)        361
11.12.1  對List的選擇        361
11.12.2  對Set的選擇        364
11.12.3  對Map的選擇        366
11.13  List的排序和查詢        368
11.14  實(shí)用方法        369
11.14.1  設(shè)定Collection或Map為不可修改        371
11.14.2  Collection或Map的同步控制        372
11.15  未獲支持的操作        373
11.16  Java 1.0/1.1 的容器        375
11.16.1  Vector和Enumeration        375
11.16.2  Hashtable        376
11.16.3  Stack        376
11.16.4  BitSet        377
11.17  總結(jié)        378
11.18  練習(xí)        379
第12章  Java I/O系統(tǒng)        383
12.1  File類        383
12.1.1  目錄列表器        383
12.1.2  目錄的檢查及創(chuàng)建        386
12.2  輸入和輸出        388
12.2.1  InputStream類型        389
12.2.2  OutputStream類型        389
12.3  添加屬性和有用的接口        390
12.3.1  通過FilterInputStream從Input-Stream讀取數(shù)據(jù)        391
12.3.2  通過FilterOutPutStream向OutputStream寫入        391
12.4  Reader和Writer        392
12.4.1  數(shù)據(jù)的來源和去處        393
12.4.2  更改流的行為        393
12.4.3  未發(fā)生變化的類        394
12.5  自我獨(dú)立的類:RandomAccessFile        394
12.6  I/O流的典型使用方式        395
12.6.1  輸入流        397
12.6.2  輸出流        398
12.6.3  管道流        399
12.7  文件讀寫的實(shí)用工具        400
12.8  標(biāo)準(zhǔn)I/O        401
12.8.1  從標(biāo)準(zhǔn)輸入讀取        401
12.8.2  將System.out轉(zhuǎn)換成PrintWriter        402
12.8.3  標(biāo)準(zhǔn)I/O重定向        402
12.9  新I/O        403
12.9.1  轉(zhuǎn)換數(shù)據(jù)        406
12.9.2  獲取基本類型        409
12.9.3  視圖緩沖器        411
12.9.4  用緩沖器操縱數(shù)據(jù)        415
12.9.5  緩沖器的細(xì)節(jié)        415
12.9.6  存儲(chǔ)器映射文件        419
12.9.7  文件加鎖        422
12.10  壓縮        424
12.10.1  用GZIP進(jìn)行簡單壓縮        424
12.10.2  用Zip進(jìn)行多文件保存        425
12.10.3  Java檔案文件        428
12.11  對象序列化        429
12.11.1  尋找類        432
12.11.2  序列化的控制        433
12.11.3  使用“持久性”        440
12.12  Preferences        445
12.13  正則表達(dá)式        447
12.13.1  創(chuàng)建正則表達(dá)式        447
12.13.2  量詞        448
12.13.3  模式和匹配器        449
12.13.4  split()        455
12.13.5  替換操作        456
12.13.6  reset()        458
12.13.7  正則表達(dá)式和Java I/O        459
12.13.8  需要StringTokenizer嗎        459
12.14  總結(jié)        460
12.15  練習(xí)        461
第13章  并發(fā)        463
13.1  動(dòng)機(jī)        463
13.2  基本線程        464
13.2.1  讓步        466
13.2.2  休眠        467
13.2.3  優(yōu)先權(quán)        469
13.2.4  后臺(tái)線程        471
13.2.5  加入到某個(gè)線程        473
13.2.6  編碼的變體        475
13.2.7  建立有響應(yīng)的用戶界面        480
13.3  共享受限資源        481
13.3.1  不正確地訪問資源        481
13.3.2  資源沖突        484
13.3.3  解決共享資源競爭        486
13.3.4  臨界區(qū)        491
13.4  線程狀態(tài)        495
13.5  線程之間的協(xié)作        496
13.5.1  等待與通知        496
13.5.2  線程間使用管道進(jìn)行輸入/輸出        499
13.5.3  更復(fù)雜的協(xié)作        501
13.6  死鎖        501
13.7  正確的停止方法        504
13.8  中斷阻塞線程        505
13.9  線程組        506
13.10  總結(jié)        507
13.11  練習(xí)        508
第14章  創(chuàng)建窗口與applet程序        511
14.1  applet基礎(chǔ)        512
14.1.1  applet的限制        512
14.1.2  applet的優(yōu)勢        513
14.1.3  應(yīng)用框架        513
14.1.4  在Web瀏覽器中運(yùn)行applet        514
14.1.5  使用Appletviewer工具        516
14.1.6  測試applet        516
14.2  從命令行運(yùn)行applet        517
14.3  創(chuàng)建按鈕        520
14.4  捕獲事件        520
14.5  文本區(qū)域        522
14.6  控制布局        524
14.6.1  BorderLayout        524
14.6.2  FlowLayout        525
14.6.3  GridLayout        525
14.6.4  GridBagLayout        526
14.6.5  絕對定位        526
14.6.6  BoxLayout        526
14.6.7  最好的方式是什么        530
14.7  Swing事件模型        530
14.7.1  事件與監(jiān)聽器的類型        530
14.7.2  跟蹤多個(gè)事件        535
14.8  Swing組件一覽        537
14.8.1  按鈕        538
14.8.2  圖標(biāo)        540
14.8.3  工具提示        542
14.8.4  文本域        542
14.8.5  邊框        544
14.8.6  滾動(dòng)面板        545
14.8.7  一個(gè)迷你編輯器        547
14.8.8  復(fù)選框        548
14.8.9  單選按鈕        549
14.8.10  組合框(下拉列表)        550
14.8.11  列表框        551
14.8.12  頁簽面板        553
14.8.13  消息框        554
14.8.14  菜單        555
14.8.15  彈出式菜單        560
14.8.16  繪圖        562
14.8.17  對話框        564
14.8.18  文件對話框        567
14.8.19  Swing組件上的HTML        569
14.8.20  滑塊與進(jìn)度條        570
14.8.21  樹        571
14.8.22  表格        573
14.8.23  選擇外觀        574
14.8.24  剪貼板        576
14.9  把a(bǔ)pplet打包進(jìn)JAR文件        578
14.10  為applet簽名        579
14.11  JNLP與Java Web Start        583
14.12  編程技術(shù)        587
14.12.1  動(dòng)態(tài)綁定事件        587
14.12.2  將業(yè)務(wù)邏輯與用戶界面邏輯相分離        589
14.12.3  規(guī)范方式        591
14.13  Swing與并發(fā)        591
14.13.1  再論Runnable        591
14.13.2  管理并發(fā)        593
14.14  可視化編程與JavaBean        596
14.14.1  JavaBean是什么        597
14.14.2  使用Introspector抽取出BeanInfo        598
14.14.3  一個(gè)更復(fù)雜的Bean        603
14.14.4  JavaBean與同步        606
14.14.5  把Bean打包        609
14.14.6  對Bean更高級(jí)的支持        610
14.14.7  有關(guān)Bean的其他讀物        611
14.15  總結(jié)        611
14.16  練習(xí)        611
第15章  發(fā)現(xiàn)問題        615
15.1  單元測試        616
15.1.1  一個(gè)簡單的測試框架        617
15.1.2  JUnit        626
15.2  利用斷言提高可靠性        630
15.2.1  斷言語法        630
15.2.2  為“按契約設(shè)計(jì)”使用斷言        633
15.2.3  示例:按契約設(shè)計(jì)+白盒單元測試        635
15.3  用Ant構(gòu)建        639
15.3.1  使所有事物自動(dòng)化        639
15.3.2  使用make的問題        640
15.3.3  Ant:事實(shí)上的標(biāo)準(zhǔn)        640
15.3.4  用CVS進(jìn)行版本控制        643
15.3.5  每日構(gòu)建        645
15.4  日志        645
15.4.1  日志級(jí)別        647
15.4.2  LogRecord        649
15.4.3  處理器        650
15.4.4  過濾器        654
15.4.5  格式器        655
15.4.6  例子:發(fā)送email報(bào)告日志消息        656
15.4.7  通過名字空間控制日志級(jí)別        658
15.4.8  大型工程的日志實(shí)踐        660
15.4.9  小結(jié)        662
15.5  調(diào)試        663
15.5.1  使用JDB調(diào)試        663
15.5.2  圖形化調(diào)試器        667
15.6  剖析和優(yōu)化        667
15.6.1  追蹤內(nèi)存消費(fèi)        668
15.6.2  追蹤C(jī)PU的使用        668
15.6.3  覆蓋測試        668
15.6.4  JVM剖析接口        668
15.6.5  使用HPROF        669
15.6.6  線程性能        670
15.6.7  優(yōu)化指南        671
15.7  doclet        671
15.8  總結(jié)        672
15.9  練習(xí)        673
第16章  分析與設(shè)計(jì)        675
16.1  方法學(xué)        675
16.2  階段0:制定計(jì)劃        676
16.3  階段1:做什么        677
16.4  階段2:如何構(gòu)建        679
16.4.1  對象設(shè)計(jì)的五個(gè)階段        680
16.4.2  對象開發(fā)指南        681
16.5  階段3:構(gòu)建系統(tǒng)核心        681
16.6  階段4:迭代用例        681
16.7  階段5:演化        682
16.8  成功的計(jì)劃        683
16.9  極限編程        683
16.9.1  優(yōu)先編寫測試        683
16.9.2  結(jié)對編程        684
16.10  過渡策略        685
16.10.1  指南        685
16.10.2  管理上的障礙        686
16.11  總結(jié)        687
附錄A  對象的傳遞與返回        689
附錄B  Java編程指南        723
附錄C  補(bǔ)充材料        731
附錄D  資源        735
索引        739

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)