⑴ java入門要看什麼書籍
java入門教程《21天學通java2》第三版
《Java編程思想》(thinking in java)第三版
TOMCAT HOME是指安裝tomcat的主目錄,並非是說目錄的名字就叫「TOMCAT HOME」。
JAVA編程詳解
Think in JAVA(有點難度,推薦在熟悉之後再看)
剛開始其實只要是基礎的都能看,我給你個好的JAVA書籍下載站點:
http://www.javafan.net/index.jsp
學習一門新的知識,不可能指望只看一本,或者兩本書就能夠完全掌握。需要有一個循序漸進的閱讀過程。我推薦Oreilly出版的Java系列書籍。
在這里我只想補充一點看法,很多人學習Java是從《Thinking in Java》這本書入手的,但是我認為這本書是不適合初學者的。我認為正確的使用這本書的方法應該是作為輔助的讀物。《Thinking in Java》並不是在完整的介紹Java的整個體系,而是一種跳躍式的寫作方法,是一種類似tips的方法來對Java很多知識點進行了深入的分析和解釋。
對於初學者來說,最好是找一本Java入門的書籍,但是比較完整的循序的介紹Java的語法,面向對象的特性,核心類庫等等,在看這本書的同時,可以同步來看《Thinking in Java》,來加深對Java的理解和原理的運用,同時又可以完整的了解Java的整個體系。
對於Java的入門書籍,蔡學鏞推薦的是Oreilly的《Exploring Java, 2nd Edition》 或者《Java in a Nutshell,2nd Edition(針對C++背景)》,我並沒有看過這兩本書。其實我覺得電子工業出版社的《Java 2編程詳解》或者《Java 2從入門到精通》就很不錯。
在所有的Java書籍當中,其實最最有用的,並不是O'reilly的 Java Serials,真正最最有用處是JDK的Documentation!幾乎你想獲得的所有的知識在Documentation裡面全部都有,其中最主要的部分當然是Java基礎類庫的API文檔,是按照package來組織的,對於每一個class都有詳細的解釋,它的繼承關系,是否實現了某個介面,通常用在哪些場合,還可以查到它所有的public的屬性和方法,每個屬性的解釋,意義,每個方法的用途,調用的參數,參數的意義,返回值的類型,以及方法可能拋出的異常等等。可以這樣來說,所有關於Java編程方面的書籍其實都不過是在用比較通俗易懂的語言,和良好的組織方式來介紹Documentation裡面的某個package裡麵包含的一些類的用法而已。所以萬變不離其宗,如果你有足夠的能力來直接通過Documentation來學習Java的類庫,那麼基本上就不需要看其他的書籍了。除此之外,Documentation也是編程必備的手冊,我的桌面上有三個Documentation的快捷方式,分別是J2SDK1.4.1的Documentation,Servlet2.3的Documentation和J2SDKEE1.3.1的Documentation。有了這個三個Documentation,什麼其他的書籍都不需要了。
對於Java Web 編程來說,最核心的是要熟悉和掌握HTTP協議,這個就和Java無關了,在熟悉HTTP協議之後,就需要熟悉Java的實現HTTP協議的類庫,也就是Servlet API,所以最重要的東西就是Servlet API。當然對於初學者而言,直接通過Servlet API來學習Web編程有很大的難度,我推薦O'reilly的《Java Server Pages 》這本書來學習Web 編程。
EJB的書籍當中,《Enterprise JavaBeans, 2nd Edition》是一本很不錯的書, EJB的學習門檻是比較高,入門很難,但是這本書完全降低了學習的難度,特別重要的一點是,EJB的學習需要結合一種App Server的具體實現,所以在學習EJB的同時,必須同步的學習某種App Server,而這本書相關的出了三本書,分別是Weblogic6.1,Websphere4.0和JBoss3.0上面部署書中例子的實做。真是既有理論,又有實踐。在學習EJB的同時,可以邊看邊做,EJB的學習會變得很輕松。
但是這本書也有一個問題,就是版本比較舊,主要講EJB1.1規范和部分EJB2.0的規范。而Ed Roman寫的《Mastering EJB 2.0》這本書完全是根據EJB2.0規范寫的,深入淺出,覆蓋了EJB編程的各個方面,並且還有很多編程經驗tips,也是學習EJB非常推薦的書籍之一。
如果是結合Weblogic來學習J2EE的話,《J2EE應用與BEA Weblogic Server》絕對是首選讀物,雖然是講述的Weblogic6.0,仍然值得購買,這本書是BEA官方推薦的教材,作者也是BEA公司的工程師。現在中文版已經隨處可見了。這本書結合Weblogic介紹了J2EE各個方面的技術在Weblogic平台上的開發和部署,實踐指導意義非常強。
在掌握了Java平台基礎知識和J2EE方面的知識以後,更進一步的是學習如何運用OO的方法進行軟體的設計,那麼就一定要學習「設計模式」。Sun公司出版了一本《J2EE核心模式》,是每個開發Java企業平台軟體的架構師必備的書籍。這本書全面的介紹了J2EE體系架構的各種設計模式,是設計師的必讀書籍。
Java Learning Path(三)過程篇
每個人的學習方法是不同的,一個人的方法不見得適合另一個人,我只能是談自己的學習方法。因為我學習Java是完全自學的,從來沒有問過別人,所以學習的過程基本上完全是自己摸索出來的。我也不知道這種方法是否是比較好的方法,只能給大家提供一點參考了。
學習Java的第一步是安裝好JDK,寫一個Hello World, 其實JDK的學習沒有那麼簡單,關於JDK有兩個問題是很容易一直困擾Java程序員的地方:一個是CLASSPATH的問題,其實從原理上來說,是要搞清楚JRE的ClassLoader是如何載入Class的;另一個問題是package和import問題,如何來尋找類的路徑問題。把這兩個問題摸索清楚了,就掃除了學習Java和使用JDK的最大障礙。推薦看一下王森的《Java深度歷險》,對這兩個問題進行了深入的探討。
第二步是學習Java的語法。Java的語法是類C++的,基本上主流的編程語言不是類C,就是類C++的,沒有什麼新東西,所以語法的學習,大概就是半天的時間足夠了。唯一需要注意的是有幾個不容易搞清楚的關鍵字的用法,public,protected,private,static,什麼時候用,為什麼要用,怎麼用,這可能需要有人來指點一下,我當初是完全自己琢磨出來的,花了很久的時間。不過後來我看到《Thinking in Java》這本書上面是講了這些概念的。
第三步是學習Java的面向對象的編程語言的特性的地方。比如繼承,構造器,抽象類,介面,方法的多態,重載,覆蓋,Java的異常處理機制。對於一個沒有面向對象語言背景的人來說,我覺得這個過程需要花很長很長時間,因為學習Java之前沒有C++的經驗,只有C的經驗,我是大概花了一個月左右吧,才徹底把這些概念都搞清楚,把書上面的例子反復的揣摩,修改,嘗試,把那幾章內容反復的看過來,看過去,看了不下5遍,才徹底領悟了。不過我想如果有C++經驗的話,應該一兩天時間足夠了。那麼在這個過程中,可以多看看《Thinking in Java》這本書,對面向對象的講解非常透徹。可惜的是我學習的時候,並沒有看到這本書,所以自己花了大量的時間,通過自己的嘗試和揣摩來學會的。
第四步就是開始熟悉Java的類庫。Java的基礎類庫其實就是JDK安裝目錄下面jre\lib\rt.jar這個包。學習基礎類庫就是學習rt.jar。基礎類庫裡面的類非常非常多。據說有3000多個,我沒有統計過。但是真正對於我們來說最核心的只有4個,分別是
java.lang.*;
java.io.*;
java.util.*;
java.sql.*;
這四個包的學習,每個包的學習都可以寫成一本厚厚的教材,而O'reilly也確實是這樣做的。我覺得如果時間比較緊,是不可能通過讀四本書來學習。我覺得比較好的學習方法是這樣的:
首先要通讀整個package的框架,了解整個package的class,interface,exception的構成,最好是能夠找到介紹整個包框架的文章。這些專門介紹包的書籍的前幾章應該就是這些總體的框架內容介紹。
對包整體框架的把握並不是要熟悉每個類的用法,記住它有哪些屬性,方法。想記也記不住的。而是要知道包有哪些方面的類構成的,這些類的用途是什麼,最核心的幾個類分別是完成什麼功能的。我在給人培訓的時候一般是一次課講一個包,所以不可能詳細的介紹每個類的用法,但是我反復強調,我給你們講這些包的不是要告訴你們類的方法是怎麼調用的,也不要求你們記住類的方法調用,而是要你們了解,Java給我們提供了哪些類,每個類是用在什麼場合,當我遇到問題的時候,我知道哪個類,或者哪幾個類的組合可以解決我的問題,That'all!,當我們具體寫程序的時候,只要你知道該用哪個類來完成你的工作就足夠了。編碼的時候,具體的方法調用,是邊寫代碼,邊查Documentation,所有的東西都在Documentation裡面,不要求你一定記住,實際你也記不住3000多個類的總共將近10萬個方法調用。所以對每個包的總體框架的把握就變得極為重要。
第五步,通過上面的學習,如果學的比較扎實的話,就打好了Java的基礎了,剩下要做的工作是掃清Documentation裡面除了上面4個包之外的其他一些比較有用處的類。相信進展到這一步,Java的自學能力已經被培養出來了,可以到了直接學習Documentation的水平了。除了要做GUI編程之外,JDK裡面其他會有用處的包是這些:
java.text.*;
java.net.*;
javax.naming.*;
這些包裡面真正用的比較多的類其實很少,只有幾個,所以不需要花很多時間。
第六步,Java Web 編程
Web編程的核心是HTTP協議,HTTP協議和Java無關,如果不熟悉HTTP協議的話,雖然也可以學好Servlet/JSP編程,但是達不到舉一反三,一通百通的境界。所以HTTP協議的學習是必備的。如果熟悉了HTTP協議的話,又有了Java編程的良好的基礎,學習Servlet/JSP簡直易如反掌,我學習Servlet/JSP就用了不到一周的時間,然後就開始用JSP來做項目了。
在Servlet/JSP的學習中,重頭仍然是Servlet Documentation。Servlet API最常用的類很少,花比較少的時間就可以掌握了。把這些類都看一遍,多寫幾個例子試試。Servlet/JSP編程本質就是在反復調用這些類來通過HTTP協議在Web Server和Brower之間交談。另外對JSP,還需要熟悉幾個常用JSP的標記,具體的寫法記不住的話,臨時查就是了。
此外Java Web編程學習的重點要放在Web Application的設計模式上,如何進行業務邏輯的分析,並且進行合理的設計,按照MVC設計模式的要求,運用Servlet和JSP分別完成不同的邏輯層,掌握如何在Servlet和JSP之間進行流程的控制和數據的共享,以及Web Application應該如何配置和部署。
第七步,J2EE編程
以上的學習過程如果是比較順利的話,進行到這一步,難度又陡然提高。因為上面的知識內容都是只涉及一個方面,而像EJB,JMS,JTA等核心的J2EE規范往往是幾種Java技術的綜合運用的結晶,所以掌握起來難度比較大。
首先一定要學習好JNDI,JNDI是App Server定位伺服器資源(EJB組件,Datasouce,JMS)查找方法,如果對JNDI不熟悉的話,EJB,JMS這些東西幾乎學不下去。JNDI其實就是javax.naming.*這個包,運用起來很簡單。難點在於伺服器資源文件的配置。對於伺服器資源文件的配置,就需要看看專門的文檔規范了,比如web.xml的寫法,ejb-jar.xml的寫法等等。針對每種不同的App Server,還有自己的服務資源配置文件,也是需要熟悉的。
然後可以學習JTA,主要是要理解JTA對於事務的控制的方法,以及該在什麼場合使用JTA。這里可以簡單的舉個例子,我們知道一般情況可以對於一個資料庫連接進行事務控制(conn.setAutoCommit(false),....,conn.commit()),做為一個原子操作,但是假設我的業務需求是要把對兩個不同資料庫的操作做為一個原子操作,你能做的到嗎?這時候只能用JTA了。假設操作過程是先往A資料庫插一條記錄,然後刪除B資料庫另一個記錄,我們自己寫代碼是控制不了把整個操作做為一個原子操作的。用JTA的話,由App Server來完成控制。
在學習EJB之前要學習對象序列化和RMI,RMI是EJB的基礎。接著學習JMS和EJB,對於EJB來說,最關鍵是要理解EJB是如何通過RMI來實現對遠端對象的調用的,以及在什麼情況下要用到EJB。
在學習完EJB,JMS這些東西之後,你可能會意識到要急不可待學習兩個領域的知識,一個是UML,另一個是Design Pattern。Java企業軟體的設計非常重視框架(Framework)的設計,一個好的軟體框架是軟體開發成功的必要條件。在這個時候,應該開始把學習的重點放在設計模式和框架的學習上,通過學習和實際的編程經驗來掌握EJB的設計模式和J2EE的核心模式。
J2EE規范裡面,除了EJB,JMS,JTA,Servlet/JSP,JDBC之外還有很多很多的企業技術,這里不一一進行介紹了。
另外還有一個最新領域Web Services。Web Services也完全沒有任何新東西,它像是一種黏合劑,可以把不同的服務統一起來提供一個統一的調用介面,作為使用者來說,我只要獲得服務提供者給我的WSDL(對服務的描述),就夠了,我完全不知道伺服器提供者提供的服務究竟是EJB組件,還是.Net組件,還是什麼CORBA組件,還是其他的什麼實現,我也不需要知道。Web Services最偉大的地方就在於通過統一的服務提供方式和調用方式,實現了整個Internet服務的共享,是一個非常令人激動的技術領域。Web Services好像目前還沒有什麼很好的書籍,但是可以通過在網路上面查資料的方式來學習。
Java Learning Path(四) 方法篇
Java作為一門編程語言,最好的學習方法就是寫代碼。當你學習一個類以後,你就可以自己寫個簡單的例子程序來運行一下,看看有什麼結果,然後再多調用幾個類的方法,看看運行結果,這樣非常直觀的把類給學會了,而且記憶非常深刻。然後不應該滿足把代碼調通,你應該想想看如果我不這樣寫,換個方式,再試試行不行。記得哪個高人說過學習編程就是個破壞的過程,把書上的例子,自己學習Documentation編寫的例子在運行通過以後,不斷的嘗試著用不同的方法實現,不斷的嘗試破壞代碼的結構,看看它會有什麼結果。通過這樣的方式,你會很徹底的很精通的掌握Java。
舉個例子,我們都編過Hello World
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello World");
}
}
很多初學者不是很理解為什麼main方法一定要這樣來定義public static void main(String[] args),能不能不這樣寫?包括我剛學習Java的時候也有這樣的疑問。想知道答案嗎?很簡單,你把main改個名字運行一下,看看報什麼錯誤,然後根據出錯信息進行分析;把main的public取掉,在試試看,報什麼錯誤;static去掉還能不能運行;不知道main方法是否一定要傳一個String[]數組的,把String[]改掉,改成int[],或者String試試看;不知道是否必須寫args參數名稱的,也可以把args改成別的名字,看看運行結果如何。
我當初學習Java的時候就是這樣做的,把Hello World程序反復改了七八次,不斷運行,分析運行結果,最後就徹底明白為什麼了main方法是這樣定義的了。
此外,我對於staic,public,private,Exception,try{ }catch {}finally{}等等等等一開始都不是很懂,都是把參考書上面的例子運行成功,然後就開始破壞它,不斷的根據自己心裏面的疑問來重新改寫程序,看看能不能運行,運行出來是個什麼樣子,是否可以得到預期的結果。這樣雖然比較費時間,不過一個例子程序這樣反復破壞幾次之後。我就對這個相關的知識徹底學通了。有時候甚至故意寫一些錯誤的代碼來運行,看看能否得到預期的運行錯誤。這樣對於編程的掌握是及其深刻的。
其中特別值得一提的是JDK有一個非常棒的調試功能,-verbose
java –verbose
javac –verbose 以及其它很多JDK工具都有這個選項
-verbose 可以顯示在命令執行的過程中,JVM都依次載入哪裡Class,通過這些寶貴的調試信息,可以幫助我們分析出JVM在執行的過程中都幹了些什麼。
另外,自己在學習過程中,寫的很多的這種破壞常式,應該有意識的分門別類的保存下來,在工作中積累的典型常式也應該定期整理,日積月累,自己就有了一個代碼庫了。遇到類似的問題,到代碼庫裡面 Copy & Paste ,Search & Replace,就好了,極大提高了開發速度。最理想的情況是把一些通用的常式自己再抽象一層,形成一個通用的類庫,封裝好。那麼可復用性就更強了。
所以我覺得其實不是特別需要常式的,自己寫的破壞常式就是最好的例子,如果你實在對自己寫的代碼不放心的話,我強烈推薦你看看JDK基礎類庫的Java源代碼。在JDK安裝目錄下面會有一個src.zip,解開來就可以完整的看到整個JDK基礎類庫,也就是rt.jar的Java源代碼,你可以參考一下Sun是怎麼寫Java程序的,規范是什麼樣子的。我自己在學習Java的類庫的時候,當有些地方理解的不是很清楚的時候,或者想更加清晰的理解運作的細節的時候,往往會打開相應的類的源代碼,通過看源代碼,所有的問題都會一掃而空。
Java Learning Path(五)資源篇
1、 http://java.sun.com/ (英文)
Sun的Java網站,是一個應該經常去看的地方。不用多說。
2、http://www-900.ibm.com/developerWorks/cn/
IBM的developerWorks網站,英語好的直接去英文主站點看。這里不但是一個極好的面向對象的分析設計網站,也是Web Services,Java,Linux極好的網站。強烈推薦!!!
3、http://www.javaworld.com/ (英文)
關於Java很多新技術的討論和新聞。想多了解Java的方方面面的應用,這里比較好。
4、http://dev2dev.bea.com.cn/index.jsp
BEA的開發者園地,BEA作為最重要的App Server廠商,有很多獨到的技術,在Weblogic上做開發的朋友不容錯過。
5、http://www.huihoo.com/
灰狐動力網站,一個專業的中間件網站,雖然不是專業的Java網站,但是在J2EE企業應用技術方面有深厚的造詣。
6、http://www.theserverside.com/home/ (英文)
TheServerSide是一個著名的專門面向Java Server端應用的網站。
7、http://www.javaresearch.org/
Java研究組織,有很多優秀的Java方面的文章和教程,特別是在JDO方面的文章比較豐富。
8、http://www.cnjsp.org/
JSP技術網站,有相當多的Java方面的文章和資源。
9、http://www.jdon.com/
Jdon論壇,是一個個人性質的中文J2EE專業技術論壇,在眾多的Java的中文論壇中,Jdon一個是技術含量非常高,帖子質量非常好的論壇。
10、http://sourceforge.net/
SourgeForge是一個開放源代碼軟體的大本營,其中也有非常非常豐富的Java的開放源代碼的著名的軟體。
⑵ 對於伺服器開發需要學習什麼
伺服器所用到的知識:
TCP/UDP,最基本的
並發——你可以選擇使用select、poll,或者是多線程、多進程
如果你使用多線程,那麼就必須使用同步技術——信號量、互斥體、條件變數的一種或幾種,並且對於多線程技術,你還需要考慮使用進行線程分離與合並,
如果你使用了多進程,那麼同步技術就不是你需要考慮的了,你需要考慮的是進程相關的問題了,你是使用fork還是vfork,你該如何處理客戶端的請求,如何處理客戶端斷開連接後保證能夠處理完數據並且沒有僵屍進程產生,你還需要考慮高並發的問題
你發送接受數據的時候,採用何種方式,是阻塞的還是非阻塞的,還有連接超時、重傳等問題
你是選擇TCP還是UDP,如果選擇UDP你可得忙了,需要你自己去進行重傳驗證,模擬TCP的三次握手,保證數據不會丟失,保證數據的有序性
還有其他很多需要你考慮的,以上都是指在Linux下的C++,本人對windows C++不了解
推薦書目:UNIX高級環境編程,UNIX網路編程,卷一。C++只不過是你使用這些技術的方式,不管你使用C還是C++,你都可以使用從這兩本書中學習到很多有用的知識,但是不能保證你就可以寫出高質量的伺服器程序。
⑶ 初學伺服器知識,該選擇什麼書籍
windows平台可以看看《Windows Server 2003伺服器架設與管理》。
⑷ 軟體開發工作人員必讀的書籍有哪些,特別是剛剛工作的
《人月神化》
《人件》
《軟體發布方法》
《數據倉庫項目管理》
《自適應軟體開發》
《功能點分析》
《創建軟體工程文化》
《OO項目開發》(這本書的名字記得不是很清楚)
這些書是一個系列叢書。清華大學出版社出的
《微軟項目:求生法則》
《微軟研發:致勝策略》
《微軟團隊:成功秘訣》
原來關於微軟開發的系列叢書。很難買到了,但網上的下載很多
《微軟的秘密》
很不錯的一本書。質量保證人員應該看得一本書。也是在網上下載吧
《軟體工程:實踐者的研究方法》
最經典的軟體工程書籍。十分難讀,但的確是經典,英文已經到今天為止版了,中文版,很多大學拿它做教材,可以本科很難理解它的重要性,建議5年以上工作經驗的同志們好好讀一下,
《重構》
《重構手冊》
這兩本書是中國電力出版社的書,一套,使開發人員改進自己代碼的教科書
《過河卒》
開發人員如何確定自己的技術人生,一本不錯的書,
《borland傳奇》
想了解PC軟體的發展,讀這個書最好,使你對軟體的發展和計算機系統有一個更深刻的了解。
《Java夜未眠》
不僅僅是講java語言的數,其中許多深刻的道理對質量保證人員也有很大的幫助
《計算機程序設計藝術》1,2,3卷
不知道怎麼評價這三本書,開發人員的床頭必備的書籍,就是一個字---牛
《軟體工藝》
告訴你什麼是軟體開發,什麼是程序員,讓我們知道我們是怎麼回事
《IT項目管理》(機械出版社)
PMP的管理書籍。項目組長必讀的東西,如何從開發人員變為項目管理人員,這個書寫的不錯
《高質量軟體項目管理》(清華大學出版社)
這本書將項目管理,軟體工程都寫到一起了,對於希望做項目管理和質量保證的人員很有用,對於一般的開發人員,你可以了解你以後的技術生涯需要那些技能和技巧,為以後的發展打下一個基礎
最後一個系列
軟體與系統思想家溫伯格精粹譯叢(清華大學出版社)
《質量、軟體、管理---協調管理》
《質量、軟體、管理---系統思維》
《程序員開發心理學》
《走查、審查、技術復審手冊》
還有其他的書,但我只有這幾本
《代碼大全I,II》
軟體編碼最經典的書籍,是兩本經典中的經典.
⑸ 想做Java軟體開發方面的工作 需要看什麼書
入門類
1.《java從入門到精通》(第3版)
【內容介紹】
本書從初學者角度出發,通過通俗易懂的語言、豐富多彩的實例,詳細介紹了使用Java語言進行程序開發應該掌握的各方面技術。全書共分28章,包括:初識Java,熟悉Eclipse開發工具,Java 語言基礎,流程式控制制,字元串,數組,類和對象,包裝類,數字處理類,介面、繼承與多態,類的高級特性,異常處理,Swing程序設計,集合類,I/O輸入輸出,反射,枚舉類型與泛型,多線程,網路通信,資料庫操作,Swing表格組件,Swing樹組件,Swing其他高級組件,高級布局管理器,高級事件處理,AWT繪圖與音頻播放,列印技術和企業進銷存管理系統等。所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的注釋,可以使讀者輕松領會Java程序開發的精髓,快速提高開發技能。
【推薦理由】
本書內容詳盡,實例豐富,非常適合作為編程初學者的學慣用書,也適合作為開發人員的查閱、參考資料。
2.《java核心技術卷一》
【內容介紹】
本書是Java技術經典參考書,多年暢銷不衰,第7版在保留以前版本風格的基礎上,涵蓋Java2開發平台標准版J2SE5.0的基礎知識,主要內容包括面各對象程序設計、反射與代理、介面與內部類、事件監聽器模型、使用Swing UI工具箱進行圖形用戶界面設計,異常處理、流輸入/輸出和對象序列化、泛型程序設計等。本書內容翔實、深入淺出,附有大量程序實例,極具實用價值,是Java初學者和Java程序員的必備參考書。
【推薦理由】
本書出版以來,深受廣大讀者的喜愛,它全面介紹了Java SE的基礎知識,不但具有使用價值,而且易於閱讀,易理解,它必成為想進軍Java和基礎薄弱同學的不二之選。
3.《java編程語言》
【內容介紹】
本書以Java語言創建者的獨特視角向讀者展現了為什麼以及如何使用Java語言,以便讀者理解Java語言的基本設計目標以及它在現實世界中的應用。本書介紹的是Java語言的最新版本,該版本在《Java Language Specification,Second Edition》中定義,在Java2SDK1.3標准版中實現。本書已是第三版,在經構上相對前兩版有所調整,重點講述了新的語言特徵,並提供了新API的使用實例。本書完全覆蓋了Java語言當前版本的特徵和類庫,可以作為Java語言的入門向導,也可作為高級Java開發及Java語言教學的參考用書。
【推薦理由】
本書介紹的是Java語言的最新版本,該版本在《Java Language Specification,Second Edition》中定義,在Java2SDK1.3標准版中實現。本書已是第三版,在經構上相對前兩版有所調整,重點講述了新的語言特徵,並提供了新API的使用實例。本書完全覆蓋了Java語言當前版本的特徵和類庫,可以作為Java語言的入門向導,也可作為高級Java開發及Java語言教學的參考用書。
進階類
1.《java編程思想》
【內容介紹】
本書共22章,包括操作符、控制執行流程、訪問許可權控制、復用類、多態、介面、通過異常處理錯誤、字元串、泛型、數組、容器深入研究、JavaI/O系統、枚舉類型、並發以及圖形化用戶界面等內容。這些豐富的內容,包含了Java語言基礎語法以及高級特性,適合各個層次的Java程序員閱讀,同時也是高等院校講授面向對象程序設計語言以及Java語言的絕佳教材和參考書。
【推薦理由】
本書贏得了全球程序員的廣泛贊譽,即使是最晦澀的概念,在BruceEckel的文字親和力和小而直接的編程示例面前也會化解於無形。從Java的基礎語法到最高級特性(深入的面向對象概念、多線程、自動項目構建、單元測試和調試等),本書都能逐步指導你輕松掌握。
2.《java核心技術卷二》
【內容介紹】
《JAVA核心技術卷2:高級特徵》是Java技術權威指南,全面覆蓋Java技術的高級主題,包括流與文件、XML、網路、資料庫編程、高級Swing、高級 AWT、JavaBean構件、安全、分布式對象、腳本、編譯與註解處理等,同時涉及本地化、國際化以及Java SE 6的內容。《JAVA核心技術卷Ⅱ:高級特徵》對Java技術的闡述精確到位,敘述方式深入淺出,並包含大量示例,從而幫助讀者充分理解Java語言以及Java類庫的相關特性。
【推薦理由】
本書是經典的《Java核心技術,卷II:高級特性》的最新修訂版,涵蓋了Java SE6平台的高級用戶界面程序設計和企業特性。與第1卷(涵蓋了核心的語言和類庫特性)一樣,本卷已經更新到了JavaSE6。並且對新內容都作了重點標注。書中所有的示常式序都進行了詳細的設計,用來演示最新的編程技術。並展示針對專業開發者在現實中所碰到的典型問題的最佳解決方案。本書包含有關StAXAPI、JDBC 4、編譯器API、腳本框架、閃屏和托盤API以及其他許多JavaSE6改進特性的新章節。本書聚焦於Java語言中更高級的特性,包括下列內容:流與文件、網路、資料庫編程、XML、JNDI與LDAP、國際化、高級GUI組件、Java2D、JavaBeans、安全、RMI與Web服務、高級AWT、註解、本地方法。
3.《瘋狂java講義》
【內容介紹】
本書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特徵、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC資料庫編程、Java注釋、Java的IO流體系、Java多線程編程、Java網路通信編程和Java反射機制。共覆蓋了java.awt、java.lang、java.io和java.nio、java.sql、java.text、java.util、javax.swing包下絕大部分類和介面。
【推薦理由】
本書並不單純從知識角度來講解Java,而是從解決問題的角度來介紹Java語言,所以本書中介紹了大量實用案例開發。這些案例既能讓讀者鞏固每章的知識,又可以讓讀者學以致用、激發編程自豪感,進而引爆內心的編程激情。本書光碟里包含書中所有示例的代碼,如果讀者希望獲得課後練習的程序代碼。
本書為所有打算深入掌握Java編程的讀者而編寫,適合各種層次的Java學習者和工作者閱讀,也適合作為大學教育、培訓機構的Java教材。但北大青鳥光谷校區專業老師認為,如果只是想簡單涉獵Java,則本書過於龐大,不適合閱讀。
JavaEE類
1.《javaWeb整合開發王者歸來》
【內容介紹】
本書全面介紹了Java Web開發中的各種相關技術及知識。全書分為9篇,內容層次清晰,難度循序漸進。第1篇為入門篇,內容包括Java Web開發概述等;第2篇為基礎篇,內容包括Servlet技術、JSP技術、會話跟蹤、過濾器Filter、監聽器Listener等;第3篇為高級篇,內容包括JSTL標簽庫的使用、如何自定義標簽、資源國際化、資料庫概述、JDBC詳解、XML概述等;第4篇為Struts框架篇,內容不僅包括Struts 1.x的內容,也包括Struts 2.x中的內容;第5篇為Hibernate框架篇;第6篇為Spring框架篇;第7篇為EJB與Web服務篇,內容包括EJB 3概述、JPA規范Web服務框架XFire等;第8篇為工具篇,內容包括在Java Web項目中常用的開源工具框架、主要有版本管理工具SVN、日誌工具commons-logging與Log4J、報表圖形引擎JFreeChart、PDF組件iText等;第9篇為實戰篇,內容為兩個典型的應用系統:論壇系統(Spring+Struts+Hibernate)、寵物商店(EJB 3+JPA+Struts 2)。
【推薦理由】
資深Java程序員耗時一年時間寫作,十年開發經驗毫無保留。全面、系統、深入介紹Java Web開發的核心技術與主流框架。
2.《spring 入門到精通》
【內容介紹】
本書由淺入深,循序漸進地介紹了Spring的體系結構和相關知識點,目的是幫助初學者快速掌握Spring,並能使用Spring進行應用程序的開發。本書最大的特色在於每章都是由淺入深,從一個簡單的示例入手,讓讀者快速了解本章內容,然後再詳細講解本章涉及的基本原理和知識點,最後再通過一個詳細的示例宋鞏固所學內容。本書每一章的例子都是經過精挑細選,具有很強的針對性,力求讓讀者通過親自動手做而掌握其原理和方法,從而學習盡可能多的知識。本書適用於初、中級軟體開發人員,同時也可用作高校相關專業師生和社會培訓班的教材。
【推薦理由】
全書共分14章,內容涵蓋了Spring的基礎概念、核心容器、Spring AOP、事務處理、持久層封裝、Web框架、定時器、Spring和Struts、Spring和Hibernate、Spring和Ant、Spring和Junit。本書適用於初、中級軟體開發人員,同時也可用作高校相關專業師生和社會培訓班的教材。
3.《JavaWeb開發詳解》
【內容介紹】
本書共分4部分,從XML、Servlet、JSP和應用的角度向讀者展示了Java Web開發中各種技術的應用,循序漸進地引導讀者快速掌握Java Web開發。
【推薦理由】
本書內容全面,涵蓋了從事Java Web開發所應掌握的所有知識,在知識的講解上本書採用理論與實踐相結合的方式,從程序運行的內部機制進行分析講解,並通過大量的實例和實驗來驗證並運用本書的知識。
對於一個程序員來說,編程技術至關重要,然而技術的提高不是一蹴而就的,它需要時間的積累和經驗的沉澱。每一位技術大牛都是從菜鳥起步的,技術升級的過程就是不斷閱讀經典、不斷編寫程序、不斷調試異常的過程,所以閱讀一定量的專業書籍還是很有必要的,希望以上推薦的幾本書籍對有志於編程開發的同學有所幫助。
⑹ 推薦幾本javaEE的書籍,經典的。不要李剛的(雖然講的好,但是繁瑣,基礎東西太多了)。結合了三大框架的
[Spring.2.0核心技術和最佳實踐。廖學鋒掃描版。
容易的Hibernate「PDF清晰版。PDF
精通struts的基於MVC的設計與開發PDF
[Struts.2權威指南 - 基於MVC開發的WebWork的核心。鋼。Java.web掃描版PDF
Java方面的內部電驢學習知識
:
遞歸集合J2SE面向對象 - 封裝,繼承,多態
內存分析,通用,自動裝箱和拆箱,注釋
IO
多線程,線程同步
TCP / UDP
AWT,事件模型,匿名類
反射機制
SQL語句
多表聯接的資料庫(Oracle或MySQL)的正則表達式,內部和外部連接,子查詢
管理表,視圖,索引,序列,約束樹的存儲
存儲過程,觸發器
資料庫設計三大範式,
3:JDBC
JDBC基本/>連接池
樹的存儲和顯示
數據源的RowSet
JDBC連接Oracle和MySQL
:HTML_CSS_JAVASCRIPT
HTML,CSS,JavaScript的基本語法
> JavaScript的形成判斷
DOM編程基礎(事件處理程序)
JS效果,如TreeView,下拉聯動JS學習方法
JS調試方法
DreamWeaver的初步(創建HTML,表格,表單,CSS)
5:Servlet的基礎JSP
Tomcat的
servlet的基礎的
web.xml中的配置基本
Web應用程序結構
servlet的生命周期
請求的響應常用的方法
的ServletContext類
HTTP協議基礎(GET,POST)
餅干會話
應用程序
幾個語法(JSP,包括JSTL)注意練習的項目,而不是堅持的語法和包裝步驟的細節之前。
6:Struts的
多層體系結構的理論
模式1和模式2
Struts的
MVC
操作的業務邏輯類的基本概念之間的關系
Struts和JSP之間傳遞數據的
的Struts的治療過程(流量控制)
的Struts的TagLib(了解常用的)
JSTL
中的ActionForm
>欄位集合
上傳文件的類型轉換
DTO
動力作用形成的
驗證框架
的ActionForward轉發和重定向
動態生成的ActionForward
全局和局部的ActionForward
行動的推進范圍
UnknownActionMapping
行動線程安全
I18N
如何切換語言環境的
Struts的異常處理機制處理
用戶自定義的異常處理程序
Struts的多模塊配置7:XML
(XML / XSL,XSLT / DTD的,SCHEMA基本的Java編程的概念可以自動處理暫且不說)
8:休眠 OR映射
Hibernate的基本發展原則,步驟
休眠
基本介面(重點屆)
常見的屬性的映射關系映射
原生SQL
懶級聯反
繼承關系映射
HQL
性能優化緩存二級緩存查詢緩存
事務並發悲觀鎖定,樂觀鎖定
OpenSessionInView
CurrentSession
(至於JTA,的聯合主鍵的自然主鍵動態主鍵的任何類型Creteria查詢截擊和事件自定義類型,等等。 ,你可以暫時扔到一邊)
9:春季
IOC / DI
Spring配置
春季建築
AOP和Spring AOP
聲明式事務(AOP )
Spring + Hibernate的春天的Web
范圍
(其他的Spring模塊,你可以暫時扔到一邊自學)
10:EJB3.0
J2EE架構基金會(JTA JMS)
EJB基礎(地位及基本理論,分類等)
注釋
Ant的編譯和部署EJB
會話Bean的
EJB依賴注入
持久性API
(JBoss的學習EJB3.0)
11:SOA
30個進球
你需要精通面向對象分析與設計(OOA / OOD),涉及模式(GOF,J2EEDP),以及綜合模式。你應該充分了解UML,尤其是類,對象,互動,和statediagrams。<BR / 2,你需要學習JAVA語言以及它的核心類庫集合,序列化,流,網路,多線程,反射,事件處理,NIO,定製系統的本地化,以及其他的基本知識。
3類載入器,JVM,classreflect,以及垃圾回收的基本工作機制,您應該是知道的,你應該有能力反編譯一個類文件並且明白一些基本的匯編指令。
如果你要寫一個客戶端程序,你需要學習WEB的小應用程序(applet),必需掌握GUI設計的思想和方法的,和桌面應用程序的SWING,AWT,SWT,你也明白的UI部件的JAVABEAN組件模式中。JAVABEANS適用於業務邏輯的分離表示層JSP。
5。需要學習java資料庫技術,如JDBCAPI,會使用至少一種persistence / ORM構架,比如Hibernate,JDO,CocoBase,TopLink的InsideLiberator(國產JDO紅工廠軟體)或者iBatis。
6。您還應該了解對象關系的阻抗失配的含義,以及它是如何影響業務對象的與關系型資料庫交互,和結果它的操作,但還需要掌握不同的資料庫產品,如拉克勒,MySQL和MSSQLSERVER。
7。你需要學習JAVA的沙盒安全模式(類載入器,bytecodeverification,的經理,policyandpermissions,
代碼簽名,加密技術,認證,Kerberos身份,和其他人)digitalsignatures,以及不同的安全/認證API的JAAS()的,JCE(JavaCryptographyExtension)的的JSSE(JavaSecureSocketExtension)以及JGSS(JavaGeneralSecurityService)。
8。你需要學習Servlets和JSP,以及的JSTL(StandardTagLibraries)和選定的第三方TagLibraries。
9。你需要熟悉主流的網頁框架,例如JSF,Struts中,掛毯,蠶繭,WebWork中,和他們下面的涉及模式,如MVC/MODEL2。
10。你需要學習如何使用及管理WEB伺服器,例如tomcat的,樹脂的JRUN,並知道如何的基礎上擴展和維護WEB程序。
11。你需要學習分布式對象和遠程API,例如RMI和RMI / IIOP。
12。你需要掌握各種流行中間件技術標准,並結合java實現,比如Tuxedo,CROBA,當然也包括JavaEE的本身。你應該學會
你需要學習至少一個XMLAPI例如JAXP(JavaAPIforXMLProcessing)的JDOM(JavaforXMLDocumentObjectModel),DOM4J,或JAXR(JavaAPIforXMLRegistries)。
14。如何利用JAVAAPI和工具來構建WebService的。(JavaAPIforXML / RPC),JAX-RPC SAAJ的(SOAPwithAttachmentsAPIforJava)的,JAXB(JavaArchitectureforXMLBinding)JAXM(JavaAPIforXMLMessaging)的JAXR(JavaAPIforXMLRegistries),或JWSDP(JavaWebServicesDeveloperPack)的。
> 15。需要,學習一個輕量級應用程序框架,例如Spring中,PicoContainer的阿瓦隆,以及他們的IoC / DI風格(setter方法??,構造函數,集成*** ceinjection)。
16。你需要熟悉不同的J2EE技術??,例如JNDI(JavaNamingandDirectoryInte *** CE)的JMS(JavaMessageService)的,JTA / JTS(JavaTransactionAPI / JavaTransactionService)的JMX(JavaManagementeXtensions),以及JavaMail的。
17。企業類級JavaBeans(EJB),你需要學習以及它們的不同組件模式:無狀態/ StatefulSessionBeans,EntityBeans(bean-ManagedPersistence的包含[BMP]或容器ManagedPersistence [CMP]和它的EJB-QL),或者消息DrivenBeans(MDB )
18。你需要學習如何管理與配置一個J2EE應用程序伺服器,如WebLogic,JBoss的,並利用它的附加服務,例如簇類,連接池以及分布式處理的支持。您還需要了解它是如何封裝和配置應用程序能夠監控,調整它的性能。
19。你需要熟悉面向方面的編程,以及面向屬性的程序設計(兩個很容易混淆縮寫為AOP),以及他們的主流JAVA規格和執行。如AspectJ和AspectWerkz。
20。熟悉的服務不同有用的API和框架為你工作。例如,Log4J的(記錄/跟蹤),石英(調度)的JGroups(networkgroupcommunication)JCache(distributedcaching)的,Lucene的(全職文章搜索)JakartaCommons的。
21。如果你要對接和舊的系統或本地平台,你需要學習的JNI(JavaNativeInte *** CE)和JCA(JavaConnectorArchitecture)。
22。JINI技術,您需要熟悉,和它的分布式系統,如主CROBA。
23。你需要JavaCommunityProcess的( JCP),和他的不同JavaSpecificationRequests(JSR的),如JOLAP的Portlets(168)(69)(73),DataMiningAPI,等等。
24。你應該熟悉與的一個JAVAIDE例子的SunOne的NetBeans IntelliJIDEA或Eclipse(有些人更喜歡VI或EMACS來編寫文件不管你是什麼:)
25.JAVA一些配置(精確)是冗長的,它需要很多的人工代碼(例如EJB),所以你需要熟悉代碼生成工具,例如XDoclet。
26。你需要熟悉單元測試體系(JNunit),並且學習不同的生成,部署工具(Ant,Maven的)。
27。你需要熟悉JAVA開發的,經常使用的軟體工程過程。例如RUP(RationalUnifiedProcess)andAgilemethodologies的。
28。你需要深入了解加熟練操作和配置操作系統,比如GNU / Linux操作系統,sunsolaris MacOS的,作為一個跨平台的軟體開發。
29。您還需要跟上Java的發展步伐,比如現在可以深入學習javaME的,以及各種java中,使用的技術,如啟動一個新的web富客戶端技術的新規范。
30。您需要了解開源,至少在,許多Java技術的直接依賴開放源碼,以推動發展,如JAVA3D技術。
⑺ 學習Java有哪些好的書籍
對於沒有Java編程經驗的程序員要入門,隨便讀什麼入門書籍都一樣,這個階段需要你快速的掌握Java基礎語法和基本用法,宗旨就是「囫圇吞棗不求甚解」,先對Java熟悉起來再說。用很短的時間快速過一遍Java語法,連懵帶猜多寫寫代碼,要「知其然」。
在有了一定的Java編程經驗之後,你需要「知其所以然」了。這個時候《Java編程思想》是一本讓你知其所以然的好書,它對於基本的面向對象知識有比較清楚的交待,對Java基本語法,基本類庫有比較清楚的講解,可以幫你打一個良好的Java編程基礎。這本書的缺點是實在太厚,也比較羅嗦,不適合現代人快節奏學習,因此看這本書要懂得取捨,不是每章每節都值得一看的,挑重點的深入看就可以了。
這本書一大特點是以單元測試和TDD來貫穿全書的,在教你Java各種重要的基礎知識的過程中,潛移默化的影響你的編程思維走向敏捷,走向TDD。另外這本書成書很新,以JDK5.0的語法為基礎講解,要學習JDK5.0的新語法也不錯。還有這本書對於內容取捨也非常得當,Java語言畢竟類庫龐大,可以講的內容太多,這本書選擇的內容以及內容的多寡都很得當,可以讓你以最少的時間掌握Java最重要的知識,順便培養出來優秀的編程思路,真是一本不可多得的好書。
打下一個良好的Java基礎,還需要更多的實踐經驗積累,我想沒有什麼捷徑。有兩本書值得你在編程生涯的這個階段閱讀,培養良好的編程習慣,提高你的代碼質量。
這本書名氣很大,不用多介紹,可以在閑暇的時候多翻翻,多和自己的實踐相互印證。這本書對你產生影響是潛移默化的。
本書最大特點是很薄,看起來沒有什麼負擔。你可以找一個周末的下午,一邊看,一邊照做,一個下午就把書看完,這本書的所有例子跑完了。這本書的作用是通過實戰讓你培養TDD的思路。
《Head First java開發》是本完整的面向對象(object-oriented,OO)程序設計和java開發的學習指導。此書是根據學習理論所設計的,讓你可以從學習程序語言的基礎開始一直到包括線程、網路與分布式程序等項目。最重要的,你會學會如何像個面向對象開發者一樣去思考。但如果你真地想要好好地學習java開發,你會需要《Head First java開發》。這本書可是Amazon編輯推薦的十大好書之一!強烈推薦學習此書,非常適合初學者入門。
《java開發從入門到精通》這本書主要針對java開發基礎,對於沒有學過java開發的人才說,是一個不錯的選擇。通過這本書,大家可以從零開始,慢慢碼銷搜來學習,而且實操很多,不會讓你看到最後出現只會理論的情況。
《java開發編程思想》可以說遲歷是最經典的java開發著作,是所有java開發程序員必備教科書。這本書不管是正在學習還是已經工作許多年的程序員,都可以從這本書中得到你想要的東西。這本書具有教材和工具書的作用,就像一本字典,想知道什麼都可以從中查詢。雖然這本書很好,但並不建斗櫻議初學者學習,對於初學者難度較大。
《瘋狂的講義》這本書比較適合自學者,內容比較項目化,實操方法很多,如果你想進行java開發的深入學習,不妨看看這本書。
這本書分為兩個部分,第一個部分講的是基礎知識,第二個部分講的是高級特性。由於內容非常有層次,所以非常適合自學的同學學習。
⑻ 想做JAVAWEB後台的話,要學習哪些知識
HTML(超文本標記語言)是網頁的核心,學好HTML是成為Web開發人員的基本條件。HTML很容易學習的,但也很容易誤用,要學精還得費點功夫。
隨著HTML5的發展和普及,了解HTML5也將成為Web開發人員的必修課。
涉及到網頁外觀時,就需要學習CSS了,它可以幫你把網頁做得更美觀。
利用HTML和CSS模擬一些你所見過的網站的排版和布局(色彩,圖片,文字樣式等等)。
第二步:學習javascript,了解DOM
JavaScript是一種能讓你的網頁更加生動活潑的程序語言。學習JavaScript的基本語法,學會用javascript操作網頁中dom元素。
接著學習使用一些javascript庫,比如jquery是大部分WEB開發人員都喜歡用的,通過Jquery可以有效的提高JavaScript的開發效率。
第三步:了解Web伺服器
你不必在這上面花太多精力,但對IIS、Apache基本配置要掌握,這方面的知識學起來也相對容易,不會花多長時間。
學習一點Unix和Linux的基本知識,因為大部分Web伺服器都運行在Unix和Linux平台上。
第四步: 學好一門伺服器端腳本語言
伺服器端腳本編程(後台開發)也是Web開發人員的基本功之一,你只需挑選一個伺服器端腳本語言,然後學好它。
目前流行的伺服器腳本語言有:php、asp.net、jsp、ruby、python、等。
第五步:學習資料庫及SQL語法
要構建動態頁面通常會使用到資料庫,常用的資料庫有SQLServer、Oracle、MySQL 等,它們都會遵循標準的SQL原則。
通常asp.net 程序使用SqlServer資料庫,PHP、java使用Oracle、MySQL資料庫。
第六步:綜合實戰
選一個你喜歡的後台編程語言,結合之前學到的html,css,javascript 前端技術,實現一個簡單的留言本、論壇程序、進而實現一個簡單的CMS(內容管理系統)
第七步:學習使用Web框架
當你掌握了HTML,CSS,JavaScript和伺服器端腳本語言後,就應該找一個Web框架加快你的Web開發速度,使用框架可以節約你很多時間。
比如.net的MVC,JAVA 的SSH,php的cakephp、CodeIgniter、zend,ruby的ROR,python的dijango等等,其實裡面都有一些相通之處。
整個開發過程你還可能會學習到一些工具的使用:
Visio,Dreamweaver,Vistual Studio、elipse、(Vim, EditPlus, Notpad++)、sqlserver、phpmyadmin,各種瀏覽器以及FireBug的插件,IE下的WebDevelopmentHelper、IETester等。如果你足夠用心,你還發掘出很多不錯的資源,例如MSDN,W3cSchool,一些前輩的博客,一些技術論壇等等,這都是你未來前進道路上的財富。如還想深入研究,學學http協議,理解什麼是無狀態,不然你永遠做不好WEB開發,研究web程序服務端運行原理,還有tcp/ip,udp協議等。
從最簡單的HTML到Web框架,內容還是不少,要想精通這里的每一樣技術,都得下苦功夫才行。半年的時間,足夠你對web開發產生一個有效的認識,這個時候,再思考你進一步學習的方向吧。