學(xué)習(xí)java的步驟和一些必看的書籍五_第1頁(yè)
學(xué)習(xí)java的步驟和一些必看的書籍五_第2頁(yè)
學(xué)習(xí)java的步驟和一些必看的書籍五_第3頁(yè)
學(xué)習(xí)java的步驟和一些必看的書籍五_第4頁(yè)
學(xué)習(xí)java的步驟和一些必看的書籍五_第5頁(yè)
已閱讀5頁(yè),還剩4頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、學(xué)習(xí)java的步驟和一些必看的書籍 五 1.Java語(yǔ)言基礎(chǔ) Bruce Eckel的ThinkinginJava 講解的視頻翁愷JAVA語(yǔ)言 初學(xué)者不太推薦使用Thinking in Java,我比較推薦Prentice Hall PTR 的CoreJava2國(guó)內(nèi)稱為Java 2 核心技術(shù),目前是第七版。網(wǎng)絡(luò)上大家都可以下載到電子版。Oreilly的Java inanutshell也是一個(gè)不錯(cuò)的選擇。讀完以上兩本后,你可以看看翁愷老師的視頻,接著可以研究Thinking in Java了。 2. Java數(shù)據(jù)結(jié)構(gòu) 大致有APress 的Java Collections,Jones和Bartl

2、ett的DataStructures in Java、 Object-oriented Data StructuresUsingJava以及Prentice Hall 出版的Data Structures and Algorithms in Java(Dec19, 2005)還有一本就是Data Structures And Algorithms WithObject-orientedDesign Patterns In Java。很幸運(yùn)我的第一本英文書就是APress的JavaCollections(本書在國(guó)內(nèi)可能根本就沒有中文版只能下載英文版了),很不錯(cuò),講得很有條例、很簡(jiǎn)單,是一本完完全

3、全JavaCollectionsAPI介紹的書籍,其中不凡有擴(kuò)展API的例子。這是我推薦你學(xué)習(xí)java數(shù)據(jù)結(jié)構(gòu)的唯一一本好書。其它的Jones和Bartlett的那兩本國(guó)內(nèi)好像有一本中文版,想看你也可以看看。 在學(xué)習(xí)完API后,你可以看看java.util包中對(duì)應(yīng)的類了。不過只有在學(xué)習(xí)過設(shè)計(jì)模式后你才有可能完全理解整個(gè)Java CollectionsFramework。JavaCollectionsFramework使用了很多著名的設(shè)計(jì)模式如:迭代器(Iterator)模式,工廠方法模式、裝飾器模式、適配器模式等等。通過研究java.util包中數(shù)據(jù)結(jié)構(gòu)的源代碼,你可以知道臭名昭著的Prope

4、rties類的設(shè)計(jì)了,同時(shí)可能基本具備設(shè)計(jì)簡(jiǎn)單的數(shù)據(jù)結(jié)構(gòu)的能力了。所謂學(xué)習(xí)無止境,學(xué)習(xí)完Sun提供了Java Collections Framework后,你可以研究Apche的另一個(gè)Java Collections Framework,很有意思哦。互為補(bǔ)充的兩個(gè)Framework。 在大家學(xué)習(xí)、研究Java Collections之前,我提示一下Java Collections主要包括以下三部分:接口(Interface)、實(shí)現(xiàn)(Implemention)和算法(Algorithm)。 1. 接口主要有List、Set、Queue和 Map。List 、Se t和Queue是 Collect

5、ion接口的子接口。 2.實(shí)現(xiàn)主要是實(shí)現(xiàn)這些接口的具體類。如實(shí)現(xiàn)List接口的ArrayList、LinkedList、Stack和Vector;實(shí)現(xiàn)Set接口的HashSet、TreeSet和LinkedHashSet;實(shí)現(xiàn)Queue接口的PriorityQueue、SynchronousQueue等等;實(shí)現(xiàn)Map接口的HashMap、TreeMap、Hashtable、Properties、WeakHashMap等等。 3. 算法主要是由Arrays類和Collections類提供的,它是整個(gè)Java Collection Framework算法的核心。支持各種類型的排序,查找等常用操作。

