出版時間:2009-1 出版社:清華大學(xué)出版社 作者:胡書敏,陳寶峰,程煒杰 著 頁數(shù):896 字數(shù):1662000
Tag標簽:無
前言
Java編程是一門藝術(shù),這雖然是智者的游戲,但是入門卻非常簡單?! ≡贘ava這個高雅的殿堂里,有著各種璀璨的明珠,有包容編程精粹的面向?qū)ο笏枷?,有整合Web工作流的Struts組件,還有體現(xiàn)持久性的ORM思想,由此導(dǎo)致了Web開發(fā)領(lǐng)域發(fā)生了天翻地覆的變化?! ‰m然這些讓人嘆為觀止的技術(shù)和思想能讓我們發(fā)動頭腦風(fēng)暴,幫助我們開發(fā)出一個個Java項目,但是羅馬不是在一天建成的,我們也有必要從一磚一瓦上,用腳踏實地的態(tài)度邁向Java殿堂的最高點。
內(nèi)容概要
Java語言是復(fù)雜的,因為它承載著太多的Web開發(fā)需求點;Java又是簡單的,只要用心,每個人都可以學(xué)會。你手中的這本《Java第一步》,就是通過生動的語言和一個個引人入勝的案例,向你講述Java開發(fā)的各個知識點。 本書作者已從事Java開發(fā)多年。在本書中,作者以自己的經(jīng)驗向大家描述了一條學(xué)習(xí)Java的道路,其中不求向大家講述最復(fù)雜最高深的知識點,但求通過講述當(dāng)前最實用的開發(fā)思想和方法,盡快地達到讓大家掌握用Java語言開發(fā)中等規(guī)模項目的目的。 “知其然,知其所以然”是本書的創(chuàng)作動機,而通俗易懂更是貫穿本書寫作的全程。當(dāng)你閱讀本書時,將會發(fā)現(xiàn)作者在字里行間中,正用文字與你交流。 在本書的第--N第九章里,將圍繞“實用性”這個主題,以“面向?qū)ο蟆钡乃伎挤绞?,向大家逐漸展開Java開發(fā)的各項基礎(chǔ)知識,比如異常處理、網(wǎng)絡(luò)開發(fā)、數(shù)據(jù)庫,以及Swing。在這個部分里,大家將通過一種益智游戲一象棋,來理解Swin9里的界面開發(fā)和事件處理方式。 在本書的第十到第十六章里,將圍繞Java語言的精髓——設(shè)計模式和架構(gòu)思想,通過貪吃蛇和生命游戲等案例,講述Java項目設(shè)計過程中思考問題的方式。通過了解本章的DAO、MVC等思想,大家能了解到Java設(shè)計思想的本質(zhì)。 在前兩部分的鋪墊下,在本書的十七章及以后的部分里,講述了Java的Web開發(fā)組件和Web開發(fā)模式。這部分比較實用的Java技術(shù)將會使你能夠很快地從事軟件公司里的Web開發(fā)工作。 本書雖以“實用性”為宗旨,但大家在閱讀本書時,不應(yīng)過多地拘泥于“實用主義”,過分地關(guān)注其中的API,而應(yīng)當(dāng)通過語法關(guān)注設(shè)計模式和架構(gòu)思想的本質(zhì),這樣才能在Java藝術(shù)殿堂里得到更完美的享受。 本書不是一本技術(shù)說明手冊,而是一本Java編程思想的指南。你即將探索Java藝術(shù)的殿堂,這本書將會讓你更快地獲得Java的知識、智慧和成就感。
作者簡介
胡書敏 大連理工大學(xué)計算機科學(xué)碩士?,F(xiàn)就職于上海威迅教育,有豐富的培訓(xùn)經(jīng)驗與教材開發(fā)經(jīng)驗,擅長架構(gòu)及設(shè)計模式的綜合運用。5年Java方面的軟件開發(fā)經(jīng)驗,開發(fā)過交通銀行外匯交易滿金寶系統(tǒng)等一系列大型銀行和電子商務(wù)系列的Java程序,擔(dān)任過項目經(jīng)理和架構(gòu)師。
曾著
書籍目錄
第1章 Java與面向?qū)ο笏枷搿?.1 初識Java語言 1.1.1 Java是什么 1.1.2 為什么要選用Java語言 1.1.3 Java語言的解釋執(zhí)行與跨平臺特性 1.1.4 怎樣學(xué)好Java 1.2 什么是面向?qū)ο笏枷搿 ?.2.1 軟件開發(fā)的方法學(xué)——面向?qū)ο笏枷胩岢龅谋尘啊 ?.2.2 面向?qū)ο蟮奈镔|(zhì)基礎(chǔ)——類與封裝 1.2.3 抽象與代碼復(fù)用——抽象類與概念抽象 1.2.4 模塊的開關(guān)——接口與功能抽象 1.2.5 同名但不同參——多態(tài)與重載 1.2.6 具有面向?qū)ο笏枷胝Z言的優(yōu)勢 1.3 開發(fā)我們的第一個Java程序 1.3.1 如何配置Java的開發(fā)環(huán)境 1.3.1.1 下載和安裝JDK 1.3.1.2 設(shè)置JDK的環(huán)境變量 1.3.3.3 安裝Eclipse 1.3.3.4 添加Eclipse的中文插件 1.3.2 編寫HelloWorld程序 1.3.3 運行HelloWorld程序 1.3.4 使用Eclipse集成開發(fā)環(huán)境運行HelloWorld程序 1.4 本章小結(jié)第2章 開始學(xué)習(xí)Java語法 2.1 基本數(shù)據(jù)類型與操作符 2.1.1 基本數(shù)據(jù)類型 2.1.2 基本操作符 2.1.3 操作符優(yōu)先級 2.1.4 對象型的數(shù)據(jù)類型 2.1.5 方法(函數(shù))的參數(shù)和返回值 2.2 程序流程控制 2.2.1 順序與分支 2.2.2 循環(huán)流程 2.2.3 有爭議的goto語句 2.2.4 使用if語句判定是否是閏年 2.2.5 使用循環(huán)語句計算階乘 2.2.6 使用switch語句控制輸出 2.3 類與封裝 2.3.1 類的構(gòu)成要素 2.3.2 類的構(gòu)造函數(shù)與構(gòu)造次序 2.3.3 用package封裝工具類和用import引入需要的類 2.3.4 修飾符與類內(nèi)部對象的可見性 2.3.5 靜態(tài)方法與抽象方法 2.3.6 類的封裝性與模塊的解耦合 2.3.7 垃圾收集機制與Finalize語句段 2.3.8 提供用電服務(wù)類的示例代碼 2.4 繼承與抽象類 2.4.1 繼承的設(shè)計動機 2.4.2 抽象類與概念抽象 2.5 接口與實現(xiàn) 2.5.1 接口的語法 2.5.2 為什么要使用接口 2.5.3 接口與抽象類在本質(zhì)上的區(qū)別——空調(diào)外的例子 2.5.4 通過實現(xiàn)接口的方式開發(fā)電視和收音機類 2.6 具有“分離”特性的多態(tài) 2.6.1 從重載中歸納多態(tài)的特性 2.6.2 多態(tài)與“分離”——實現(xiàn)小動物叫 2.7 RTTI與反射 2.7.1 君子無不可用之勢——論后期編譯的效果 2.7.2 在代碼里實現(xiàn)RTTI的效果 2.7.3 類的照妖鏡——反射 2.7.4 使用反射機制實現(xiàn)代碼還原 2.8 通過約束降低出錯可能性的泛型 2.8.1 什么是泛型 2.8.2 泛型的示例代碼 2.9 本章小結(jié)第3章 Java中的數(shù)據(jù)結(jié)構(gòu)——集合類 3.1 集合類與數(shù)據(jù)容納 3.1.1 在項目中自定義數(shù)據(jù)類型的難處 3.1.2 什么是數(shù)據(jù)結(jié)構(gòu) 3.1.3 Java集合中的兩類數(shù)據(jù)結(jié)構(gòu) 3.2 線性表型的集合 3.2.1 順序訪問的典范——數(shù)組類 3.2.2 數(shù)組的改進版本——Vbctor類 3.2.3 先進后出的Stack類 3.2.4 鏈表式的List接口以及LinkedList實現(xiàn)類 3.2.4.1 List接口里的方法 3.2.4.2 List實現(xiàn)類及其功能 3.2.4.3 List代碼示例 3.2.5 不允許有重復(fù)元素的Set接口 3.2.5.1 Set接口里的方法 3.2.5.2 Set實現(xiàn)類及其功能 3.2.6 對第一類集合的歸納 3.2.7 使用Vector模擬Stack的動作 3.2.8 使用Vector模擬隊列的動作 3.3 鍵值對型的集合 3.3.1 為什么要使用Hash類 3.3.2 鍵值對的典范——HashtabIe類 3.3.3 通過“魔術(shù)代碼”分析equals和hashCode方法 3.3.4 封裝了散列表數(shù)據(jù)結(jié)構(gòu)的Map接口 3.3.4.1 M印接口里的方法 3.3.4.2 實現(xiàn)Map接口的類 3.3.4.3 M印代碼實例 3.3.4.4 采用Entry對象遍歷Map 3.3.5 對第二類集合的歸納 3.4 枚舉器與數(shù)據(jù)操作 3.4.1 訪問集合類的“不確定性”難題 3.4.2 “大智若愚”的枚舉器接口 3.4.3 枚舉器“分離”思想的啟示 3.4.4 使用枚舉器定義統(tǒng)一的訪問各集合的方法——一個打印的例子 3.5 深淺拷貝 3.5.1 “偷懶”的共享數(shù)據(jù)塊的方法——淺拷貝 3.5.2 似是而非的淺拷貝——只拷貝ArrayList對象 3.5.3 “刨根撅底”的深拷貝——實現(xiàn)對ArrayList的整體克隆 3.6 Java集合類中的排序 3.6.1 讓你的對象是可比較的 3.6.2 為你的對象定義比較器 3.7 本章小結(jié)第4章 有異常怎么辦 4.1 異常的基本概念 4.1.1 險惡的項目運行環(huán)境 4.1.2 步步為營的異常處理機制 4.1.3 Java虛擬機處理異常的流程 4.2 異常技術(shù)綜述 4.2.1 錯了不要緊——論運行期異?! ?.2.2 自食其力——處理自己的異?! ?.2.3 有問題就報告一一異常的拋出聲明 4.2.4 彌補闕漏的自定義異常 4.3 異常的陷阱 4.3.1 異常與繼承 4.3.2 誰動了我的異?! ?.3.3 論資排輩的異常級別 4.4 本章小結(jié)第5章 IO流與流讀寫操作 5.1 輸入流與輸出流 5.1.1 什么是流對象 5.1.2 復(fù)雜的輸入輸出應(yīng)用與簡單的Javal0類庫 5.1.3 Java里IO流對象的邏輯關(guān)系 5.2 IO對象使用說明 5.2.1 怎樣讀寫文件——讀寫一個文本文件 5.2.2 怎樣讀寫內(nèi)存數(shù)據(jù) 5.2.3 怎樣讀寫帶格式的數(shù)據(jù) 5.2.4 標準設(shè)備與重定向 5.2.5 壓縮和解壓縮ZIP文件——創(chuàng)建一個壓縮和解壓縮的程序 5.2.6 用StreamTokenizer類輸出不同格式的Token 5.3 本章小結(jié)第6章 Java與多線程開發(fā) 6.1 線程到底是什么 6.1.1 線程的定義 6.1.2 線程的生命周期 6.1.3 操作系統(tǒng)與線程并發(fā) 6.2 定義自己的線程,繼承Thread類 6.2.1 Thread類與線程 6.2.2 使用Thread類實現(xiàn)計數(shù)器功能 6.3 解決繼承局限性,實現(xiàn)Runnable接口 6.3.1 Runnable接口與線程 6.3.2 使用Runnable接口實現(xiàn)計數(shù)器功能 6.4 避免沖突,控制多線程的并發(fā) 6.4.1 勞逸結(jié)合——線程的睡眠 6.4.2 控制數(shù)據(jù)的有效性,通過synchronized關(guān)鍵字聲明同步——一個由并發(fā)引起的數(shù)據(jù)錯誤修改及解決的例子 6.4.3 線程的等待與通知線程恢復(fù)工作 6.4.4 死鎖的成因 6.4.5 特事特辦,線程的優(yōu)先級 6.4.6 多線程經(jīng)典案例——生產(chǎn)者消費者問題 6.5 本章小結(jié)第7章 Java與網(wǎng)絡(luò)開發(fā) 7.1 網(wǎng)絡(luò)開發(fā)的基本需求 7.1.1 網(wǎng)絡(luò)通訊模型和網(wǎng)絡(luò)通訊協(xié)議 7.1.2 通過TCP協(xié)議建立可靠的通訊信道 7.1.2.1 兩軍問題與建立可靠連接的難題 7.1.2.2 通過三次握手,建立通訊信道 7.1.2.3 支持TCP協(xié)議的Java包 7.1.3 通過UDP協(xié)議高效地發(fā)送數(shù)據(jù)報文 7.1.3.1 UDP協(xié)議與數(shù)據(jù)報文 7.1.2.2 Java的UDP相關(guān)類說明 7.2 面向套接字編程 7.2.1 使用套接字實現(xiàn)基于TCP協(xié)議的服務(wù)器和客戶機程序 7.2.1.1 開發(fā)服務(wù)器端代碼 7.2.1.2 開發(fā)客戶端代碼 7.2.1.3 運行效果演示 ……第8章 Java與數(shù)據(jù)庫開發(fā)第9章 Java與圖形界面開發(fā)第10章 生命游戲第11章 基于圖形秘網(wǎng)絡(luò)的Java聊天室第12章 學(xué)生信息管理系統(tǒng)第13章 MVC模式與項目開發(fā)第14章 設(shè)計模式與項目開發(fā)第15章 DAO模式與數(shù)據(jù)庫訪問第16章 設(shè)計模式的應(yīng)用第17章 基于JSP+Servlet的Web架構(gòu)第18章 基于JavaBean和EJB的Web構(gòu)架 第19章 基于J2EE的在線購物系統(tǒng)第20章 Struts架構(gòu)與Web應(yīng)用第21章 Spring架構(gòu)與Web應(yīng)用第22章 ORM組件與數(shù)據(jù)庫訪問控制第23章 Struts與Spring集成開發(fā)第24章 基于Struts+Spring+Hibernate的在線購物系統(tǒng)第25章 Java的Web Service應(yīng)用
章節(jié)摘錄
第3章 Java中的數(shù)據(jù)結(jié)構(gòu)——集合類 本章將通過講解Java集合類的具體語法和使用方式,來向大家展示Java在數(shù)據(jù)結(jié)構(gòu)方面編程的強大功能?! 〖项惖倪@些強大功能,源自于Java具有的面向?qū)ο笏枷胩匦?。所以,希望大家在學(xué)習(xí)這個章節(jié)的時候,把集合類的語法同面向?qū)ο笏枷胫械摹巴ㄟ^繼承抽象基類功能”和“通過多態(tài)屏蔽邏輯動作細節(jié)”等原則結(jié)合起來,這樣能更好地從模塊層次的角度理解和運用Java集合類。 3.1 集合類與數(shù)據(jù)容納 Java用集合類來容納代碼中的不同種類數(shù)據(jù),這種容納是建立在未知的基礎(chǔ)上,即Java要用有限種類的集合類,來容納代碼中無限種類的數(shù)據(jù)對象?! ∮蒙罾锏膱鼍皝韺?yīng)的話,Java的集合類需要設(shè)計成“能容納液態(tài)氣態(tài)和固態(tài)等不同類型物質(zhì)”的容器,要設(shè)計這樣的“萬能容器”確實很困難,但JDK 的設(shè)計者們通過借鑒面向?qū)ο笏枷肜锏摹岸鄳B(tài)”,實現(xiàn)了這個需求?! ?.1.1 在項目中自定義數(shù)據(jù)類型的難處 如果我們在項目運行前,事先為項目代碼準備好所有類型的數(shù)據(jù)對象,并根據(jù)這些數(shù)據(jù)對象的不同類型,為它們在內(nèi)存里分配好空間,這是非常理想的,但事實上,我們做不到這點。 比如,在關(guān)于天氣預(yù)報的項目里,我們需要一個對象來保存描述溫度的信息,這個問題看上去很好解決,定義一個變量就行了,但沒有那么簡單?! ∪绻枋鰷囟刃畔⒌母袷接卸喾N,有用數(shù)字型的格式(比如多少度),也有用字符型的格式(比如 “很冷”),并且程序員只有在接收到這個信息的時候才能明確地知道信息的格式,事情就比較麻煩。為了保證能容納所有類型的數(shù)據(jù),我們不得不用Java語言所有對象的老祖宗類——Object類型數(shù)據(jù)來接收這個溫度信息?! 〉?,如果問題變得再復(fù)雜點呢?如果我們在代碼里需要用一個(或一組)對象來描述一天里所有來訪的客戶信息,這樣,除非這段代碼被運行,否則我們甚至不知道當(dāng)天會來多少客戶和客戶的種類,這給我們的編程帶來了很大的難題。因為我們不知道代碼所需要的對象的數(shù)目和種類。所以在代碼里,要求能夠在任何時候、任何地點創(chuàng)建任意數(shù)量的任何類型對象。 這對代碼的要求似乎高了些,但是,很不幸的是,在編程中這是個“常規(guī)”要求。不過,使用數(shù)據(jù)結(jié)構(gòu)的思想能夠較好地解決這一問題?! ?.1.2 什么是數(shù)據(jù)結(jié)構(gòu) 數(shù)據(jù)結(jié)構(gòu)是在計算機編程領(lǐng)域里被廣泛使用的術(shù)語,它用來研究數(shù)據(jù)對象的內(nèi)部構(gòu)成,即這個數(shù)據(jù)對象由哪些基本的數(shù)據(jù)元素構(gòu)成,這個數(shù)據(jù)對象以什么方式構(gòu)成,以及它呈什么結(jié)構(gòu)?! ?shù)據(jù)結(jié)構(gòu)主要研究數(shù)據(jù)的各種邏輯結(jié)構(gòu)和存儲結(jié)構(gòu),以及對不同種數(shù)據(jù)類型的各種操作。因此,數(shù)據(jù)結(jié)構(gòu)主要有兩方面的內(nèi)容:數(shù)據(jù)的邏輯存儲結(jié)構(gòu)和對數(shù)據(jù)的操作。 Java的集合類可以很好地用來描述基于Java語言的數(shù)據(jù)結(jié)構(gòu),在本章里,我們不會具體描述如何實現(xiàn)數(shù)據(jù)結(jié)構(gòu)內(nèi)部細節(jié)的內(nèi)容,而是將通過學(xué)習(xí)Java的集合,在了解其數(shù)據(jù)組織方式和操作的基礎(chǔ)上,熟悉這些集合類的用途和特長,為能夠在項目中很好地使用這些集合類打下堅實的基礎(chǔ)?! ?.1.3 Java集合中的兩類數(shù)據(jù)結(jié)構(gòu) 歸納起來講,Java的集合可以分為兩類,第一類是以數(shù)組為代表,這類集合可以描述線性表類型的數(shù)據(jù)結(jié)構(gòu),第二類是以Map為代表,這類集合可以描述“鍵值對”類型的數(shù)據(jù)結(jié)構(gòu)?! ∶枋龅谝活悢?shù)據(jù)結(jié)構(gòu)的集合是以Collection為基類,在Collection類里,封裝了線性表的插入、刪除等基本操作;而數(shù)據(jù)結(jié)構(gòu)的集合是以Map為基類。兩類集合分別通過繼承和擴展這兩個基類,可以逐漸細化,從而得到諸如堆棧和哈希表之類的數(shù)據(jù)集合對象。 這兩類不同類型的集合,可以很好地在各種應(yīng)用中存儲各種類型的數(shù)據(jù),所以說,熟悉了這兩類集合,就可以熟悉Java語言下的兩類數(shù)據(jù)結(jié)構(gòu)。
編輯推薦
《Java第一步:基礎(chǔ)+設(shè)計模式+Servlet+EJB+Struts+Spring+Hiberna》讓你用面向?qū)ο蠛驮O(shè)計模式的眼光審視Java?! ∽髡咭韵刃惺甑慕?jīng)驗,告訴你學(xué)習(xí)Java的道路?! 〔捎美碚摻Y(jié)合案例的方式,學(xué)會Java從JDK到SSH的重要知識點?! ∩鷦踊顫娛恰禞ava第一步——基礎(chǔ)+設(shè)計模式+Servl》的風(fēng)格,在編程中體會快樂,這是我們的追求。
圖書封面
圖書標簽Tags
無
評論、評分、閱讀與下載