出版時(shí)間:2009-11 出版社:清華大學(xué)出版社 作者:李發(fā)致 頁(yè)數(shù):517
Tag標(biāo)簽:無(wú)
前言
技術(shù)在發(fā)展,認(rèn)識(shí)在加深,這是本書改版的主要原因。作者認(rèn)為,Java用于面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言教學(xué),JDK 1.4版本剛剛好,而 JDK 1.5版本的新功能,如泛型、自動(dòng)裝箱、靜態(tài)導(dǎo)入、實(shí)參個(gè)數(shù)可變等,基本上是出于減少開發(fā)人員的代碼量而增加的。這些東西概念上不一定全都面向?qū)ο?,理解起?lái)不見得簡(jiǎn)單。授課時(shí),老師置之不理也未嘗不可。但往往同學(xué)好奇,如果老師不與時(shí)俱進(jìn),也會(huì)被同學(xué)質(zhì)疑麻木不仁的。于是從眾,上課老老實(shí)實(shí)地提了,書自然也得改……當(dāng)然,作者改書的原動(dòng)力,還在于感覺原來(lái)關(guān)于Java語(yǔ)言的面向?qū)ο筇匦砸约叭绾斡肑ava完成面向?qū)ο蟪绦蛟O(shè)計(jì)的理解還不夠深入、敘述還不太系統(tǒng)。不重新組織一下、擴(kuò)充一把,著實(shí)耿耿于懷,難得心安啊!后來(lái)有了出版社之約,就開始重寫了。關(guān)于這本書我們都在演繹Java,都試圖找出一條更好的學(xué)習(xí)、Java語(yǔ)言的途徑。本書的構(gòu)思是圍繞著面向?qū)ο蠹夹g(shù)和面向?qū)ο缶幊陶Z(yǔ)言這一主題展開的,因?yàn)檫@是學(xué)習(xí)Java時(shí)無(wú)法回避的問(wèn)題。事實(shí)上,對(duì)象之于初學(xué)者是一個(gè)需要費(fèi)點(diǎn)力才能跨過(guò)去的坎:引用變量怎么聲明?對(duì)象怎樣創(chuàng)建、使用和清除?類如何設(shè)計(jì)?什么是符合面向?qū)ο缶幊桃?guī)范的Java程序?像這樣一些問(wèn)題,真正深究起來(lái)的確有許多值得思考的地方。
內(nèi)容概要
本書圍繞著面向?qū)ο蠹夹g(shù)和面向?qū)ο缶幊陶Z(yǔ)言主題展開,注重對(duì)學(xué)習(xí)Java語(yǔ)言過(guò)程中的主要問(wèn)題進(jìn)行深入分析,講解重點(diǎn)是怎樣編寫規(guī)范的Java程序。書中首先介紹Java的運(yùn)行機(jī)制、程序樣式、基本語(yǔ)法;然后以面向?qū)ο蟪绦驅(qū)崿F(xiàn)為中心,講解在Java語(yǔ)言環(huán)境下對(duì)象初始化、對(duì)象使用過(guò)程與繼承性、多態(tài)性之間的聯(lián)系,對(duì)面向?qū)ο缶幊桃?guī)范等問(wèn)題進(jìn)行比較深入的梳理與分析;隨后介紹Java的多線程、輸入輸出、集合框架與泛型、圖形用戶界面等專題內(nèi)容?! ”緯趦?nèi)容組織上緊扣面向?qū)ο缶幊?,并?qiáng)調(diào)編程規(guī)范的重要性,對(duì)知識(shí)點(diǎn)溯本求源,力求給出合理的解釋;在內(nèi)容編排上盡可能做到由淺人深,讓讀者能基本掌握知識(shí)點(diǎn),然后逐漸把問(wèn)題引向深入,給學(xué)有余力的讀者提供一定的發(fā)展空間。書中例子的選用與設(shè)計(jì)也盡可能典型精致,做到有的放矢。 本書的主要閱讀對(duì)象是計(jì)算機(jī)及相關(guān)專業(yè)的大專院校學(xué)生,Java初、中級(jí)編程人員以及對(duì)從事面向?qū)ο缶幊谈信d趣的讀者。
書籍目錄
第1章 Java導(dǎo)論 1.1 Java語(yǔ)言的特點(diǎn) 1.1.1 簡(jiǎn)單的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言 1.1.2 健壯安全的分布式語(yǔ)言 1.1.3 結(jié)構(gòu)巾立.可移植性強(qiáng)的解釋型語(yǔ)言 1.1.4 高效能 1.1.5 支持多線程的動(dòng)態(tài)語(yǔ)言 1.1.6 Java與幾種常用語(yǔ)言的比較 1.2 Java執(zhí)行環(huán)境 1.2.1 JVM機(jī)制Java平臺(tái)的基礎(chǔ) 1.2.2 白動(dòng)垃圾收集 1.2.3 保護(hù)域機(jī)制與沙箱模型 1.2.4 類加載器啟動(dòng)引擎的點(diǎn)火器 1.3 JDK的組成與安裝設(shè)置 1.3.1 Java平臺(tái)的組成結(jié)構(gòu) 1.3.2 SETPATH和SETCLASSPATIt的作用 1.3.3 Java開發(fā)平臺(tái)簡(jiǎn)介 1.4 典型例子及常見問(wèn)題 1.4.1 編澤器.解釋器.小程序觀察器和反編澤器 1.4.2 簡(jiǎn)單的"HelloWorld!”例子 1.4.3 應(yīng)用程序的主方法 1.4.4 小程序的運(yùn)行 1.5 思考與練習(xí)第2章 Java的基本語(yǔ)法 2.1 類型.值與基本變量 2.1.1 基本概念 2.1.2 基本類型 2.1.3 引用類型 2.1.4 類型轉(zhuǎn)換 2.1.5 簡(jiǎn)化操作的一些輔助手段 2.2 運(yùn)算符與表達(dá)式 2.2.1 算術(shù)運(yùn)算符與表達(dá)式 2.2.2 關(guān)系運(yùn)算符與表達(dá)式 2.2.3 邏輯運(yùn)算符與表達(dá)式 2.2.4 位運(yùn)算符與表達(dá)式 2.2.5 條件運(yùn)算符與表達(dá)式 2.2.6 賦值運(yùn)算符與表達(dá)式 2.2.7 instanceof運(yùn)算符 2.2.8 運(yùn)算符優(yōu)先級(jí)與賦值順序的理解 2.2.9 基本類型所支持的操作運(yùn)算 2.3 語(yǔ)句 2.3.1 編組語(yǔ)句 2.3.2 表達(dá)式語(yǔ)句 2.3.3 選擇語(yǔ)句 2.3.4 循環(huán)語(yǔ)句 2.3.5 迭代與遞歸 2.3.6 控制轉(zhuǎn)移語(yǔ)句 2.3.7 注釋語(yǔ)句 2.4 思考與練習(xí)第3章 Java對(duì)象的生命周期 3.1 面向?qū)ο蠹夹g(shù) 3.1.1 面向過(guò)程與面向?qū)ο蟮谋容^ 3.1.2 面向?qū)ο蠹夹g(shù)的基本原則 3.1.3 面向?qū)ο蠹夹g(shù)的基本要素 3.1.4 軟件開發(fā)過(guò)程的面向?qū)ο蠹夹g(shù) 3.1.5 Java語(yǔ)言中的一些基本術(shù)語(yǔ) 3.2 對(duì)象聲明 3.2.1 對(duì)象的聲明方式 3.2.2 引用變量與對(duì)象的關(guān)系 3.3 對(duì)象的創(chuàng)建 3.3.1 創(chuàng)建方式 3.3.2 對(duì)象的初始化 3.3.3 繼承鏈上相關(guān)類的加載順序以及構(gòu)造方法鏈的調(diào)用 3.4 對(duì)象的使用 3.4.1 使用了哪個(gè)對(duì)象 3.4.2 使用了哪個(gè)方法 3.4.3 使用了哪個(gè)屬性 3.4.4 內(nèi)部類 3.5 對(duì)象清除 3.5.1 垃圾自動(dòng)收集機(jī)制 3.5.2 調(diào)用垃圾收集方法 3.5.3 finalize方法的利用 3.6 思考與練習(xí)第4章 對(duì)象設(shè)計(jì)的Java規(guī)范 4.1 規(guī)范概述 4.1.1 硬約束與軟約束 4.1.2 軟件工程的要求 4.1.3 面向?qū)ο笤O(shè)計(jì)原則 4.2 Java語(yǔ)言的Object類及標(biāo)準(zhǔn)包 4.2.1 Object類 4.2.2 java.1 ang包 4.2.3 Java標(biāo)準(zhǔn)包 4.3 Java的異常處理機(jī)制 4.3.1 異常處理 4.3.2 核心代碼與異常處理分離機(jī)制 4.3.3 引發(fā)異常及對(duì)異常處理的兩條途徑 4.3.4 Java的內(nèi)置異常類 4.3.5 設(shè)計(jì)異常類 4.3.6 斷言語(yǔ)句 4.3.7 對(duì)異常不作為與作為的區(qū)別 4.4 包.接口.類與方法設(shè)計(jì) 4.4.1 包設(shè)計(jì) 4.4.2 制作JAR文件包 4.4.3 接口設(shè)計(jì) 4.4.4 抽象類設(shè)計(jì) 4.4.5 類設(shè)計(jì) 4.4.6 方法設(shè)計(jì) 4.4.7 設(shè)計(jì)模式 4.5 Java編碼的其他規(guī)范 4.5.1 命名規(guī)范 4.5.2 文件組織樣式 4.5.3 增加程序可讀性的一些建議 4.5.4 完整的例子 4.6 思考與練習(xí)第5章 Java的線程 5.1 線程的概念與POSIX標(biāo)準(zhǔn) 5.1.1 現(xiàn)成的概念 5.1.2 線程的POSIX標(biāo)準(zhǔn) 5.2 多線程的Java實(shí)現(xiàn) 5.2.1 線程的創(chuàng)建方法 5.2.2 線程的狀態(tài) 5.3 互斥線程間的同步機(jī)制 5.3.1 多線程帶來(lái)的沖突問(wèn)題 5.3.2 共享資源合理使用的實(shí)現(xiàn) 5.3.3 按同步協(xié)調(diào)程度劃分的線程間的關(guān)系 5.4 java.util.concurrent包簡(jiǎn)介 5.5 思考與練習(xí)第6章 Java的輸入輸出 6.1 流輸入輸出類的層次結(jié)構(gòu) 6.1.1 流的概念 6.1.2 字.節(jié)流 6.1.3 字符流 6.1.4 輸入輸出類的分類 6.1.5 標(biāo)準(zhǔn)流及其重定向 6.1.6 IOExeeption及其子類 6.2 輸人輸出流類的應(yīng)用 6.2.1 輸入輸出流類的般例子 6.2.2 典型的輸入輸出流類的組合應(yīng)用 6.2.3 格式化輸出 6.3 數(shù)據(jù)持久化 6.3.1 對(duì)象串行化 6.3.2 XML文件的輸入輸出 6.3.3 JDBC入門 6.4 文件類的應(yīng)用 6.4.1 File類 6.4.2 File類應(yīng)用舉例 6.5 思考與練習(xí)第7章 Java的集合框架與泛型 7.1 集合API 7.2 Collection與Iterator 7.2.1 Collection接口 7.2.2 迭代器Iterator 7.2.3 1terator的使用舉例 7.3 List.LinkedList與List 7.3.1 List接口 7.3.2 LinkedList與ArrayList類 7.3.3 List的使用舉例 7.4 Set.SortedSEt.HashSet與TreeSet 7.4.1 Set和SortedSEt接口 7.4.2 HashSet.TreeSet和LinkedHashSet類 7.4.3 Set的使用舉例 7.5 Map.SortedMap接口及其實(shí)現(xiàn)類 7.5.1 Map接口 7.5.2 SortedMap接口 7.5.3 HashMap.TreeMap和LinkedHashMap等實(shí)現(xiàn)類 7.5.4 Map的使用舉例 7.6 泛型類型 7.6.1 向下轉(zhuǎn)型與ClassCastException異常 7.6.2 泛型的定義 7.6.3 泛型的使用 7.6.4 泛型的設(shè)計(jì) 7.7 思考與練習(xí)第8章 Java的圖形用戶界面 8.1 JFC的組成 8.1.1 AWT 8.1.2 Swing 8.1.3 DragandDrop 8.1.4 Java2D 8.1.5 JavaAccessibility 8.2 應(yīng)用程序和小程序界面圖形化 8.2.1 Swing的根面板 8.2.2 小程序的典型例子 8.2.3 應(yīng)用程序的典型例子 8.2.4 結(jié)合小程序和應(yīng)用程序的典型例子 8.3 AWT的組件布局管理模型 8.3.1 基于策略模式的授權(quán)模型 8.3.2 布局管理器類 8.4 AWT的事件處理模型 8.4.1 基于觀察者模式的授權(quán)模型 8.4.2 事件源 8.4.3 事件類 8.4.4 事件監(jiān)聽器 8.4.5 創(chuàng)建事件監(jiān)聽器對(duì)象 8.5 思考與練習(xí)附錄 源代碼清單參考文獻(xiàn)
章節(jié)摘錄
插圖:從以上的步驟看,可以發(fā)現(xiàn)Java虛擬機(jī)的執(zhí)行機(jī)制和數(shù)控機(jī)床的執(zhí)行機(jī)制非常相似。如果有一定的生活經(jīng)驗(yàn)積累,對(duì)理解一些抽象的概念是有所幫助的?!?.為什么要使用Java虛擬機(jī)?由于web應(yīng)用的地域分布很廣,跨平臺(tái)問(wèn)題比以往的任何應(yīng)用都突出。高級(jí)語(yǔ)言如果要在不同的平臺(tái)上運(yùn)行,一般需要把源代碼移植到不同的平臺(tái)上重新修改編譯,最終生成不同的目標(biāo)代碼。對(duì)于一個(gè)項(xiàng)目而言,如果要實(shí)現(xiàn)構(gòu)建的代碼在不同的平臺(tái)上移植,有兩條途徑:一是讓所有系統(tǒng)平臺(tái)采用完全相同的標(biāo)準(zhǔn)架構(gòu),直接利用編譯好的應(yīng)用程序;二是面向各種異構(gòu)平臺(tái)修改源代碼,重新編譯、調(diào)試、運(yùn)行。對(duì)于第一條途徑,從現(xiàn)狀看其協(xié)調(diào)難度很大;對(duì)于第二條途徑,從現(xiàn)狀看受到的約束比較小,有實(shí)現(xiàn)的可能。但是,當(dāng)項(xiàng)目的代碼量比較大時(shí),移植過(guò)程的代碼修改量往往超乎預(yù)料,讓開發(fā)者頭疼不已。那么,有沒有可能找到一個(gè)辦法,讓用戶在現(xiàn)有的異構(gòu)平臺(tái)基礎(chǔ)上移植代碼的修改量最少呢?答案是肯定的。如果仔細(xì)分析,就會(huì)發(fā)現(xiàn)異構(gòu)系統(tǒng)平臺(tái)的底層描述確實(shí)存在一些差異,不過(guò)這些差異是有限且相對(duì)穩(wěn)定的。當(dāng)采用編譯型語(yǔ)言進(jìn)行應(yīng)用開發(fā)時(shí),語(yǔ)言的編譯環(huán)境與系統(tǒng)平臺(tái)直接綁定,致使這些差異在各種應(yīng)用中被反復(fù)頻繁引用,從而引發(fā)“蝴蝶效應(yīng)”,使得一個(gè)應(yīng)用在異構(gòu)系統(tǒng)平臺(tái)中重新編譯時(shí)不得不修改大量代碼才能再編譯運(yùn)行。
編輯推薦
《Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程(第2版)》:教學(xué)目標(biāo)明確,注重理論與實(shí)踐的結(jié)合教學(xué)方法靈活,培養(yǎng)學(xué)生自主學(xué)習(xí)的能力教學(xué)內(nèi)容先進(jìn),強(qiáng)調(diào)計(jì)算機(jī)在各專業(yè)中的應(yīng)用教學(xué)模式完善,提供配套的教學(xué)資源解決方案
圖書封面
圖書標(biāo)簽Tags
無(wú)
評(píng)論、評(píng)分、閱讀與下載
Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程 PDF格式下載