6、 Java Collections中包含兩個(gè)版本的數(shù)據(jù)結(jié)構(gòu),主要是原先的支持同步的數(shù)據(jù)結(jié)構(gòu)和后來不支持同步的數(shù)據(jù)結(jié)構(gòu)。 Java Collection Framework在使用Comparator和Compara ble接口支持排序。同時(shí)提供新舊兩個(gè)版本的迭代器Iterator和Enumeraton,以及它們?nèi)绾无D(zhuǎn)換等等。 在java.util包中的Obserable接口和Observer類是考察者模式的核心。 3. Java IO 市面上關(guān)于IO的書籍也僅僅只有Oreilly出版社的兩本,都是ElliotteRustyHarold的著作。兩本書的風(fēng)格基本一致,推薦閱讀是第一版的JvavaI/

7、O,講得比較淺顯,內(nèi)容相對(duì)比較集中,實(shí)例也很多。第二版今年5月國(guó)外才出版,很有幸我在網(wǎng)絡(luò)上下載了第二版,講得極其詳細(xì)726頁(yè)的大塊頭(我化了兩個(gè)星期),這次將NIO和IO和在一起,還包括J2ME部分的,不過串口、并口通信部分好像類庫(kù)支持不夠,自己不能實(shí)際操作。 與第一版的Jvava I/O一起的Oreilly還有一本Jvava NIO,也是很不錯(cuò)的哦。 大家在依次閱讀完Jvava I/O以及Jvava NIO后,可以研究java.io包中的源代碼了。在大家研究源代碼前我給點(diǎn)提示: Java的io包主要包括: 1. 兩種流:字節(jié)流(byte Stream)和字符流(character strea

8、m),這兩種流不存在所謂的誰代替誰、誰比誰高級(jí)之說,它們互為補(bǔ)充,只是側(cè)重點(diǎn)不同而已。 2. 兩種對(duì)稱:1.字節(jié)流、字符流的對(duì)稱;2.輸入、輸出的對(duì)稱。 3. 一個(gè)橋梁:將字節(jié)流轉(zhuǎn)變?yōu)樽址鞯腎nputStreamReader和OutputStreamWriter。 其中必須注意: 1. PipedInputStream和PipedOutputStrem是兩個(gè)比較有趣的類。 2. 支持Buffered的流是我們經(jīng)常使用的類。 3. 裝飾器(Decorator)模式在java最著名的應(yīng)用就是用于io的設(shè)計(jì)。仔細(xì)研究各個(gè)Filter流與具體流的關(guān)系,多看設(shè)計(jì)模式的書籍。相信你會(huì)有所所獲。 4. 學(xué)

9、習(xí)好io包,是研究net包,rmi包的基礎(chǔ)哦! 4 . Java數(shù)據(jù)庫(kù) 數(shù)據(jù)庫(kù)的書籍太多太多了,也是太爛太爛了!這方面的書我基本都研究過,推薦的你就看看Apress的JDBC Recipes AProblemSolutionApproach很不錯(cuò),國(guó)外2005年底才出版,(國(guó)內(nèi)好像沒有中文版,不過出了中文版也不一定值得看國(guó)內(nèi)經(jīng)常將國(guó)外的書翻譯得一塌糊涂、不堪入目)不過我們真的很幸運(yùn),網(wǎng)絡(luò)上有電子版的。值得一看。推薦我看的第一本比較滿意的Wiley出版的JavaDatabaseBible,講得很不錯(cuò)!Sun公司自己的關(guān)于JDBC API介紹的那一本JDBC APITutorialandRefer

