深入理解Java7

出版時(shí)間:2012-5  出版社:機(jī)械工業(yè)出版社  作者:成富  頁(yè)數(shù):467  
Tag標(biāo)簽:無(wú)  

前言

  前言:  為什么要寫(xiě)這本書(shū)  我最早開(kāi)始接觸Java語(yǔ)言是在大學(xué)的時(shí)候。當(dāng)時(shí)除了用Java開(kāi)發(fā)一些小程序之外,就是用Struts框架開(kāi)發(fā)Web應(yīng)用。在后來(lái)的實(shí)習(xí)和工作中,我對(duì)Java的使用和理解更加深入,逐漸涉及Java相關(guān)的各種不同技術(shù)。使用Java語(yǔ)言的一個(gè)深刻體會(huì)是:Java語(yǔ)言雖然上手容易,但是要真正掌握并不容易。  Java語(yǔ)言對(duì)開(kāi)發(fā)人員屏蔽了一些與底層實(shí)現(xiàn)相關(guān)的細(xì)節(jié),但是仍然有很多內(nèi)容對(duì)開(kāi)發(fā)人員來(lái)說(shuō)是很復(fù)雜的,這些內(nèi)容恰好是容易出現(xiàn)錯(cuò)誤的地方。我在工作中就經(jīng)常遇到與類(lèi)加載器和垃圾回收相關(guān)的問(wèn)題。在解決這些問(wèn)題的過(guò)程中,我積累了一些經(jīng)驗(yàn),遇到類(lèi)似的問(wèn)題可以很快地找到問(wèn)題的根源。同時(shí),在解決這些實(shí)際問(wèn)題的過(guò)程中,我意識(shí)到雖然可以解決某些具體的問(wèn)題,但是并沒(méi)有真正理解這些問(wèn)題的解決辦法背后所蘊(yùn)含的基本原理,仍然還只是處于一個(gè)“知其然,不知其所以然”的狀態(tài)。于是我開(kāi)始閱讀Java相關(guān)的基礎(chǔ)資料,包括Java語(yǔ)言規(guī)范、Java虛擬機(jī)規(guī)范、Java類(lèi)庫(kù)的源代碼和其他在線資料等。在閱讀的基礎(chǔ)上,編寫(xiě)小程序進(jìn)行測(cè)試和試驗(yàn)。通過(guò)閱讀和實(shí)踐,我對(duì)Java平臺(tái)中的一些基本概念有了更加深入的理解。從2010年開(kāi)始,我對(duì)積累的相關(guān)知識(shí)進(jìn)行了整理,在InfoQ中文站的“Java深度歷險(xiǎn)”專(zhuān)欄上發(fā)表出來(lái),受到了一定的關(guān)注?! ?011年7月,在時(shí)隔數(shù)年之后,Java的一個(gè)重大版本Java SE 7發(fā)布了。在這個(gè)新的版本中,Java平臺(tái)增加了很多新的特性。在Java虛擬機(jī)方面,invokedynamic指令的加入使虛擬機(jī)上的動(dòng)態(tài)語(yǔ)言的性能得到很大的提升。這使得開(kāi)發(fā)人員可以享受到動(dòng)態(tài)語(yǔ)言帶來(lái)的在提高生產(chǎn)效率方面的好處。在Java語(yǔ)言方面,語(yǔ)言本身的進(jìn)一步簡(jiǎn)化,使開(kāi)發(fā)人員編寫(xiě)代碼的效率更高。在Java類(lèi)庫(kù)方面,新的IO庫(kù)和同步實(shí)用工具類(lèi)為開(kāi)發(fā)人員提供了更多實(shí)用的功能。從另外一個(gè)角度來(lái)說(shuō),Java SE 7是Oracle公司收購(gòu)Sun公司之后發(fā)布的第一個(gè)Java版本,從側(cè)面反映出了Oracle公司對(duì)Java社區(qū)的領(lǐng)導(dǎo)力,可以繼續(xù)推動(dòng)Java平臺(tái)向前發(fā)展。這可以打消企業(yè)和社區(qū)對(duì)于Oracle公司領(lǐng)導(dǎo)力的顧慮。Java SE 7的發(fā)布也證明了基于JCP和OpenJDK的社區(qū)驅(qū)動(dòng)模式可以很好地推動(dòng)Java向前發(fā)展?! ‰S著新版本的發(fā)布,肯定會(huì)有越來(lái)越多的開(kāi)發(fā)人員想嘗試使用Java SE 7中的新特性,畢竟開(kāi)發(fā)者社區(qū)對(duì)這個(gè)新版本期待了太長(zhǎng)的時(shí)間。在Java程序中使用這些新特性,可以提高代碼質(zhì)量,提升工作效率。Java平臺(tái)的每個(gè)版本都致力于提高Java程序的運(yùn)行性能。隨著新版本的發(fā)布,企業(yè)都應(yīng)該考慮把Java程序的運(yùn)行平臺(tái)升級(jí)到最新的Java SE 7,這樣可以享受到性能提升所帶來(lái)的好處。對(duì)于新的Java程序開(kāi)發(fā),推薦使用Java SE 7作為標(biāo)準(zhǔn)的運(yùn)行平臺(tái)。本書(shū)將Java SE 7中的新特性介紹和對(duì)Java平臺(tái)的深入探討結(jié)合起來(lái),讓讀者既可以了解最新版本的Java平臺(tái)的新特性,又可以對(duì)Java平臺(tái)的底層細(xì)節(jié)有更加深入的理解?! ∽x者對(duì)象及如何閱讀本書(shū)  本書(shū)面向的主要讀者是具備一定Java基礎(chǔ)的開(kāi)發(fā)人員和在校學(xué)生。本書(shū)中不涉及Java的基本語(yǔ)法,因此不適合Java初學(xué)者閱讀。如果只對(duì)Java SE 7中的新特性感興趣,可以閱讀第1章到第6章;如果對(duì)Java中的特定主題感興趣,可以根據(jù)目錄有選擇地閱讀。另外,第1章到第6章雖然以Java SE 7的新特性介紹為主,但是其中也穿插了對(duì)相關(guān)內(nèi)容的深入探討?! ”緯?shū)可分為三大部分:  第一部分為Java SE 7新特性介紹,從第1章到第6章。這部分詳細(xì)地介紹了Java SE 7中新增的重要特性。在對(duì)新特性的介紹中,也包含了對(duì)Java平臺(tái)相關(guān)內(nèi)容的詳細(xì)介紹?! 〉诙糠譃镴ava SE 7的深入探討,從第7章到第13章。這部分著重講解了Java平臺(tái)上的底層實(shí)現(xiàn),并對(duì)一些重要的特性進(jìn)行了深入探討。這個(gè)部分所涉及的內(nèi)容包括Java虛擬機(jī)、Java源代碼和字節(jié)代碼操作、Java類(lèi)加載器、對(duì)象生命周期、多線程與并發(fā)編程實(shí)踐、Java泛型和Java安全?! 〉谌糠譃镴ava SE 8的內(nèi)容展望,即第14章。這部分簡(jiǎn)要介紹了Java SE 8中將要增加的新特性?! ”緯?shū)還通過(guò)兩個(gè)附錄對(duì)OpenJDK(附錄A)和Java語(yǔ)言的歷史(附錄B)進(jìn)行了簡(jiǎn)要的介紹?! 】闭`和支持  由于作者的水平有限,編寫(xiě)時(shí)間倉(cāng)促,書(shū)中難免會(huì)出現(xiàn)一些錯(cuò)誤或者不準(zhǔn)確的地方,懇請(qǐng)讀者批評(píng)指正?! ≈轮x  感謝InfoQ中文站和InfoQ編輯張凱峰先生。這本書(shū)能夠面世,得益于我在InfoQ中文站的“Java深度歷險(xiǎn)”專(zhuān)欄上發(fā)表的文章?! 「兄x機(jī)械工業(yè)出版社華章公司的編輯楊福川和姜影的辛勤工作,使得這本書(shū)能夠最終順利完成。  感謝家人和朋友對(duì)我的支持與幫助!

內(nèi)容概要

  本書(shū)是學(xué)習(xí)Java
7新功能和新特性以及深入理解Java核心技術(shù)的最佳選擇之一。經(jīng)過(guò)近6年的等待,Java迎來(lái)了它的又一個(gè)歷史性的版本—Java
7。Java 7在提高開(kāi)發(fā)人員的生產(chǎn)效率、平臺(tái)性能和模塊方向上又邁進(jìn)了一步,變得更加強(qiáng)大和靈活。本書(shū)不僅對(duì)Java
7的所有重要更新進(jìn)行了全面的解讀,而且還對(duì)Java平臺(tái)的核心技術(shù)的底層實(shí)現(xiàn)進(jìn)行了深入探討,包含大量最佳實(shí)踐。
全書(shū)的主要內(nèi)容可分為三大部分:第一部分是1~6章,全面闡釋Java
7在語(yǔ)法、JVM、類(lèi)庫(kù)和API等方面的所有重要新功能和新特性,掌握這部分內(nèi)容有助于大幅度提升編碼效率和提高代碼質(zhì)量;第二部分是7~13章,對(duì)JVM、Java源代碼和字節(jié)代碼操作、類(lèi)加載器、對(duì)象生命周期、多線程、并發(fā)編程、泛型、安全等Java平臺(tái)的核心技術(shù)進(jìn)行了深入解析,掌握這部分內(nèi)容有助于深入理解Java的底層原理;第三部分為第14章,是對(duì)Java
8的展望,簡(jiǎn)要介紹了Java 8中將要增加的新特性。

作者簡(jiǎn)介

  成富 資深Java軟件工程師,有多年Java企業(yè)級(jí)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn),對(duì)Java
7和Java平臺(tái)的各項(xiàng)技術(shù)的底層原理有深入透徹的研究。曾就職于IBM中國(guó)研發(fā)中心,先后在IBM新技術(shù)學(xué)院和Lotus部門(mén)參與了多個(gè)重要產(chǎn)品的開(kāi)發(fā)工作,現(xiàn)就職于新西蘭PropellerHead公司。他是非常受歡迎的技術(shù)作家,在IBM
developerWorks上發(fā)表中英文技術(shù)文章近30篇,獲得了其頒發(fā)的“極具人氣作者獎(jiǎng)”;他還是知名技術(shù)網(wǎng)站InfoQ的專(zhuān)欄作家,撰寫(xiě)了“Java深度歷險(xiǎn)”專(zhuān)欄,共發(fā)表技術(shù)文章10余篇。此外,他還非常精通HTML
5、CSS 3、JavaScript等Web 2.0核心技術(shù),實(shí)戰(zhàn)經(jīng)驗(yàn)豐富。

書(shū)籍目錄

前言
Java的挑戰(zhàn)與展望
第1章 Java 7語(yǔ)法新特性
 1.1 Coin項(xiàng)目介紹
 1.2 在switch語(yǔ)句中使用字符串
 1.2.1 基本用法
 1.2.2 實(shí)現(xiàn)原理
 1.2.3 枚舉類(lèi)型
 1.3 數(shù)值字面量的改進(jìn)
 1.3.1 二進(jìn)制整數(shù)字面量
 1.3.2 在數(shù)值字面量中使用下劃線
 1.4 優(yōu)化的異常處理
 1.4.1 異常的基礎(chǔ)知識(shí)
 1.4.2 創(chuàng)建自己的異常
 1.4.3 處理異常
 1.4.4 Java 7的異常處理新特性
 1.5 try-with-resources語(yǔ)句
 1.6 優(yōu)化變長(zhǎng)參數(shù)的方法調(diào)用
 1.7 小結(jié)
第2章 Java語(yǔ)言的動(dòng)態(tài)性
 2.1 腳本語(yǔ)言支持API
 2.1.1 腳本引擎
 2.1.2 語(yǔ)言綁定
 2.1.3 腳本執(zhí)行上下文
 2.1.4 腳本的編譯
 2.1.5 方法調(diào)用
 2.1.6 使用案例
 2.2 反射API
 2.2.1 獲取構(gòu)造方法
 2.2.2 獲取域
 2.2.3 獲取方法
 2.2.4 操作數(shù)組
 2.2.5 訪問(wèn)權(quán)限與異常處理
 2.3 動(dòng)態(tài)代理
 2.3.1 基本使用方式
 2.3.2 使用案例
 2.4 動(dòng)態(tài)語(yǔ)言支持
 2.4.1 Java語(yǔ)言與Java虛擬機(jī)
 2.4.2 方法句柄
 2.4.3 invokedynamic指令
 2.5 小結(jié)
第3章 Java IO
 3.1 流
 3.1.1 基本輸入流
 3.1.2 基本輸出流
 3.1.3 輸入流的復(fù)用
 3.1.4 過(guò)濾輸入輸出流
 3.1.5 其他輸入輸出流
 3.1.6 字符流
 3.2 緩沖區(qū)
 3.2.1 基本用法
 3.2.2 字節(jié)緩沖區(qū)
 3.2.3 緩沖區(qū)視圖
 3.3 通道
 3.3.1 文件通道
 3.3.2 套接字通道
 3.4 NIO.2
 3.4.1 文件系統(tǒng)訪問(wèn)
 3.4.2 zipjar文件系統(tǒng)
 3.4.3 異步IO通道
 3.4.4 套接字通道綁定與配置
 3.4.5 IP組播通道
 3.5 使用案例
 3.6 小結(jié)
第4章 國(guó)際化與本地化
 4.1 國(guó)際化概述
 4.2 Unicode
 4.2.1 Unicode編碼格式
 4.2.2 其他字符集
 4.2.3 Java與Unicode
 4.3 Java中的編碼實(shí)踐
 4.3.1 Java NIO中的編碼器和解碼器
 4.3.2 亂碼問(wèn)題詳解
 4.4 區(qū)域設(shè)置
 4.4.1 IETF BCP 47
 4.4.2 資源包
 4.4.3 日期和時(shí)間
 4.4.4 數(shù)字和貨幣
 4.4.5 消息文本
 4.4.6 默認(rèn)區(qū)域設(shè)置的類(lèi)別
 4.4.7 字符串比較
 4.5 國(guó)際化與本地化基本實(shí)踐
 4.6 小結(jié)
第5章 圖形用戶界面
 5.1 Java圖形用戶界面概述
 5.2 AWT
 5.2.1 重要組件類(lèi)
 5.2.2 任意形狀的窗口
 5.2.3 半透明窗口
 5.2.4 組件混合
 5.3 Swing
 5.3.1 重要組件類(lèi)
 5.3.2 JLayer組件和LayerUI類(lèi)
 5.4 事件處理與線程安全性
 5.4.1 事件處理
 5.4.2 事件分發(fā)線程
 5.4.3 SwingWorker類(lèi)
 5.4.4 SecondaryLoop接口
 5.5 界面繪制
 5.5.1 AWT中的界面繪制
 5.5.2 Swing中的繪制
 5.6 可插拔式外觀樣式
 5.7 JavaFX
 5.7.1 場(chǎng)景圖
 5.7.2 變換
 5.7.3 動(dòng)畫(huà)效果
 5.7.4 FXML
 5.7.5 CSS外觀描述
 5.7.6 Web引擎與網(wǎng)頁(yè)顯示
 5.8 使用案例
 5.9 小結(jié)
第6章 Java 7其他重要更新
 6.1 關(guān)系數(shù)據(jù)庫(kù)訪問(wèn)
 6.1.1 使用try-with-resources語(yǔ)句
 6.1.2 數(shù)據(jù)庫(kù)查詢的默認(rèn)模式
 6.1.3 數(shù)據(jù)庫(kù)連接超時(shí)時(shí)間與終止
 6.1.4 語(yǔ)句自動(dòng)關(guān)閉
 6.1.5 RowSet實(shí)現(xiàn)提供者
 6.2 java.lang包的更新
 6.2.1 基本類(lèi)型的包裝類(lèi)
 6.2.2 進(jìn)程使用
 6.2.3 Thread類(lèi)的更新
 6.3 Java實(shí)用工具類(lèi)
 6.3.1 對(duì)象操作
 6.3.2 正則表達(dá)式
 6.3.3 壓縮文件處理
 6.4 JavaBeans組件
 6.4.1 獲取組件信息
 6.4.2 執(zhí)行語(yǔ)句和表達(dá)式
 6.4.3 持久化
 6.5 小結(jié)
第7章 Java虛擬機(jī)
 7.1 虛擬機(jī)基本概念
 7.2 內(nèi)存管理
 7.3 引用類(lèi)型
 7.3.1 強(qiáng)引用
 7.3.2 引用類(lèi)型基本概念
 7.3.3 軟引用
 7.3.4 弱引用
 7.3.5 幽靈引用
 7.3.6 引用隊(duì)列
 7.4 Java本地接口
 7.4.1 JNI基本用法
 7.4.2 Java程序中集成CC++代碼
 7.4.3 在CC++程序中啟動(dòng)Java虛擬機(jī)
 7.5 HotSpot虛擬機(jī)
 7.5.1 字節(jié)代碼執(zhí)行
 7.5.2 垃圾回收
 7.5.3 啟動(dòng)參數(shù)
 7.5.4 分析工具
 7.5.5 Java虛擬機(jī)工具接口
 7.6 小結(jié)
第8章 Java源代碼和字節(jié)代碼操作
 8.1 Java字節(jié)代碼格式
 8.1.1 基本格式
 8.1.2 常量池的結(jié)構(gòu)
 8.1.3 屬性
 8.2 動(dòng)態(tài)編譯Java源代碼
 8.2.1 使用javac工具
 8.2.2 Java編譯器API
 8.2.3 使用Eclipse JDT編譯器
 8.3 字節(jié)代碼增強(qiáng)
 8.3.1 使用ASM
 8.3.2 增強(qiáng)代理
 8.4 注解
 8.4.1 注解類(lèi)型
 8.4.2 創(chuàng)建注解類(lèi)型
 8.4.3 使用注解類(lèi)型
 8.4.4 處理注解
 8.5 使用案例
 8.6 小結(jié)
第9章 Java類(lèi)加載器
 9.1 類(lèi)加載器概述
 9.2 類(lèi)加載器的層次結(jié)構(gòu)與代理模式
 9.3 創(chuàng)建類(lèi)加載器
 9.4 類(lèi)加載器的隔離作用
 9.5 線程上下文類(lèi)加載器
 9.6 Class.forName方法
 9.7 加載資源
 9.8 Web應(yīng)用中的類(lèi)加載器
 9.9 OSGi中的類(lèi)加載器
 9.9.1 OSGi基本的類(lèi)加載器機(jī)制
 9.9.2 Equinox框架的類(lèi)加載實(shí)現(xiàn)機(jī)制
 9.9.3 Equinox框架嵌入到Web容器中
 9.10 小結(jié)
第10章 對(duì)象生命周期
 10.1 Java類(lèi)的鏈接
 10.2 Java類(lèi)的初始化
 10.3 對(duì)象的創(chuàng)建與初始化
 10.4 對(duì)象終止
 10.5 對(duì)象復(fù)制
 10.6 對(duì)象序列化
 10.6.1 默認(rèn)的對(duì)象序列化
 10.6.2 自定義對(duì)象序列化
 10.6.3 對(duì)象替換
 10.6.4 版本更新
 10.6.5 安全性
 10.6.6 使用Externalizable接口
 10.7 小結(jié)
第11章 多線程與并發(fā)編程實(shí)踐
 11.1 多線程
 11.1.1 可見(jiàn)性
 11.1.2 Java內(nèi)存模型
 11.1.3 volatile關(guān)鍵詞
 11.1.4 final關(guān)鍵詞
 11.1.5 原子操作
 11.2 基本線程同步方式
 11.2.1 synchronized關(guān)鍵詞
 11.2.2 Object類(lèi)的wait、notify和notifyAll方法
 11.3 使用Thread類(lèi)
 11.3.1 線程狀態(tài)
 11.3.2 線程中斷
 11.3.3 線程等待、睡眠和讓步
 11.4 非阻塞方式
 11.5 高級(jí)實(shí)用工具
 11.5.1 高級(jí)同步機(jī)制
 11.5.2 底層同步器
 11.5.3 高級(jí)同步對(duì)象
 11.5.4 數(shù)據(jù)結(jié)構(gòu)
 11.5.5 任務(wù)執(zhí)行
 11.6 Java SE 7新特性
 11.6.1 輕量級(jí)任務(wù)執(zhí)行框架forkjoin
 11.6.2 多階段線程同步工具
 11.7 ThreadLocal類(lèi)
 11.8 小結(jié)
第12章 Java泛型
 12.1 泛型基本概念
 12.2 類(lèi)型擦除
 12.3 上界和下界
 12.4 通配符
 12.5 泛型與數(shù)組
 12.6 類(lèi)型系統(tǒng)
 12.7 覆寫(xiě)與重載
 12.7.1 覆寫(xiě)對(duì)方法類(lèi)型簽名的要求
 12.7.2 覆寫(xiě)對(duì)返回值類(lèi)型的要求
 12.7.3 覆寫(xiě)對(duì)異常聲明的要求
 12.7.4 重載
 12.8 類(lèi)型推斷和<>操作符
 12.9 泛型與反射API
 12.10 使用案例
 12.11 小結(jié)
第13章 Java安全
 13.1 Java安全概述
 13.2 用戶認(rèn)證
 13.2.1 主體、身份標(biāo)識(shí)與憑證
 13.2.2 登錄
 13.3 權(quán)限控制
 13.3.1 權(quán)限、策略與保護(hù)域
 13.3.2 訪問(wèn)控制權(quán)限
 13.3.3 特權(quán)動(dòng)作
 13.3.4 訪問(wèn)控制上下文
 13.3.5 守衛(wèi)對(duì)象
 113.4 加密與解密、報(bào)文摘要和數(shù)字簽名
 13.4.1 Java密碼框架
 13.4.2 加密與解密
 13.4.3 報(bào)文摘要
 13.4.4 數(shù)字簽名
 13.5 安全套接字連接
 13.5.1 SSL協(xié)議
 13.5.2 HTTPS
 13.6 使用案例
 13.7 小結(jié)
第14章 超越Java 7
 14.1 lambda表達(dá)式
 14.1.1 函數(shù)式接口
 14.1.2 lambda表達(dá)式的語(yǔ)法
 14.1.3 目標(biāo)類(lèi)型
 14.1.4 詞法作用域
 14.1.5 方法引用
 14.1.6 接口的默認(rèn)方法
 14.2 Java平臺(tái)模塊化
 14.3 Java SE 8的其他更新
 14.4 小結(jié)
 附錄A OpenJDK
 附錄B Java簡(jiǎn)史 4483.4 加密與解密、報(bào)文摘要和數(shù)字簽名
 13.4.1 Java密碼框架
 13.4.2 加密與解密
 13.4.3 報(bào)文摘要
 13.4.4 數(shù)字簽名
 13.5 安全套接字連接
 13.5.1 SSL協(xié)議
 13.5.2 HTTPS
 13.6 使用案例
 13.7 小結(jié)
第14章 超越Java 7
 14.1 lambda表達(dá)式
 14.1.1 函數(shù)式接口
 14.1.2 lambda表達(dá)式的語(yǔ)法
 14.1.3 目標(biāo)類(lèi)型
 14.1.4 詞法作用域
 14.1.5 方法引用
 14.1.6 接口的默認(rèn)方法
 14.2 Java平臺(tái)模塊化
 14.3 Java SE 8的其他更新
 14.4 小結(jié)
附錄A OpenJDK
附錄B Java簡(jiǎn)史
  

章節(jié)摘錄

版權(quán)頁(yè):   1.1 Coin項(xiàng)目介紹 在介紹具體的新特性之前,有必要介紹一下Coin項(xiàng)目。OpenJDK中的Coin項(xiàng)目的目的是維護(hù)對(duì)Java語(yǔ)言所做的語(yǔ)法增強(qiáng)。在Coin項(xiàng)目開(kāi)始之初,曾經(jīng)廣泛地向社區(qū)征求提議。在短短的一個(gè)月時(shí)間內(nèi)就收到了近70條提議。最后有9條提議被列入考慮之中。在這9條提議中,有6條成為Java 7的一部分,剩下的2條提議會(huì)在Java 8中重新考慮,還有1條提議被移到其他項(xiàng)目中實(shí)現(xiàn)。這6條被接納的提議除了本章會(huì)介紹的在switch語(yǔ)句中使用字符串、數(shù)值字面量的改進(jìn)、優(yōu)化的異常處理、try-with-resources語(yǔ)句和優(yōu)化變長(zhǎng)參數(shù)的方法調(diào)用之外,還包括第12章中會(huì)介紹的簡(jiǎn)化泛型類(lèi)創(chuàng)建的""操作符。在Java 8中考慮的2條提議則分別是集合類(lèi)字面量和為L(zhǎng)ist和Map提供類(lèi)似數(shù)組的按序號(hào)的訪問(wèn)方式。 和其他對(duì)Java平臺(tái)所做的修改一樣,Coin項(xiàng)目所建議的修改也需要通過(guò)JCP來(lái)完成。這些改動(dòng)以JSR 334(Small Enhancements to the JavaTM Programming Language)的形式提交到JCP。 1.2在SWitch語(yǔ)句中使用字符串 對(duì)于switch語(yǔ)句,開(kāi)發(fā)人員應(yīng)該都不陌生。大部分編程語(yǔ)言中都有類(lèi)似的語(yǔ)法結(jié)構(gòu),用來(lái)根據(jù)某個(gè)表達(dá)式的值選擇要執(zhí)行的語(yǔ)句塊。對(duì)于switch語(yǔ)句中的條件表達(dá)式類(lèi)型,不同編程語(yǔ)言所提供的支持是不一樣的。對(duì)于Java語(yǔ)言來(lái)說(shuō),在Java 7之前,switch語(yǔ)句中的條件表達(dá)式的類(lèi)型只能是與整數(shù)類(lèi)型兼容的類(lèi)型,包括基本類(lèi)型char、byte、short和int,與這些基本類(lèi)型對(duì)應(yīng)的封裝類(lèi)Character、Byte、Short和Integer,還有枚舉類(lèi)型。這樣的限制降低了語(yǔ)言的靈活性,使開(kāi)發(fā)人員在需要根據(jù)其他類(lèi)型的表達(dá)式來(lái)進(jìn)行條件選擇時(shí),不得不增加額外的代碼來(lái)繞過(guò)這個(gè)限制。為此,Java 7放寬了這個(gè)限制,額外增加了一種可以在switch語(yǔ)句中使用的表達(dá)式類(lèi)型,那就是很常見(jiàn)的字符串,即String類(lèi)型。 1.2.1 基本用法 在基于Java 7的代碼中使用這個(gè)新特性非常簡(jiǎn)單,因?yàn)檫@個(gè)新特性并沒(méi)有改變switch的語(yǔ)法含義,只是多了一種開(kāi)發(fā)人員可以選擇的條件判斷的數(shù)據(jù)類(lèi)型。但是這個(gè)簡(jiǎn)單的新特性卻帶來(lái)了重大的影響,因?yàn)楦鶕?jù)字符串進(jìn)行條件判斷在開(kāi)發(fā)中是很常見(jiàn)的。 考慮這樣一個(gè)應(yīng)用情景,在程序中需要根據(jù)用戶的性別來(lái)生成合適的稱(chēng)謂,比如男性就使用"×××先生",女性就使用"×××女士"。判斷條件的類(lèi)型可以是字符串,如"男"表示男性,"女"表示女性。不過(guò)這在Java 7之前的switch語(yǔ)句中是行不通的,之前只能添加額外的代碼先將字符串轉(zhuǎn)換成整數(shù)類(lèi)型。

媒體關(guān)注與評(píng)論

備受推崇: Java 7六年磨一劍,它在前一個(gè)版本上發(fā)生了很大的變化,引入了非常多激動(dòng)人心的新特性和新功能,在語(yǔ)法、Java虛擬機(jī)、I/O、安全性、并發(fā)和國(guó)際化等方面都有重要的更新。作為國(guó)內(nèi)第一本Java 7方面的專(zhuān)著,本書(shū)全面介紹了這些重要的更新,對(duì)有一定開(kāi)發(fā)經(jīng)驗(yàn)的Java程序員來(lái)說(shuō)非常寶貴,能極大地降低他們的學(xué)習(xí)成本。此外,本書(shū)還探討了各項(xiàng)Java技術(shù)的底層原理,對(duì)于想深入學(xué)習(xí)Java的讀者尤為有價(jià)值。強(qiáng)烈推薦!  ——51CTO(www.51cto.com) 中國(guó)領(lǐng)先的IT技術(shù)網(wǎng)站  長(zhǎng)期以來(lái),Java一直雄踞TIOBE編程語(yǔ)言排行榜的首位,它擁有人數(shù)最龐大的開(kāi)發(fā)者社區(qū)。Java的每一次版本更新都會(huì)對(duì)語(yǔ)言、虛擬機(jī)和API類(lèi)庫(kù)等進(jìn)行重要更新,Java 7這個(gè)版本尤為明顯。Java 7的一個(gè)顯著改變就是它提供的新特性能讓開(kāi)發(fā)者通過(guò)簡(jiǎn)化代碼來(lái)提升開(kāi)發(fā)效率和編碼質(zhì)量。本書(shū)以“深入理解”為宗旨,對(duì)Java 7中新增的內(nèi)容和之前版本中已經(jīng)非常成熟的核心技術(shù)都進(jìn)行了非常深入的討論,是系統(tǒng)學(xué)習(xí)Java 7和Java技術(shù)進(jìn)階的必備參考書(shū)。書(shū)中還給出了非常多的代碼示例,可以幫助讀者更好地在實(shí)際中應(yīng)用這些知識(shí)。  ——秦小波 資深Java技術(shù)專(zhuān)家  著有暢銷(xiāo)書(shū)《設(shè)計(jì)模式之禪》和《編寫(xiě)高質(zhì)量代碼:改善Java程序的151個(gè)建議》  學(xué)習(xí)一門(mén)技術(shù),要想做到“知其然”并不難,難的是要“知其所以然”,而且這更重要,也是考查一個(gè)技術(shù)人員真實(shí)實(shí)力的標(biāo)桿。想跨越這個(gè)標(biāo)桿,除了自己付出時(shí)間和精力之外,高人的點(diǎn)撥和指導(dǎo)更能起到事半功倍之效。成富是InfoQ中文站的資深專(zhuān)欄作者,從讀者對(duì)他的“Java深度歷險(xiǎn)”系列技術(shù)文章的反饋可以看出:他不僅能幫你“知其然”,而且還能通過(guò)深入淺出的講解讓你“知其所以然”。他的這本書(shū)一定能讓你的Java技能更上一層樓。 ——鄭柯 InfoQ中文站總編輯

編輯推薦

《深入理解Java 7:核心技術(shù)與最佳實(shí)踐》是學(xué)習(xí)Java 7新功能和新特性以及深入理解Java核心技術(shù)的最佳選擇之一。

名人推薦

Java 7六年磨一劍,它在前—個(gè)版本上發(fā)生了很大的變化,引入了非常多激動(dòng)人心的新特性和新功能,在語(yǔ)法、Java虛擬機(jī)、I/O、安全性、并發(fā)和國(guó)際化等方面都有重要的更新。作為國(guó)內(nèi)第一本Java 7方面的專(zhuān)著,本書(shū)全面介紹了這些重要的更新,對(duì)有一定開(kāi)發(fā)經(jīng)驗(yàn)的Java程序員來(lái)說(shuō)非常寶貴,能極大地降低他們的學(xué)習(xí)成本。此外,本書(shū)還探討了各項(xiàng)Java技術(shù)的底層原理,對(duì)于想深入學(xué)習(xí)Java的讀者尤為有價(jià)值。強(qiáng)烈推薦! ——51CTO(www.51cto.com)中國(guó)領(lǐng)先的IT技術(shù)網(wǎng)站 長(zhǎng)期以來(lái),Java一直雄踞TIOBE編程語(yǔ)言排行榜的首位,它擁有人數(shù)最龐大的開(kāi)發(fā)者社區(qū)。Java的每一次版本更新都會(huì)對(duì)語(yǔ)言、虛擬機(jī)和API類(lèi)庫(kù)等進(jìn)行重要更新,Java 7這個(gè)版本尤為明顯。Java 7的—個(gè)顯著改變就是它提供的新特性能讓開(kāi)發(fā)者通過(guò)簡(jiǎn)化代碼來(lái)提升開(kāi)發(fā)效率和編碼質(zhì)量。本書(shū)以"深入理解"為宗旨,對(duì)Java 7中新增的內(nèi)容和之前版本中已經(jīng)非常成熟的核心技術(shù)都進(jìn)行了非常深入的討論,是系統(tǒng)學(xué)習(xí)Java 7和Java技術(shù)進(jìn)階的必備參考書(shū)。書(shū)中還給出了非常多的代碼示例,可以幫助讀者更好地在實(shí)際中應(yīng)用這些知識(shí)。 ——秦小波 資深Java技術(shù)專(zhuān)家著有暢銷(xiāo)書(shū)《設(shè)計(jì)模式之禪》和《編寫(xiě)高質(zhì)量代碼:改善Java程序的151個(gè)建議》 學(xué)習(xí)一門(mén)技術(shù),要想做到"知其然"并不難,難的是要"知其所以然",而且這更重要,也是考查一個(gè)技術(shù)人員真實(shí)實(shí)力的標(biāo)桿。想跨越這個(gè)標(biāo)桿,除了自己付出時(shí)間和精力之外,高人的點(diǎn)撥和指導(dǎo)更能起到事半功倍之效。成富是InfoQ中文站的資深專(zhuān)欄作者,從讀者對(duì)他的"Java深度歷險(xiǎn)"系列技術(shù)文章的反饋可以看出:他不僅能幫你"知其然",而且還能通過(guò)深入淺出的講解讓你"知其所以然"。他的這本書(shū)一定能讓你的Java技能更上一層樓。 ——鄭柯InfoQ中文站總編輯

圖書(shū)封面

圖書(shū)標(biāo)簽Tags

無(wú)

評(píng)論、評(píng)分、閱讀與下載


    深入理解Java7 PDF格式下載


用戶評(píng)論 (總計(jì)66條)

 
 

  •   深入理解Java7:核心技術(shù)與最佳實(shí)踐
    很是不錯(cuò)的java7的書(shū)籍。。。。
  •   之前曾看過(guò)作者在InfoQ上的“Java深度歷險(xiǎn)”專(zhuān)欄,文章都很不錯(cuò),收獲不少。
    新書(shū)出來(lái)以后就果斷下單了,專(zhuān)欄中的部分內(nèi)容也收到了書(shū)中,不過(guò)更多的內(nèi)容是之前沒(méi)有看過(guò)的。我比較感興趣的內(nèi)容是關(guān)于Java7的部分,拿到書(shū)看了第1章的內(nèi)容,對(duì)Coin、數(shù)值字面量的改進(jìn)、優(yōu)化的異常處理等內(nèi)容寫(xiě)得很到位,分析得比較深入,后面的內(nèi)容還沒(méi)有仔細(xì)看,希望也會(huì)不錯(cuò)吧。
  •   原本只是抱著看小說(shuō)的心理買(mǎi)的這本書(shū)。根據(jù)以往的經(jīng)驗(yàn),一般說(shuō)Java6新特性之類(lèi)的,最后大都抄襲文檔。但是這本書(shū)不同??吹某鲎髡哂幸欢ǖ慕?jīng)驗(yàn)和水平,并且能夠很好的結(jié)合自身的經(jīng)驗(yàn)和對(duì)新特性的理解很好的融入在文字中。并且語(yǔ)言嚴(yán)謹(jǐn),值得廣大讀者學(xué)習(xí)。
  •   這本書(shū)不錯(cuò),很值得有java基礎(chǔ)的人去研究,更深層次的去理解java,里面介紹了一些關(guān)于jdk7的一些特性,想學(xué)好java的人更值得去研究
  •   想深入了解和研究java,此書(shū)是很好的選擇。適合進(jìn)階學(xué)習(xí)
  •   Java 7對(duì)比以前的版本,改動(dòng)比較大
    希望能找本書(shū)學(xué)習(xí)一下,當(dāng)當(dāng),不要讓我失望哦
  •   講解的很深很細(xì),能讓自己對(duì)Java7 有一個(gè)比較好的理解,這本書(shū)可以看看 啊
  •   Java 7版本的變化比較大,正需要這方面的資料
    拿到書(shū)粗略翻了一下,不錯(cuò)
  •   熟悉JAVA7,是很好的選擇.
  •   java 我要好好的研究你。
  •   java7的學(xué)習(xí)必備書(shū)籍,相當(dāng)?shù)牟诲e(cuò)
  •   了解Java7的必備和首選的一本書(shū),非常好!
  •   java程序員必看,不管你是多么高深的階段。
  •   很好的JAVA7書(shū)籍!
  •   目前Java 7的書(shū)貌似就這一本
    現(xiàn)在還在預(yù)售,希望能盡快發(fā)貨
  •   給老公買(mǎi)的,他覺(jué)得不錯(cuò),我是看不懂,質(zhì)量不錯(cuò),應(yīng)該是正版
  •   到貨非??欤瑫?shū)本質(zhì)量好
  •   對(duì)于想了解JDK的人還是很有幫助的
  •   這本書(shū)很經(jīng)典,值得一看
  •   雖然有些王婆賣(mài)瓜的嫌疑,不過(guò)這本書(shū)也傾注了我很多的心血。這次是在當(dāng)當(dāng)網(wǎng)上買(mǎi)了送給朋友的。
  •   印刷好,內(nèi)容更好
  •   不錯(cuò)不錯(cuò),但是現(xiàn)在用的最多的還是1.6
  •   not too deep for senior
  •   看完挺深刻的
  •   寫(xiě)的很好。很是喜歡
  •   還沒(méi)來(lái)的及結(jié)細(xì)看,基本是不錯(cuò)
  •   需要 了解一下
  •   不錯(cuò),不過(guò)翻譯有一點(diǎn)點(diǎn)怪,不過(guò)不影響。是本好書(shū)
  •   本書(shū)對(duì)最新的java 7作了深入的解析,看完后受益匪淺.
  •   好書(shū) 每個(gè)java開(kāi)發(fā)人員必備的
  •   java我最喜歡的東西,所以我要從新學(xué)習(xí),雖然已經(jīng)2年沒(méi)有用過(guò)了,但是好多思想都源自java,既然已經(jīng)java7了,那就從新技術(shù)學(xué)起
  •   國(guó)人寫(xiě)的,翻了翻,感覺(jué)是一本很不錯(cuò)的Java書(shū)
    對(duì)我來(lái)說(shuō)還是比較有用
  •   我覺(jué)得這本書(shū)也就是介紹了一下JDK7,又捎帶手提了以前已有的特性。所以感覺(jué)書(shū)的名字有點(diǎn)…………不過(guò)擴(kuò)寬了視野。希望能再往深度去挖掘,比如AIO的底層在不同平臺(tái)的實(shí)現(xiàn)原理等等,新try回收資源的原理,JDBC4.1新規(guī)范的支持程度的具體展現(xiàn)等等吧~~??偟膩?lái)說(shuō)還行吧
  •   沒(méi)咋深入探討其新版本的具體改變及其技術(shù)
  •   剛剛到手,和介紹的一樣,都是核心技術(shù),書(shū)里的文字很多,看著很舒服
  •   這本書(shū)寫(xiě)的還不夠深入,比我想象的有點(diǎn)距離。
  •   有一些東西現(xiàn)實(shí)項(xiàng)目用不到,只能為了了解了解。不過(guò)這是作者用心寫(xiě)的書(shū)。
  •   書(shū)本內(nèi)容一般,理論性強(qiáng)
  •   這個(gè)書(shū)很不錯(cuò),紙張很好,手感也不錯(cuò),內(nèi)容講解清晰,總體比較滿意
  •   還不錯(cuò),送來(lái)的時(shí)候檢查了下,有塑封,包裝還算完整
  •   簡(jiǎn)單一句:你值得擁有!
  •   這書(shū)其實(shí)挺貴的 我發(fā)現(xiàn)機(jī)械工業(yè)出版社出的書(shū) 都不便宜
  •   將的不錯(cuò)
  •   技術(shù)點(diǎn)的羅列,只能當(dāng)工具用用
  •   讀了,然后就把代碼用到工作中,然后害我調(diào)試了一天。書(shū)中有錯(cuò)誤,我也是酒后代碼。
  •   Java 7 New Fea***es Cookbook 的翻譯?
    早知道看英文的了。
  •   語(yǔ)言組織太死板,看起來(lái)太累,費(fèi)勁,書(shū)中的知識(shí)點(diǎn)都是文字,內(nèi)容介紹生硬,知識(shí)點(diǎn)描述沒(méi)有對(duì)應(yīng)圖進(jìn)行輔助的描述;書(shū)中目錄結(jié)構(gòu)中知識(shí)點(diǎn)還不錯(cuò),但是介紹,講解的不好。
  •   機(jī)工的書(shū)質(zhì)量越來(lái)越差,排版印刷都不好。希望改進(jìn)
  •   要想深入理解java核心技術(shù),這本書(shū)可以啊。
  •   這本應(yīng)該是最新的講JAVA7的,內(nèi)容很新,質(zhì)量好,送貨速度很快看得出來(lái)作者寫(xiě)的比較用心,有很多之前沒(méi)有接觸到的東西,很有用加上買(mǎi)的時(shí)候卓越做活動(dòng),價(jià)錢(qián)很合適
  •   內(nèi)容不錯(cuò) 只是寫(xiě)的太泛了 沒(méi)有整體的感覺(jué)不容易看懂
  •   就是羅列的一大堆特性,可以用來(lái)快速了解Java7有哪些新的高級(jí)功能
  •   不錯(cuò),寫(xiě)得有些啰嗦,容易理解
  •   快遞慢,書(shū)的質(zhì)量還可以,但是內(nèi)容太雜,不是很合理,還是有點(diǎn)貴,不劃算
  •   雖然Java7的內(nèi)容占全書(shū)比例并不很高,不過(guò)輔助讀者理解這些內(nèi)容的資料卻是很到位,難得國(guó)內(nèi)有好書(shū)
  •   深度稍嫌欠缺不過(guò)一般也夠用了。作者領(lǐng)進(jìn)門(mén),修行在個(gè)人。通讀后對(duì)Java API有全新認(rèn)識(shí),可以根據(jù)自己感興趣的部分繼續(xù)閱讀相關(guān)書(shū)籍加強(qiáng)深度。
  •   我是一個(gè)把教程當(dāng)小說(shuō)看的人,不知道為什么這本書(shū)看不下去,或許就是作者的文字功底有問(wèn)題吧。
  •   總體來(lái)說(shuō)還是很不錯(cuò)的,有助于提高對(duì)Java7的認(rèn)識(shí)。哈哈。滿意。
  •   有4年java開(kāi)發(fā)經(jīng)驗(yàn)了,本想著學(xué)習(xí)一下java7買(mǎi)了這本書(shū),沒(méi)想到越往后看,越?jīng)]法看。后面章節(jié)基本都是隨便弄些個(gè)例子,告訴讀者有這么些功能,但是不會(huì)全面介紹,讀完還是啥都不會(huì)。不建議購(gòu)買(mǎi),建議作者學(xué)習(xí)一下李剛的《瘋狂java講義》,看看人家是怎樣寫(xiě)書(shū)的。此書(shū)標(biāo)價(jià)79元,絕對(duì)不值。... 閱讀更多
  •   對(duì)Java 7新特性的闡述,很到位。有些地方講得比較深入,需要有一定功底的人才能徹底看明白。有些地方到現(xiàn)在還不是很懂,沒(méi)讀一遍都會(huì)加深理解,確實(shí)是不錯(cuò)的一本java書(shū),值得一讀,僅此推薦。
  •   看到作者一篇關(guān)于ClassLoader的文章就知道作者確實(shí)是個(gè)大拿,不知道寫(xiě)的書(shū)如何。
  •   書(shū)本內(nèi)容比較新,雖然講的不夠深入,但勝在全面,唯一不足的是,感覺(jué)到手的書(shū)沒(méi)有書(shū)店的書(shū)亮呢?我發(fā)覺(jué)在亞馬遜買(mǎi)的書(shū)差不多都是這樣。。我在書(shū)店離老遠(yuǎn)都能看到那些書(shū)閃閃發(fā)光,,自己到手的書(shū)則一點(diǎn)光都沒(méi)有,看起來(lái)有些暗,顏色也淺,表示懷疑其正版。。
  •   快速了解java7工具書(shū)
  •   還算可以,不過(guò)講的不是很深
  •   對(duì)Java7有深入理解
  •   很好的書(shū),值得慢慢研讀
 

250萬(wàn)本中文圖書(shū)簡(jiǎn)介、評(píng)論、評(píng)分,PDF格式免費(fèi)下載。 第一圖書(shū)網(wǎng) 手機(jī)版

京ICP備13047387號(hào)-7