圖書簡介
在《Java完全參考手冊(第8版)》中,編程暢銷書作者Herb Schildt向您展示了開發、編譯、調試以及運行Java程式所需要掌握的全部知識。本書內容豐富,針對Java SE 7進行了全面更新,涵蓋了Java語言的方方面面,包括語法、關鍵字以及基本的編程原則。此外,本書還介紹了Java API庫的關鍵元素,分析了Java Bean、servlet、applet以及Swing,並通過真實的案例演示了Java在編程中的實際套用。
編輯推薦
《Java完全參考手冊(第8版)》還介紹了Java API庫的關鍵元素,分析了Java Bean、servlet、applet以及Swing,並通過真實的案例演示了Java在編程中的實際套用。在講解的過程中,書中貫穿了Java SE 7的最新特性,例如帶資源的try語句、在switch語句中使用字元串、使用菱形運算符“<>”的類型推斷功能、NIO.2輸入輸出系統以及For’k/Join Framework。
作者簡介
作者:(美國)施密特(Herbert Schildt) 譯者:王德才 吳明飛 唐業軍
施密特(Herbert Schildt),世界頂級程式設計大師,全球頂尖編程圖書作者之一。他是C、C++、Java和C#程式語言方面的權威,也是Windows編程方面的專家。他的編程書籍在全球銷量已經超過300萬冊,並被翻譯成多種語言流傳於世,包括Java:The Complete Reference、C++:The Complete Reference、C:The Complete Reference等。
目錄
第Ⅰ部分Java語言
第1章Java的歷史和演變
1.1Java的家世
1.1.1現代程式語言的誕生:C語言
1.1.2C++:下一個階段
1.1.3Java出現的時機已經成熟
1.2Java的誕生
1.3Java改變Internet的方式
1.3.1Javaapplet
1.3.2安全性
1.3.3可移植性
1.4Java的魔力:位元組碼
1.5servlet:伺服器端的Java
1.6Java的關鍵特性
1.6.1簡單性
1.6.2面向對象
1.6.3健壯性
1.6.4多執行緒
1.6.5體系結構中立
1.6.6解釋執行和高性能
1.6.7分散式
1.6.8動態性
1.7Java的演變歷程
1.8文化革新
第2章Java綜述
2.1面向對象編程
2.1.1兩種範式
2.1.2抽象
2.1.3OOP三原則
2.2第一個簡單程式
2.2.1輸入程式
2.2.2編譯程式
2.2.3深入分析第一個示例程式
2.3第二個簡短程式
2.4兩種控制語句
2.4.1if語句
2.4.2for循環
2.5使用代碼塊
2.6辭彙問題
2.6.1空白符
2.6.2標識符
2.6.3字面值
2.6.4注釋
2.6.5分隔設定
2.6.6Java關鍵字
2.7Java類庫
第3章數據類型、變數和數組
3.1Java是強類型化的語言
3.2基本類型
3.3整型
3.3.1byte
3.3.2short
3.3.3int
3.3.4long
3.4浮點型
3.4.1float
3.4.2double
3.5字元型
3.6布爾型
3.7深入分析字面值
3.7.1整型字面值
3.7.2浮點型字面值
3.7.3布爾型字面值
3.7.4字元型字面值
3.7.5字元串字面值
3.8變數
3.8.1變數的聲明
3.8.2動態初始化
3.8.3變數的作用域和生命周期
3.9類型轉換和強制類型轉換
3.9.1Java的自動類型轉換
3.9.2強制轉換不兼容的類型
3.10表達式中的自動類型提升
3.11數組
3.11.1一維數組
3.11.2多維數組
3.11.3另一種數組聲明語法
3.12關於字元串的一些說明
3.13向C/C++程式設計師提供指針方面的註解
第4章運算符
4.1算術運算符
4.1.1基本算術運算符
4.1.2求模運算符
4.1.3算術與賦值複合運算符
4.1.4自增與自減運算符
4.2位運算符
4.2.1位邏輯運算符
4.2.2左移
4.2.3右移
4.2.4無符號右移
4.2.5位運算符與賦值的組合
4.3關係運算符
4.4布爾邏輯運算符
4.5賦值運算符
4.6“?”運算符
4.7運算符的優先權
4.8使用圓括弧
第5章控制語句
5.1Java的選擇語句
5.1.1if語句
5.1.2switch語句
5.2疊代語句
5.2.1while語句
5.2.2do—while語句
5.2.3for語句
5.2.4for循環的for—each版本
5.2.5嵌套的循環
5.3跳轉語句
5.3.1使用break語句
5.3.2使用continue語句
5.3.3return語句
第6章類
6.1類的基礎知識
6.1.1類的一般形式
6.1.2一個簡單的類
6.2聲明對象
6.3為對象引用變數賦值
6.4方法
6.4.1為Box類添加方法
6.4.2返回值
6.4.3添加帶參數的方法
6.5構造函式
6.6this關鍵字
6.7垃圾回收
6.8finalize()方法
6.9堆疊類
第7章方法和類的深入分析
7.1重載方法
7.2將對象用作參數
7.3參數傳遞的深入分析
7.4返回對象
7.5遞歸
7.6訪問控制
7.7理解static
7.8final介紹
7.9重新審視數組
7.10嵌套類和內部類
7.11String類介紹
7.12使用命令行參數
7.13varargs:可變長度參數
7.13.1重載varargs方法
7.13.2varargs方法與模糊性
第8章繼承
8.1繼承的基礎知識
8.1.1成員訪問與繼承
8.1.2一個更實際的例子
8.1.3超類變數可以引用子類對象
8.2使用super關鍵字
8.2.1使用super調用超類的構造函式
8.2.2super的另一種用法
8.3創建多級繼承層次
8.4構造函式的調用時機
8.5方法重寫
8.6動態方法調度
8.6.1重寫方法的目的
8.6.2套用方法重寫
8.7使用抽象類
8.8在繼承中使用final關鍵字
8.8.1使用final關鍵字阻止重寫
8.8.2使用final關鍵字阻止繼承
8.9Object類
第9章包和接口
9.1包
9.1.1定義包
9.1.2包查找與CLASSPATH
9.1.3一個簡短的包示例
9.2訪問保護
9.3導入包
9.4接口
9.4.1定義接口
9.4.2實現接口
9.4.3嵌套接口
9.4.4套用接口
9.4.5接口中的變數
9.4.6接口可以擴展
第10章異常處理
10.1異常處理的基礎知識
10.2異常類型
10.3未捕獲的異常
10.4使用try和catch
10.5多條catch子句
10.6嵌套的try語句
10.7throw
10.8throws
10.9finally
10.10Java的內置異常
10.11創建自己的異常子類
10.12鏈式異常
10.13JDK7中3個新的異常特性
10.14使用異常
第11章多執行緒編程
11.1Java執行緒模型
11.1.1執行緒優先權
11.1.2同步
11.1.3訊息傳遞
11.1.4Thread類和Runnable接口
11.2主執行緒
11.3創建執行緒
11.3.1實現Runnable接口
11.3.2擴展Thread類
11.3.3選擇一種創建方式
11.4創建多個執行緒
11.5使用isAlive()和join()方法
11.6執行緒優先權
11.7同步
11.7.1使用同步方法
11.7.2synchronized語句
11.8執行緒間通信
11.9掛起、恢復與停止執行緒
11.9.1Java1.1以前使用的掛起、恢復和停止執行緒的方式
11.9.2掛起、恢復與停止執行緒的現代方式
11.10獲取執行緒的狀態
11.11使用多執行緒
第12章枚舉、自動裝箱與註解(元數據)
12.1枚舉
12.1.1枚舉的基礎知識
12.1.2values()和valueOf()方法
12.1.3Java枚舉是類類型
12.1.4枚舉繼承自Enum類
12.1.5另一個枚舉示例
12.2類型封裝器
12.2.1Character封裝器
12.2.2Boolean封裝器
12.2.3數值類型封裝器
12.3自動裝箱
12.3.1自動裝箱與方法
12.3.2表達式中發生的自動裝箱/拆箱
12.3.3布爾型和字元型數值的自動裝箱/拆箱
12.3.4自動裝箱/拆箱有助於防止錯誤
12.3.5一些警告
12.4註解(元數據)
12.4.1註解的基礎知識
12.4.2指定保留策略
12.4.3在運行時使用反射獲取註解
12.4.4AnnotatedElement接口
12.4.5使用默認值
12.4.6標記註解
12.4.7單成員註解
12.4.8內置註解
12.4.9一些限制
第13章I/O、applet以及其他主題
13.1I/O的基礎知識
13.1.1流
13.1.2位元組流和字元流
13.1.3預定義流
13.2讀取控制台輸入
13.2.1讀取字元
13.2.2讀取字元串
13.3向控制台寫輸出
13.4PrintWriter類
13.5讀/寫檔案
13.6自動關閉檔案
13.7applet的基礎知識
13.8transient和volatile修飾符
13.9使用instanceof運算符
13.10strictfp
13.11本地方法
13.12使用斷言
13.13靜態導入
13.14通過this()調用重載的構造函式
第14章泛型
14.1什麼是泛型
14.2一個簡單的泛型示例
14.2.1泛型只使用對象
14.2.2基於不同類型參數的泛型類型是不同的
14.2.3泛型提升類型安全性的原理
14.3帶兩個類型參數的泛型類
14.4泛型類的一般形式
14.5有界類型
14.6使用通配符參數
14.7創建泛型方法
14.8泛型接口
14.9原始類型與遺留代碼
14.10泛型類層次
14.10.1使用泛型超類
14.10.2泛型子類
14.10.3泛型層次中的運行時類型比較
14.10.4強制轉換
14.10.5重寫泛型類的方法
14.11泛型的類型推斷
14.12擦拭
14.13模糊性錯誤
14.14使用泛型的一些限制
14.14.1不能實例化類型參數
14.14.2對靜態成員的一些限制
14.14.3對泛型數組的一些限制
14.14.4對泛型異常的限制
……
第Ⅱ部分Java庫
第15章字元串處理 387
15.1String類的構造函式 388
15.2字元串的長度 390
15.3特殊的字元串操作 391
15.3.1字元串字面值 391
15.3.2字元串連線 391
15.3.3字元串和其他數據類型的連線 392
15.3.4字元串轉換和toString()方法 393
15.4提取字元 394
15.4.1charAt() 394
15.4.2getChars() 394
15.4.3getBytes() 395
15.4.4toCharArray() 395
15.5比較字元串 395
15.5.1equals()和equalsIgnoreCase() 395
15.5.2regionMatches() 396
15.5.3startsWith()和endsWith() 397
15.5.4equals()與== 397
15.5.5compareTo() 398
15.6查找字元串 399
15.7修改字元串 401
15.7.1substring() 401
15.7.2concat() 402
15.7.3replace() 402
15.7.4trim() 403
15.8使用valueOf()轉換數據 404
15.9改變字元串中字元的大小寫 404
15.10其他String方法 405
15.11StringBuffer類 406
15.11.1StringBuffer類的構造函式 406
15.11.2length()與capacity() 407
15.11.3ensureCapacity() 407
15.11.4setLength() 408
15.11.5charAt()與setCharAt() 408
15.11.6getChars() 409
15.11.7append() 409
15.11.8insert() 409
15.11.9reverse() 410
15.11.10delete()與deleteCharAt() 411
15.11.11replace() 411
15.11.12substring() 412
15.11.13其他StringBuffer方法 412
15.12StringBuilder類 413
第16章探究java.lang 415
16.1基本類型封裝器 416
16.1.1Number 416
16.1.2Double與Float 417
16.1.3理解isInfinite()與isNaN() 420
16.1.4Byte、Short、Integer和Long 420
16.1.5Character 427
16.1.6對Unicode代碼點的附加支持 430
16.1.7Boolean 431
16.2Void類 432
16.3Process類 432
16.4Runtime類 433
16.4.1記憶體管理 434
16.4.2執行其他程式 435
16.5ProcessBuilder類 436
16.6System類 439
16.6.1使用currentTimeMillis()計時程式的執行 440
16.6.2使用arraycopy() 441
16.6.3環境屬性 442
16.7Object類 442
16.8使用clone()方法和Cloneable接口 443
16.9Class類 445
16.10ClassLoader類 448
16.11Math類 448
16.11.1三角函式 448
16.11.2指數函式 449
16.11.3捨入函式 449
16.11.4其他數學方法 450
16.12StrictMath類 452
16.13Compiler類 452
16.14Thread類、ThreadGroup類和Runnable接口 452
16.14.1Runnable接口 452
16.14.2Thread類 452
16.14.3ThreadGroup類 454
16.15ThreadLocal和InheritableThreadLocal類 459
16.16Package類 459
16.17RuntimePermission類 460
16.18Throwable類 460
16.19SecurityManager類 460
16.20StackTraceElement類 460
16.21Enum類 461
16.22ClassValue類 462
16.23CharSequence接口 462
16.24Comparable接口 462
16.25Appendable接口 463
16.26Iterable接口 463
16.27Readable接口 464
16.28AutoCloseable接口 464
16.29Thread.UncaughtException-Handler接口 464
16.30java.lang子包 464
16.30.1java.lang.annotation 465
16.30.2java.lang.instrument 465
16.30.3java.lang.invoke 465
16.30.4java.lang.management 465
16.30.5java.lang.ref 465
16.30.6java.lang.reflect 465
第17章java.util第1部分:集合框架 467
17.1集合概述 468
17.2JDK5對集合框架的修改 469
17.2.1泛型從根本上改變了集合框架 470
17.2.2自動裝箱使得使用基本類型更加容易 470
17.2.3for-each風格的循環 470
17.3集合接口 470
17.3.1Collection接口 471
17.3.2List接口 473
17.3.3Set接口 474
17.3.4SortedSet接口 474
17.3.5NavigableSet接口 475
17.3.6Queue接口 476
17.3.7Deque接口 477
17.4集合類 479
17.4.1ArrayList類 480
17.4.2LinkedList類 483
17.4.3HashSet類 484
17.4.4LinkedHashSet類 486
17.4.5TreeSet類 486
17.4.6PriorityQueue類 487
17.4.7ArrayDeque類 488
17.4.8EnumSet類 489
17.5通過疊代器訪問集合 490
17.5.1使用疊代器 491
17.5.2使用for-each循環替代疊代器 493
17.6在集合中存儲用戶定義的類 494
17.7RandomAccess接口 495
17.8使用映射 496
17.8.1映射接口 496
17.8.2映射類 500
17.9比較器 505
17.10集合算法 508
17.11Arrays類 513
17.12需要泛型集合的原因 518
17.13遺留的類和接口 521
17.13.1Enumeration接口 521
17.13.2Vector類 521
17.13.3Stack類 525
17.13.4Dictionary類 527
17.13.5Hashtable類 528
17.13.6Properties類 532
17.13.7使用store()和load() 535
17.14集合小結 537
第18章java.util第2部分:更多實用工具類 539
18.1StringTokenizer類 539
18.2BitSet類 541
18.3Date類 544
18.4Calendar類 546
18.5GregorianCalendar類 549
18.6TimeZone類 550
18.7SimpleTimeZone類 551
18.8Locale類 552
18.9Random類 554
18.10Observable類 555
18.10.1Observer接口 556
18.10.2Observer示例 556
18.11Timer和TimerTask類 559
18.12Currency類 561
18.13Formatter類 562
18.13.1Formatter類的構造函式 563
第Ⅲ部分使用Java開發軟體
附錄使用Java的文檔注釋