10、nece也不錯(cuò)。我第二本JDBC的就是研究的這套API。 不過目前這些書都是一些相對(duì)比較浮淺的API應(yīng)用的書籍。有機(jī)會(huì)我會(huì)給大家?guī)斫榻BJDBC API以及JDBC實(shí)現(xiàn)內(nèi)部細(xì)節(jié)的書!我盡快努力,同時(shí)希望得到大家的支持! 順便給學(xué)習(xí)JDBC的朋友一點(diǎn)提示: JDBC的學(xué)習(xí)和使用主要是這套API,其使用過程也是極其簡(jiǎn)單,下面是使用JDBC的一般流程: 1. 加載 某個(gè)數(shù)據(jù)庫(kù)的驅(qū)動(dòng)(Driver類),通常使用Class.forName(“驅(qū)動(dòng)的類名“); 2. 連接數(shù)據(jù)庫(kù) Connection con = DriverManager.getConnection(url,username,passwo

11、rd); 3. 得到會(huì)話Statement stmt = con.createStatement(); 4. 執(zhí)行操作Result rs = stmt.executeQuery(“SQL查詢語(yǔ)句”); 5. 處理結(jié)果 while(rs.next() String col1 = rs.getString(1); 簡(jiǎn)單吧!整個(gè)JDBC中可以變化的一般是: 1. 可以由Connection對(duì)象創(chuàng)建Statement、PreparedStatement和CallableStatement創(chuàng)建三種類型的Statement。 2. 可以創(chuàng)建多種類型的ResultSet:支持單向移動(dòng)和個(gè)自由移動(dòng);可更新的和

12、不可更新的;支持不同等級(jí)的交易的. 3. 數(shù)據(jù)輸入的批處理。 4. 結(jié)果集中特殊類型(Blob、Clob、Arrary和Ref、Struct)列的操作。 5. 這些特殊類型的錄入數(shù)據(jù)庫(kù)。 6. javax.sql包中特殊結(jié)果集(CachedRowSet、JdbcRowSet、WebRowSet)的操作。 7. 其它的就是一個(gè)DataSource了,也很簡(jiǎn)單!一個(gè)J2EE中的被管理對(duì)象 簡(jiǎn)單吧!相信大家很快就會(huì)征服JDBC。 5. Java 網(wǎng)絡(luò)編程 網(wǎng)絡(luò)編程一個(gè)神秘的、充滿挑戰(zhàn)的方向。不過在談Java網(wǎng)絡(luò)編程之前首先感謝Sun公司的開發(fā)人員,因?yàn)樗鼈兲觳诺脑O(shè)想,充滿智慧的架構(gòu),使廣大java程

13、序員學(xué)習(xí)java網(wǎng)絡(luò)編程變得異常簡(jiǎn)單。 Java網(wǎng)絡(luò)編程方面的書,我推薦O'Reilly的JavaNetworkProgramming,目前已經(jīng)第三版了,以前的版本市面上肯定有!網(wǎng)絡(luò)上早有第三版的電子版,國(guó)外2004年出版,706頁(yè)哦!講得很全,比較深入,太深入的可能由于Sun有些東西沒有完全公開,所以也就不好講了,有興趣的可以下載看看!第二本還是O'Reilly1998年出版的Javadistributed computing ,基礎(chǔ)部分寫得比較詳細(xì),后面的實(shí)例還是值得研究的。 在大家閱讀這些書之前,給大家一點(diǎn)提示: java網(wǎng)絡(luò)編程其實(shí)相對(duì)比較簡(jiǎn)單,入門也很

14、快很快。java網(wǎng)絡(luò)編程主要包括兩個(gè)部分:1.Socket;2.URL部分。不過第二部分也完全建立在第一部分的基礎(chǔ)上。 1. Socket包括客戶端的Socket和服務(wù)器端的ServerSocket。還有就是DatagramSocket和DatagramPacket,它對(duì)應(yīng)于UDP通信協(xié)議。 總之,Socket部分是建立其它高級(jí)協(xié)議的基礎(chǔ)。 2.URL類是一個(gè)網(wǎng)絡(luò)資源定位器,通常和具體的網(wǎng)絡(luò)協(xié)議如HTTP,F(xiàn)TP,Telnet相關(guān)。通過該類可以連接網(wǎng)絡(luò)上的資源,通過其openStream可以以io包中的流(InputStream)的形式讀取網(wǎng)絡(luò)資源;通過其OpenConnection方法,可以

