店鋪:機械工業出版社官方旗艦店 出版社:機械工業出版社 ISBN:9787111636663 商品編碼:10026866921268 品牌:機械工業出版社(CMP) 出版時間:2019-12-01 頁數:200 字數:510000 審圖號:9787111636663 作者:凱·,S.,霍斯特曼,林琪
" 內容介紹 本書由擁有20多年教學與研究經驗的*深Java技術專家撰寫(獲Jolt大獎),是程序員的優選Java指南。本版針對Java SE 9、10和 11全面更新。 全書共12章。 *1章概述Java語言的特色功能; *2章詳細論述如何下載和安裝JDK以及本書的程序示例; 第3章開始討論Java 語言,包括變量、循環和簡單的函數; 第4章介紹面向對像兩大基石中極要的一個概念——封裝,以及Java語言實現封裝的機制,即類與方法; 第5章介紹面向對像的另一個重要概念——繼承,繼承使程序員可以使用現有的類,並根據需要進行修改; 第6章展示如何使用Java的接口(可幫助你充分獲得Java的完全面向對像程序設計能力)、lambda表達式(用來表述可以在以後某個時間點執行的代碼塊)和內部類; 本書由擁有20多年教學與研究經驗的*深Java技術專家撰寫(獲Jolt大獎),是程序員的優選Java指南。本版針對Java SE 9、10和 11全面更新。
全書共12章。 *1章概述Java語言的特色功能; *2章詳細論述如何下載和安裝JDK以及本書的程序示例; 第3章開始討論Java 語言,包括變量、循環和簡單的函數; 第4章介紹面向對像兩大基石中極要的一個概念——封裝,以及Java語言實現封裝的機制,即類與方法; 第5章介紹面向對像的另一個重要概念——繼承,繼承使程序員可以使用現有的類,並根據需要進行修改; 第6章展示如何使用Java的接口(可幫助你充分獲得Java的完全面向對像程序設計能力)、lambda表達式(用來表述可以在以後某個時間點執行的代碼塊)和內部類; 第7章討論異常處理,並給出大量實用的調試技巧; 第8章概要介紹泛型程序設計,使程序更可讀、更安全; 第9章討論Java平臺的集合框架,以及如何充分利用內建的標準集合; *10章介紹GUI程序設計(包括如何建立窗口、如何在窗口中繪圖、如何利用幾何圖形繪圖、如何采用多種字體格式化文本,以及如何顯示圖像)和編寫代碼來響應事件(如鼠標點擊事件和按鍵事件); *11章詳細討論Swing GUI工具包,以建立跨平臺的圖形用戶界面,包括各種按鈕、文本組件、邊框、滑塊、列表框、菜單以及對話框的有關內容; *12章討論並發。本書*後還有一個附錄,其中列出了Java語言的保留字。 顯示全部信息 關聯推薦 Java領域極有影響力和價值的著作之一,與《Java編程思想》齊名,10餘年全球暢銷不衰,廣受好評。 針對Java SE 9、10、11全面更新,繫統全面講解Java語言的核心概念、語法、重要特性和開發方法,包含大量案例,實踐性強。 本書是一本可以指導程序員編寫健壯且可維護代碼的經典教程和參考書。不論是使用Java SE 9、10還是11,本書都能幫助你深入理解這門語言及其API。書中提供了數百個示例程序,所有這些代碼都經過精心設計,不僅易於理解,也很容易實際應用。 這一版做了全面更新,特別是示例的更新,反映了人們期待已久的Java模塊化特性,為讀者展示了如何編寫更易於管理和演進的代碼。你會了解如何使用新的JShell的讀取-計算-打印循環(REPL)進行快捷且更具探索性的開發,以及應用Process API、競爭鎖定、日志和編譯的重大改進。 在本卷中,作者全面深入地介紹了Java語言的基礎知識和UI編程,包括對像、泛型、集合、lambda表達式、Swing設計、並發和函數式編程。如果你是一個有經驗的程序員,正在轉向Java SE 9、10或11,要想獲得專家見解、解決方案和豐富的代碼,再沒有比這本書更好的資源了。 通過閱讀本書,你將: *掌握編寫*流Java代碼的基本技術以及Java用法和*實踐 *充分利用接口、lambda表達式和內部類的強大功能 * 通過有效的異常處理和調試使程序更堅固 * 利用泛型編程編寫更安全、更可重用的代碼 * 利用Java的標準集合改善性能和效率 * 利用Swing工具包構建跨平臺GUI *使用Java改進的並發特性充分利用多核處理器 目錄 譯者序 前言 致謝 *1章Java程序設計概述 1 1.1Java程序設計平臺 1 1.2Java“白皮書”的關鍵術語 2 1.2.1簡單性 2 1.2.2面向對像 3 1.2.3分布式 3 1.2.4健壯性 3 1.2.5安全性 3 1.2.6體繫結構中立 4 1.2.7可移植性 4 1.2.8解釋型 5 1.2.9高性能 5 1.2.10多線程 5 1.2.11動態性 6 1.3Java applet與Internet 6 1.4Java發展簡史 7 1.5關於Java的常見誤解 10 *2章Java程序設計環境 12 2.1安裝Java開發工具包 12 2.1.1下載JDK 12 2.1.2設置JDK 14 2.1.3安裝庫源文件和文檔 16 2.2使用命令行工具 16 2.3使用集成開發環境 20 2.4JShell 23 第3章Java的基本程序設計結構 26 3.1一個簡單的Java應用程序 26 3.2注釋 29 3.3數據類型 29 3.3.1整型 30 3.3.2浮點類型 31 3.3.3char類型 32 3.3.4Unicode和char類型 33 3.3.5boolean類型 34 3.4變量與常量 34 3.4.1聲明變量 34 3.4.2變量初始化 35 3.4.3常量 36 3.4.4枚舉類型 37 3.5運算符 37 3.5.1算術運算符 37 3.5.2數學函數與常量 38 3.5.3數值類型之間的轉換 40 3.5.4強制類型轉換 41 3.5.5結合賦值和運算符 41 3.5.6自增與自減運算符 41 3.5.7關繫和boolean運算符 42 3.5.8位運算符 43 3.5.9括號與運算符級別 43 3.6字符串 44 3.6.1子串 45 3.6.2拼接 45 3.6.3不可變字符串 45 3.6.4檢測字符串是否相等 47 3.6.5空串與Null串 48 3.6.6碼點與 48 3.6.7String API 49 3.6.8閱讀聯機API文檔 51 3.6.9構建字符串 54 3.7輸入與輸出 55 3.7.1讀取輸入 55 3.7.2格式化輸出 57 3.7.3文件輸入與輸出 61 3.8控制流程 62 3.8.1塊作用域 63 3.8.2條件語句 63 3.8.3循環 66 3.8.4確定循環 69 3.8.5多重選擇:switch語句 72 3.8.6中斷控制流程的語句 74 3.9大數 76 3.10數組 79 3.10.1聲明數組 79 3.10.2訪素 80 3.10.3for each循環 81 3.10.4數組拷貝 82 3.10.5命令行參數 82 3.10.6數組排序 83 3.10.7多維數組 86 3.10.8不規則數組 88 第4章對像與類 92 4.1面向對像程序設計概述 92 4.1.1類 93 4.1.2對像 94 4.1.3識別類 94 4.1.4類之間的關繫 95 4.2使用預定義類 96 4.2.1對像與對像變量 96 4.2.2Java類庫中的LocalDate類 99 4.2.3更改器方法與訪問器方法 100 4.3用戶自定義類 103 4.3.1Employee類 104 4.3.2多個源文件的使用 106 4.3.3剖析Employee類 107 4.3.4從構造器開始 107 4.3.5用var聲明局部變量 109 4.3.6使用null引用 109 4.3.7隱式參數與顯式參數 110 4.3.8封裝的優點 111 4.3.9基於類的訪問權限 113 4.3.10私有方法 114 4.3.11f?inal實例字段 114 4.4靜態字段與靜態方法 115 4.4.1靜態字段 115 4.4.2靜態常量 116 4.4.3靜態方法 116 4.4.4工廠方法 117 4.4.5main方法 118 4.5方法參數 121 4.6對像構造 126 4.6.1重載 126 4.6.2默認字段初始化 127 4.6.3無參數的構造器 127 4.6.4顯式字段初始化 128 4.6.5參數名 129 4.6.6調用另一個構造器 129 4.6.7初始化塊 130 4.6.8對像析構與f?inalize方法 134 4.7包 134 4.7.1包名 134 4.7.2類的導入 135 4.7.3靜態導入 136 4.7.4在包中增加類 137 4.7.5包訪問 139 4.7.6類路徑 140 4.7.7設置類路徑 142 4.8JAR文件 143 4.8.1創建JAR文件 143 4.8.2清單文件 144 4.8.3可執行JAR文件 145 4.8.4多版本JAR文件 145 4.8.5關於命令行選項的說明 146 4.9文檔注釋 148 4.9.1注釋的插入 148 4.9.2類注釋 149 4.9.3方法注釋 149 4.9.4字段注釋 150 4.9.5通用注釋 150 4.9.6包注釋 151 4.9.7注釋抽取 151 4.10類設計技巧 152 第5章繼承 155 5.1類、超類和子類 155 5.1.1定義子類 155 5.1.2覆蓋方法 157 5.1.3子類構造器 158 5.1.4繼承層次 162 5.1.5多態 162 5.1.6理解方法調用 163 5.1.7阻止繼承:f?inal類和方法 165 5.1.8強制類型轉換 166 5.1.9抽像類 168 5.1.10受保護訪問 173 5.2Object:所有類的超類 174 5.2.1Object類型的變量 174 5.2.2equals方法 175 5.2.3相等測試與繼承 176 5.2.4hashCode方法 179 5.2.5toString方法 181 5.3泛型數組列表 186 5.3.1聲明數組列表 187 5.3.2訪問數素 189 5.3.3類型化與原始數組列表的 兼容性 191 5.4對像包裝器與自動裝箱 192 5.5參數數量可變的方法 195 5.6枚舉類 196 5.7反射 198 5.7.1Class類 199 5.7.2聲明異常入門 201 5.7.3資源 202 5.7.4利用反射分析類的能力 203 5.7.5使用反射在運行時分析 對像 208 5.7.6使用反射編寫泛型數組 代碼 213 5.7.7調用任意方法和構造器 216 5.8繼承的設計技巧 219 第6章接口、lambda表達式與 內部類 222 6.1接口 222 6.1.1接口的概念 222 6.1.2接口的屬性 228 6.1.3接口與抽像類 229 6.1.4靜態和私有方法 230 6.1.5默認方法 230 6.1.6解決默認方法衝突 231 6.1.7接口與回調 233 6.1.8Comparator接口 235 6.1.9對像克隆 236 6.2lambda表達式 242 6.2.1為什麼引入lambda表達式 242 6.2.2lambda表達式的語法 243 6.2.3函數式接口 245 6.2.4方法引用 247 6.2.5構造器引用 250 6.2.6變量作用域 250 6.2.7處理lambda表達式 252 6.2.8再談Comparator 254 6.3內部類 255 6.3.1使用內部類訪問對像狀態 256 6.3.2內部類的特殊語法規則 259 6.3.3內部類是否有用、必要和 安全 260 6.3.4局部內部類 262 6.3.5由外部方法訪問變量 263 6.3.6匿名內部類 264 6.3.7靜態內部類 267 6.4服務加載器 270 6.5代理 273 6.5.1何時使用代理 273 6.5.2創建代理對像 273 6.5.3代理類的特性 277 第7章異常、斷言和日志 279 7.1處理錯誤 279 7.1.1異常分類 280 7.1.2聲明檢查型異常 282 7.1.3如何拋出異常 284 7.1.4創建異常類 285 7.2捕獲異常 286 7.2.1捕獲異常 286 7.2.2捕獲多個異常 288 7.2.3再次拋出異常與異常鏈 289 7.2.4f?inally子句 290 7.2.5try-with-Resources語句 292 7.2.6分析堆素 294 7.3使用異常的技巧 297 7.4使用斷言 300 7.4.1斷言的概念 300 7.4.2啟用和禁用斷言 301 7.4.3使用斷言完成參數檢查 302 7.4.4使用斷言提供假設文檔 303 7.5日志 304 7.5.1基本日志 305 7.5.2*級日志 305 7.5.3修改日志管理器配置 307 7.5.4本地化 308 7.5.5處理器 309 7.5.6過濾器 312 7.5.7格式化器 313 7.5.8日志技巧 313 7.6調試技巧 321 第8章泛型程序設計 326 8.1為什麼要使用泛型程序設計 326 8.1.1類型參數的好處 326 8.1.2誰想成為泛型程序員 328 8.2定義簡單泛型類 328 8.3泛型方法 330 8.4類型變量的限定 331 8.5泛型代碼和虛擬機 333 8.5.1類型擦除 333 8.5.2轉換泛型表達式 335 8.5.3轉換泛型方法 335 8.5.4調用遺留代碼 337 8.6限制與局限性 338 8.6.1不能用基本類型實例化類型參數 338 8.6.2運行時類型查詢隻適用於原始類型 338 8.6.3不能創建參數化類型的數組 338 8.6.4Varargs警告 339 8.6.5不能實例化類型變量 340 8.6.6不能構造泛型數組 341 8.6.7泛型類的靜態上下文中類型變量無效 342 8.6.8不能拋出或捕獲泛型類的實例 343 8.6.9可以取消對檢查型異常的檢查 343 8.6.10注意擦除後的衝突 345 8.7泛型類型的繼承規則 346 8.8通配符類型 348 8.8.1通配符概念 348 8.8.2通配符的超類型限定 349 8.8.3無限定通配符 351 8.8.4通配符捕獲 352 8.9反射和泛型 354 8.9.1泛型Class類 354 8.9.2使用Class 參數進行類型匹配 355 8.9.3虛擬機中的泛型類型信息 356 8.9.4類型字面量 359 第9章集合 365 9.1Java集合框架 365 9.1.1集合接口與實現分離 365 9.1.2Collection接口 368 9.1.3迭代器 368 9.1.4泛型實用方法 370 9.2集合框架中的接口 373 9.3具體集合 375 9.3.1鏈表 375 9.3.2數組列表 384 9.3.3散列集 385 9.3.4樹集 388 9.3.5隊列與雙端隊列 391 9.3.6優先隊列 392 9.4映射 394 9.4.1基本映射操作 394 9.4.2更新映射條目 397 9.4.3映射視圖 398 9.4.4弱散列映射 399 9.4.5鏈接散列集與映射 400 9.4.6枚舉集與映射 401 9.4.7標識散列映射 402 9.5視圖與包裝器 403 9.5.1小集合 404 9.5.2子範圍 405 9.5.3不可修改的視圖 405 9.5.4同步視圖 406 9.5.5檢查型視圖 407 9.5.6關於可選操作的說明 407 9.6算法 411 9.6.1為什麼使用泛型算法 411 9.6.2排序與混排 412 9.6.3二分查找 414 9.6.4簡單算法 415 9.6.5批操作 417 9.6.6集合與數組的轉換 418 9.6.7編寫自己的算法 418 9.7遺留的集合 419 9.7.1Hashtable類 419 9.7.2枚舉 419 9.7.3屬性映射 421 9.7.4棧 424 9.7.5位集 424 *10章圖形用戶界面程序設計 429 10.1Java用戶界面工具包簡史 429 10.2顯示窗體 430 10.2.1創建窗體 431 10.2.2窗體屬性 433 10.3在組件中顯示信息 435 10.3.1處理2D圖形 439 10.3.2使用顏色 445 10.3.3使用字體 446 10.3.4顯示圖像 452 10.4事件處理 453 10.4.1基本事件處理概念 453 10.4.2實例:處理按鈕點擊事件 454 10.4.3簡潔地指定監聽器 457 10.4.4適配器類 458 10.4.5動作 460 10.4.6鼠標事件 464 10.4.7AWT事件繼承層次 469 10.5*選項API 472 *11章Swing用戶界面組件 478 11.1Swing和模型–視圖–控制器設計模式 478 11.2布局管理概述 481 11.2.1布局管理器 482 11.2.2邊框布局 483 11.2.3網格布局 484 11.3文本輸入 485 11.3.1文本域 486 11.3.2標簽和標簽組件 487 11.3.3密碼域 488 11.3.4文本區 489 11.3.5滾動窗格 489 11.4選擇組件 491 11.4.1復選框 492 11.4.2單選按鈕 494 11.4.3邊框 497 11.4.4組合框 499 11.4.5滑動條 502 11.5菜單 507 11.5.1菜單構建 507 11.5.2菜單項中的圖標 509 11.5.3復選框和單選按鈕菜單項 510 11.5.4彈出菜單 511 11.5.5鍵盤助記符和加速器 512 11.5.6啟用和禁用菜單項 514 11.5.7工具條 518 11.5.8工具提示 519 11.6復雜的布局管理 520 11.6.1網格包布局 520 11.6.2定制布局管理器 529 11.7對話框 532 11.7.1選項對話框 533 11.7.2創建對話框 536 11.7.3數據交換 540 11.7.4文件對話框 545 *12章並發 552 12.1什麼是線程 552 12.2線程狀態 555 12.2.1新建線程 556 12.2.2可運行線程 556 12.2.3阻塞和等待線程 556 12.2.4終止線程 558 12.3線程屬性 558 12.3.1中斷線程 558 12.3.2守護線程 561 12.3.3線程名 561 12.3.4未捕獲異常的處理器 561 12.3.5線程優先級 563 12.4同步 563 12.4.1競態條件的一個例子 563 12.4.2競態條件詳解 567 12.4.3鎖對像 568 12.4.4條件對像 571 12.4.5synchronized關鍵字 576 12.4.6同步塊 579 12.4.7監視器概念 580 12.4.8volatile字段 581 12.4.9final變量 582 12.4.10原子性 582 12.4.11死鎖 584 12.4.12線程局部變量 586 12.4.13為什麼廢棄stop和suspend方法 587 12.5線程安全的集合 589 12.5.1阻塞隊列 589 12.5.2高效的映射、集和隊列 595 12.5.3映射條目的原子更新 596 12.5.4對並發散列映射的批操作 599 12.5.5並發集視圖 600 12.5.6寫數組的拷貝 601 12.5.7並行數組算法 601 12.5.8較早的線程安全集合 602 12.6任務和線程池 603 12.6.1Callable與Future 603 12.6.2執行器 605 12.6.3控制任務組 607 12.6.4fork-join框架 612 12.7異步計算 615 12.7.1可完成Future 615 12.7.2組合可完成Future 616 12.7.3用戶界面回調中的長時間運行任務 622 12.8進程 628 12.8.1建立一個進程 628 12.8.2運行一個進程 630 12.8.3進程句柄 631 附錄Java關鍵字 634 顯示全部信息
" |