15、打開一個(gè)連接,在此連接上可以不僅可以完成讀的操作,還可以完成寫的操作。 Java的網(wǎng)絡(luò)編程大體包括以上兩部分。網(wǎng)絡(luò)編程和IO以及多線程部分非常密切,在學(xué)習(xí)此部分前大家一定對(duì)這兩部分 了解比較透徹。 學(xué)習(xí)了以上部分你可以研究包中的與此相關(guān)的源代碼了!研究所有的源代碼還為時(shí)尚早。在整個(gè)net包中包含:ContentHandlerFactory、URLStreamHandlerFactory、URLStreamHandler、URLClassLoader等輔助類,它們構(gòu)成了網(wǎng)絡(luò)編程的框架,通過研究其源代碼,你不僅可以快速理解包,還可以為以后擴(kuò)展該包打下基礎(chǔ),甚至可以將此思維方式運(yùn)用到自己的項(xiàng)目中。

16、到此為止你對(duì)包應(yīng)該才了解60,還有一部分你可以使用JDecompiler之類的反編譯軟件打開你JDK安裝目錄下jdkxxxjrelib目錄中的rt.jar,用WinRAR之類的軟件打開它的包,反編譯所有的文件,它是URL類工作的細(xì)節(jié)。當(dāng)研究完該包,你就會(huì)對(duì)整個(gè)網(wǎng)絡(luò)編程很熟悉很熟悉了。 一切看起來我們已經(jīng)對(duì)網(wǎng)絡(luò)編程很精通了。其實(shí)不然,剛剛開始而已,要想深入,請(qǐng)繼續(xù)吧!網(wǎng)絡(luò)上很多優(yōu)秀的網(wǎng)絡(luò)編程庫(kù)甚至軟件可以為我們“添加功力”。如Apache的HttpCore和HTTPConnection是兩個(gè)和HTTP協(xié)議相關(guān)庫(kù);JGroups是研究分布式通信、群組通信的必讀庫(kù);接著我們可以研究P2P的軟件包,如

17、Sun公司的JXTA,它可能是java平臺(tái)點(diǎn)對(duì)點(diǎn)通信未來的標(biāo)準(zhǔn)哦!接著你可以研究成熟得不得了,使用極其廣泛得P2P軟件Azureus!可以下載到! 千里之行始于足下!Just doit?。壳拔乙仓谎芯苛薾et包,其它的會(huì)在不久的將來繼續(xù)深入。Sun公司因?yàn)槟承┰驔]有公開net的其它實(shí)現(xiàn)細(xì)節(jié),在其允許將其源代碼以文字的形式加以研究,以及允許將其沒有公開的實(shí)現(xiàn)寫入書中時(shí),我很希望能出一本java網(wǎng)絡(luò)編程的書籍,以飧廣大讀者?。?6. Servlet和JSP Servlet、JSP的書也是滿地都是!值得推薦的也僅僅兩三本。實(shí)推Addison Wiley的Servlets andJavaServe

18、r pages:The J2EE TechnologyWebTier,又是一本很厚的哦!國(guó)外2003年出版、784頁(yè),講得比較全,例子也很多,特別是第八章Filter,舉了幾個(gè)不錯(cuò)的例子。其它所有我看到的關(guān)于Servlet和JSP的書都沒有如此深入的?。赡苡形覜]有看到而已)。Oreilly的JavaServletProgramming和Java Server Pages相對(duì)比較好懂一些,可以讀讀! 在大家學(xué)習(xí)Servlet和Jsp之前我還是要提醒一下: 本質(zhì)上說Servlet就是一個(gè)實(shí)現(xiàn)Servlet接口的、部署于服務(wù)器端的服務(wù)器端的程序罷了!它可以象寫其它任何java應(yīng)用程序一樣編寫,它可

19、以操作數(shù)據(jù)庫(kù)、可以操作本地文件、可以連接本地EJB編寫Servlet程序的一般流程為: 1. 繼承一個(gè)HttpServlet類; 2. 覆蓋其doGet、doPost方法; 3. 在覆蓋方法的內(nèi)部操作方法參數(shù)HttpServletRequest和HttpServletResponse。 4.讀取請(qǐng)求利用HttpServletRequest。利用HttpServlet Request你可以操作Http協(xié)議的協(xié)議頭、可以得到請(qǐng)求的操作方法、可以得到請(qǐng)求的路徑、可以得到請(qǐng)求的字符串、以及和請(qǐng)求客戶相關(guān)的信息,更主要的你可以得到Cookie和HttpSession這兩個(gè)對(duì)象。 5. 利用Cookie你

20、可以操作“甜心”對(duì)象或者將其寫入HttpServletResponse中。 6. 向客戶輸出信息可以使用HttpServletResponse。使用HttpServletResponse可以寫入各種類型的協(xié)議頭、可以增加Cookie、可以重定向其它URL、可以向客戶發(fā)送Http協(xié)議的狀態(tài)碼。 7. 利用HttpSession在會(huì)話內(nèi)完成你想實(shí)現(xiàn)的任何功能。 同時(shí)Servlet還提供了一些事件和事件*(簡(jiǎn)單的觀察者模式而已)。還有就是過濾器(Filter)和包裝器(ServletRequestWrapper、ServletResponseWrapper)簡(jiǎn)單的流的使用和裝飾器模式的使用。 學(xué)習(xí)S

21、evlet、JSP必然要部署到服務(wù)器中,記住通常文件部署的步驟和參數(shù)的設(shè)置以及在程序中如何使用就可以了。 完全理解Servlet后,學(xué)習(xí)jsp相對(duì)比較容易了!Jsp完全建立在Servlet的基礎(chǔ)上,它是為了迎合那些喜歡在Html文檔中嵌入腳本(如:PHP之類的網(wǎng)頁(yè)編程語(yǔ)言)的程序員的需要罷了!學(xué)起來也相當(dāng)?shù)娜菀祝?一切看起來似乎那么的風(fēng)平浪靜,簡(jiǎn)單好學(xué)!簡(jiǎn)單的表象背后有其復(fù)雜的機(jī)理。要想對(duì)Servlet和Jsp徹底研究,你得研究Tomcat等開源軟件的具體實(shí)現(xiàn)。它無非就是一個(gè)服務(wù)器,在客戶利用網(wǎng)頁(yè)通過HTTP協(xié)議向服務(wù)器發(fā)送請(qǐng)求后,服務(wù)器將此HTTP請(qǐng)求轉(zhuǎn)化為相應(yīng)的HttpServletReq

22、uest對(duì)象,調(diào)用你編寫的Servlet罷了,在你的Servlet中你肯定操作了此HttpServletRequest了吧,同時(shí)操作了HttpServletResponse了吧,服務(wù)器就將此HttpServletResponse按照HTTP協(xié)議的要求利用HTTP協(xié)議發(fā)送給你的瀏覽器了!在服務(wù)器端的Jsp網(wǎng)頁(yè)在被客戶請(qǐng)求后,Tomcat會(huì)利用編譯軟件,使用javax.servlet.jsp包中的模板,編譯此jsp文件,編譯后就是一個(gè)Servlet!以后的操作和Servlet完全一樣哦! 在Servlet和Jsp的基礎(chǔ)上出現(xiàn)了,所謂的高級(jí)技術(shù):JSTL,Struts無非就是一些標(biāo)簽和MVC模式的使

23、用。 繼續(xù)前進(jìn)吧!勝利就在前方! 7. 多線程 一個(gè)看起來很神秘,卻很容易上手、很難精通的方向! 我推薦兩本我感覺很好的書籍。首先是我第一本能上手看的這方面的書,Sams 1998年出版的JavaThreadProgramming,寫得暴好,很容易讀懂,我有空還時(shí)??串?dāng)時(shí)的筆記!要知道怎么好你自己看吧!第二本OReilly三次出版的JavaThreads,最新是2004版,國(guó)內(nèi)好像有中文版,推薦你還是看英文版的吧!書中談到了與多線程相關(guān)的N個(gè)方向,如IO、Swing、Collection等等。 給大家一點(diǎn)提示吧!java類庫(kù)中與多線程相關(guān)的類不是很多,主要有:Thread、T hreadGroup以及ThreadLocal和InheritableThreadLocal四個(gè)類和一個(gè)Runnable接口;關(guān)鍵字synchronize、volatile;以及Object對(duì)象的wait、notify、notifyAll方法! 1 Thread是多線程的核心類,提供了一系列創(chuàng)建和操作多線程的方法。 2 ThreadGroup是一個(gè)管理Thread的工具類。 3

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論