幫助中心 | 我的帳號 | 關於我們

瘋狂Java講義(附光碟第5版瘋狂軟體教育標準教材)

  • 作者:編者:李剛
  • 出版社:電子工業
  • ISBN:9787121361586
  • 出版日期:2019/04/01
  • 裝幀:平裝
  • 頁數:894
人民幣:RMB 139 元      售價:
放入購物車
加入收藏夾

內容大鋼
    本書是《瘋狂Java講義》的第5版,第5版保持了前4版系統、全面、講解淺顯、細緻的特性,全面新增介紹了Java 10、Java 11的新特性。
    本書深入介紹了Java編程的相關方面,全書內容覆蓋了Java的基本語法結構、Java的面向對象特徵、Java集合框架體系、Java泛型、異常處理、Java GUI編程、JDBC資料庫編程、Java註釋、Java的IO流體系、Java多線程編程、Java網路通信編程和Java反射機制。覆蓋了java.lang、java.util、java.text、java.io和java.nio、java.sql、java.awt、javax.swing包下絕大部分類和介面。本書重點介紹了Java的模塊化系統,還詳細介紹了Java 10、Java 11的使用var聲明局部變數、在Lambda表達式中使用var聲明變數、改進的javac命令、基於嵌套的訪問控制、HTTP Client網路編程,以及Java 10、Java 11新增的各種API功能。
    與前4版類似,本書並不單純從知識角度來講解Java,而是從解決問題的角度來介紹Java語言,所以本書中涉及大量實用案例開發:五子棋遊戲、梭哈遊戲、仿QQ的遊戲大廳、MySQL企業管理器、仿EditPlus的文本編輯器、多線程、斷點下載工具、Spring框架的IoC容器……這些案例既能讓讀者鞏固每章的知識,又可以讓讀者學以致用,激發編程自豪感,進而引爆內心的編程激情。本書光碟里包含書中所有示例的代碼和《瘋狂Java實戰演義》的所有項目代碼,這些項目可以作為本書課後練習的「非標準答案」,如果讀者需要獲取關於課後習題的解決方法、編程思路,可以登錄http://www.crazyit.org站點與筆者及本書龐大的讀者群相互交流。
    本書為所有打算深入掌握Java編程的讀者而編寫,適合各種層次的Java學習者和工作者閱讀,也適合作為大學教育、培訓機構的Java教材。但如果只是想簡單涉獵Java,則本書過於龐大,不適合閱讀。

作者介紹
編者:李剛
    李剛,從事10多年的Java EE應用開發現任傳智播客廣州中心教學總監。     瘋狂Java實訓營創始人,瘋狂Java體系圖書作者。曾任LTTEON公司的J2EE技術主管,負責該公司的企業信息化平台的架構設計。     曾任廣州電信、廣東龍泉科技等公司的技術培訓導師。曾兼任廣東技術師範學院電腦科學系的兼職副教授。     2007年3月26日的《電腦報》專訪人物。     培訓的學生已在華為、立信、普信、網易、電信盈科等公司就職。     國內著名的高端IT技術作家,已出版《瘋狂Java講義》、《瘋狂Android講義》、《輕量級Java EE企業應用實戰》、《瘋狂Ajax講義》、《瘋狂XML講義》、《經典Java EE企業應用實戰》、《struts 2.1權威指南》、《Ruby On Rails敏捷開發最佳實踐》等著作。其中瘋狂Java體系圖書都是已經得到廣泛的市場認同,並多次重印的暢銷圖書,並被多家高校選作教材,部分圖書已被翻譯成繁體中文版、輸出到台灣地區。

目錄
第1章  Java語言概述與開發環境
  1.1  Java語言的發展簡史
  1.2  Java程序運行機制
    1.2.1  高級語言的運行機制
    1.2.2  Java程序的運行機制和JVM
  1.3  開發Java的準備
    1.3.1  下載和安裝Java 11的JDK
    學生提問  不是說JVM是運行Java程序的虛擬機嗎?那JRE和JVM的關係是怎樣的呢?
    1.3.2  設置PATH環境變數
    學生提問  為什麼選擇用戶變數?用戶變數與系統變數有什麼區別?
  1.4  第一個Java程序
    1.4.1  編輯Java源代碼
    1.4.2  編譯Java程序
    學生提問  當編譯C程序時,不僅需要指定存放目標文件的位置,也需要指定目標文件的文件名,這裡使用javac編譯Java程序時怎麼不需要指定目標文件的文件名呢?
    1.4.3  運行Java程序
    1.4.4  根據CLASSPATH環境變數定位類
  1.5  Java程序的基本規則
    1.5.1  Java程序的組織形式
    1.5.2  Java源文件的命名規則
    1.5.3  初學者容易犯的錯誤
  1.6  互動式工具:jshell
  1.7  Java 11改進的垃圾回收器
  1.8  何時開始使用IDE工具
    學生提問  我想學習Java編程,到底是學習Eclipse好,還是學習IntelliJ IDEA好呢?
  1.9  本章小結
  本章練習
第2章  理解面向對象
  2.1  面向對象
    2.1.1  結構化程序設計簡介
    2.1.2  程序的三種基本結構
    2.1.3  面向對象程序設計簡介
    2.1.4  面向對象的基本特徵
  2.2  UML(統一建模語言)介紹
    2.2.1  用例圖
    2.2.2  類圖
    2.2.3  組件圖
    2.2.4  部署圖
    2.2.5  順序圖
    2.2.6  活動圖
    2.2.7  狀態機圖
  2.3  Java的面向對象特徵
    2.3.1  一切都是對象
    2.3.2  類和對象
  2.4  本章小結
第3章  數據類型和運算符
  3.1  註釋
    3.1.1  單行註釋和多行註釋
    3.1.2  文檔註釋
    學生提問  API文檔是什麼?
    學生提問  為什麼要學習查看API文檔的方法?

  3.2  標識符和關鍵字
    3.2.1  分隔符
    3.2.2  標識符規則
    3.2.3  Java關鍵字
  3.3  數據類型分類
    學生提問  什麼是變數?變數有什麼用?
  3.4  基本數據類型
    3.4.1  整型
    3.4.2  字元型
    學生提問  什麼是字符集?
    3.4.3  浮點型
    3.4.4  數值中使用下畫線分隔
    3.4.5  布爾型
    3.4.6  使用var定義變數
  3.5  基本類型的類型轉換
    3.5.1  自動類型轉換
    3.5.2  強制類型轉換
    3.5.3  表達式類型的自動提升
  3.6  直接量
    3.6.1  直接量的類型
    3.6.2  直接量的賦值
  3.7  運算符
    3.7.1  算術運算符
    3.7.2  賦值運算符
    3.7.3  位運算符
    3.7.4  擴展后的賦值運算符
    3.7.5  比較運算符
    3.7.6  邏輯運算符
    3.7.7  三目運算符
    3.7.8  運算符的結合性和優先順序
  3.8  本章小結
  本章練習
第4章  流程式控制制與數組
  4.1  順序結構
  4.2  分支結構
    4.2.1  if條件語句
    4.2.2  Java 11改進的switch分支語句
  4.3  循環結構
    4.3.1  while循環語句
    4.3.2  do while循環語句
    4.3.3  for循環
    4.3.4  嵌套循環
  4.4  控制循環結構
    4.4.1  使用break結束循環
    4.4.2  使用continue忽略本次循環剩下語句
    4.4.3  使用return結束方法
  4.5  數組類型
    4.5.1  理解數組:數組也是一種類型
    學生提問  int[]是一種類型嗎?怎麼使用這種類型呢?
    4.5.2  定義數組

    13.7.2  JDBC的事務支持
    13.7.3  使用批量更新
  13.8  分析資料庫信息
    13.8.1  使用DatabaseMetaData分析資料庫信息
    13.8.2  使用系統表分析資料庫信息
    13.8.3  選擇合適的分析方式
  13.9  使用連接池管理連接
    13.9.1  DBCP數據源
    13.9.2  C3P0數據源
  13.10  本章小結
  本章練習
第14章  註解(Annotation)
  14.1  基本註解
    14.1.1  限定重寫父類方法:@Override
    14.1.2  Java 9增強的@Deprecated
    14.1.3  抑制編譯器警告:@SuppressWarnings
    14.1.4  「堆污染」警告與Java 9增強的@SafeVarargs
    14.1.5  函數式介面與@FunctionalInterface
  14.2  JDK的元註解
    14.2.1  使用@Retention
    14.2.2  使用@Target
    14.2.3  使用@Documented
    14.2.4  使用@Inherited
  14.3  自定義註解
    14.3.1  定義註解
    14.3.2  提取註解信息
    14.3.3  使用註解的示例
    14.3.4  重複註解
    14.3.5  類型註解
  14.4  編譯時處理註解
  14.5  本章小結
第15章  輸入/輸出
  15.1  File類
    15.1.1  訪問文件和目錄
    15.1.2  文件過濾器
  15.2  理解Java的IO流
    15.2.1  流的分類
    15.2.2  流的概念模型
  15.3  位元組流和字元流
    15.3.1  InputStream和Reader
    15.3.2  OutputStream和Writer
  15.4  輸入/輸出流體系
    15.4.1  處理流的用法
    15.4.2  輸入/輸出流體系
    15.4.3  轉換流
    學生提問  怎麼沒有把字元流轉換成位元組流的轉換流呢?
    15.4.4  推回輸入流
  15.5  重定向標準輸入/輸出
  15.6  Java虛擬機讀寫其他進程的數據
  15.7  RandomAccessFile

  15.8  Java 9改進的對象序列化
    15.8.1  序列化的含義和意義
    15.8.2  使用對象流實現序列化
    15.8.3  對象引用的序列化
    15.8.4  Java 9增加的過濾功能
    15.8.5  自定義序列化
    15.8.6  另一種自定義序列化機制
    15.8.7  版本
  15.9  NIO
    15.9.1  Java新IO概述
    15.9.2  使用Buffer
    15.9.3  使用Channel
    15.9.4  字符集和Charset
    學生提問  二進位序列與字元之間如何對應呢?
    15.9.5  文件鎖
    15.10  NIO.2  的功能和用法
    15.10.1  Path、Paths和Files核心API
    15.10.2  使用FileVisitor遍歷文件和目錄
    15.10.3  使用WatchService監控文件變化
    15.10.4  訪問文件屬性
  15.11  本章小結
  本章練習
第16章  多線程
  16.1  線程概述
    16.1.1  線程和進程
    16.1.2  多線程的優勢
  16.2  線程的創建和啟動
    16.2.1  繼承Thread類創建線程類
    16.2.2  實現Runnable介面創建線程類
    16.2.3  使用Callable和Future創建線程
    16.2.4  創建線程的三種方式對比
  16.3  線程的生命周期
    16.3.1  新建和就緒狀態
    16.3.2  運行和阻塞狀態
    16.3.3  線程死亡
  16.4  控制線程
    16.4.1  join線程
    16.4.2  後台線程
    16.4.3  線程睡眠:sleep
    16.4.4  改變線程優先順序
  16.5  線程同步
    16.5.1  線程安全問題
    16.5.2  同步代碼塊
    16.5.3  同步方法
    16.5.4  釋放同步監視器的鎖定
    16.5.5  同步鎖(Lock)
    16.5.6  死鎖及常用處理策略
  16.6  線程通信
    16.6.1  傳統的線程通信
    16.6.2  使用Condition控制線程通信

    16.6.3  使用阻塞隊列(BlockingQueue)控制線程通信
  16.7  線程組和未處理的異常
  16.8  線程池
    16.8.1  使用線程池管理線程
    16.8.2  使用ForkJoinPool利用多CPU
  16.9  線程相關類
    16.9.1  ThreadLocal類
    16.9.2  包裝線程不安全的集合
    16.9.3  線程安全的集合類
    16.9.4  Java 9新增的發布-訂閱框架
  16.10  本章小結
  本章練習
第17章  網路編程
  17.1  網路編程的基礎知識
    17.1.1  網路基礎知識
    17.1.2  IP地址和埠號
  17.2  Java的基本網路支持
    17.2.1  使用InetAddress
    17.2.2  使用URLDecoder和URLEncoder
    17.2.3  URL、URLConnection和URLPermission
  17.3  基於TCP協議的網路編程
    17.3.1  TCP協議基礎
    17.3.2  使用ServerSocket創建TCP伺服器端
    17.3.3  使用Socket進行通信
    17.3.4  加入多線程
    17.3.5  記錄用戶信息
    17.3.6  半關閉的Socket
    17.3.7  使用NIO實現非阻塞Socket通信
    17.3.8  使用AIO實現非阻塞通信
    學生提問  上面程序中好像沒用到④⑤號代碼的get()方法的返回值,這兩個地方不調用get()方法行嗎?
  17.4  基於UDP協議的網路編程
    17.4.1  UDP協議基礎
    17.4.2  使用DatagramSocket發送、接收數據
    17.4.3  使用MulticastSocket實現多點廣播
  17.5  使用代理伺服器
    17.5.1  直接使用Proxy創建連接
    17.5.2  使用ProxySelector自動選擇代理伺服器
  17.6  Java 11標準化的HTTP Client
    17.6.1  發送同步GET請求
    17.6.2  發送帶請求體的請求
    17.6.3  發送非同步請求
    17.6.4  WebSocket客戶端支持
    17.6.5  基於WebSocket的多人實時聊天
  17.7  本章小結
  本章練習
第18章  類載入機制與反射
  18.1  類的載入、連接和初始化
    18.1.1  JVM和類
    18.1.2  類的載入
    18.1.3  類的連接

    18.1.4  類的初始化
    18.1.5  類初始化的時機
  18.2  類載入器
    18.2.1  類載入機制
    18.2.2  創建並使用自定義的類載入器
    18.2.3  URLClassLoader類
  18.3  通過反射查看類信息
    18.3.1  獲得Class對象
    18.3.2  從Class中獲取信息
    18.3.3  方法參數反射
  18.4  使用反射生成並操作對象
    18.4.1  創建對象
    18.4.2  調用方法
    18.4.3  訪問成員變數值
    18.4.4  操作數組
    18.4.5  Java 11新增的嵌套訪問許可權
  18.5  使用反射生成JDK動態代理
    18.5.1  使用Proxy和InvocationHandler創建動態代理
    18.5.2  動態代理和AOP
  18.6  反射和泛型
    18.6.1  泛型和Class類
    18.6.2  使用反射來獲取泛型信息
  18.7  本章小結
  本章練習
附錄A  Java的模塊化系統

    4.5.3  數組的初始化
    學生提問  能不能只分配內存空間,不賦初始值呢?
    4.5.4  使用數組
    學生提問  為什麼要我記住這些異常信息?
    4.5.5  foreach循環
  4.6  深入數組
    4.6.1  內存中的數組
    學生提問  為什麼有棧內存和堆內存之分?
    4.6.2  基本類型數組的初始化
    4.6.3  引用類型數組的初始化
    4.6.4  沒有多維數組
    學生提問  我是否可以讓圖4.13中灰色覆蓋的數組元素再次指向另一個數組?這樣不就可以擴展成三維數組,甚至擴展成更多維的數組嗎?
    4.6.5  操作數組的工具類:Arrays
    4.6.6  數組應用舉例
  4.7  本章小結
  本章練習
第5章  面向對象(上)
  5.1  類和對象
    5.1.1  定義類
    學生提問  構造器不是沒有返回值嗎?為什麼不能用void聲明呢?
    5.1.2  對象的產生和使用
    5.1.3  對象、引用和指針
    5.1.4  對象的this引用
  5.2  方法詳解
    5.2.1  方法的所屬性
    5.2.2  方法的參數傳遞機制
    5.2.3  形參個數可變的方法
    5.2.4  遞歸方法
    5.2.5  方法重載
    學生提問  為什麼方法的返回值類型不能用於區分重載的方法?
  5.3  成員變數和局部變數
    5.3.1  成員變數和局部變數
    5.3.2  成員變數的初始化和內存中的運行機制
    5.3.3  局部變數的初始化和內存中的運行機制
    5.3.4  變數的使用規則
  5.4  隱藏和封裝
    5.4.1  理解封裝
    5.4.2  使用訪問控制符
    5.4.3  package、import和import static
    5.4.4  Java的常用包
  5.5  深入構造器
    5.5.1  使用構造器執行初始化
    學生提問  構造器是創建Java對象的途徑,是不是說構造器完全負責創建Java對象?
    5.5.2  構造器重載
    學生提問  為什麼要用this來調用另一個重載的構造器?我把另一個構造器里的代碼複製、粘貼到這個構造器里不就可以了嗎?
  5.6  類的繼承
    5.6.1  繼承的特點
    5.6.2  重寫父類的方法
    5.6.3  super限定
    5.6.4  調用父類構造器

    學生提問  為什麼我創建Java對象時從未感覺到java.lang. Object類的構造器被調用過?
  5.7  多態
    5.7.1  多態性
    5.7.2  引用變數的強制類型轉換
    5.7.3  instanceof運算符
  5.8  繼承與組合
    5.8.1  使用繼承的注意點
    5.8.2  利用組合實現復用
    學生提問  使用組合關係來實現復用時,需要創建兩個Animal對象,是不是意味著使用組合關係時系統開銷更大?
  5.9  初始化塊
    5.9.1  使用初始化塊
    5.9.2  實例初始化塊和構造器
    5.9.3  類初始化塊
  5.10  本章小結
  本章練習
第6章  面向對象(下)
  6.1  包裝類
    學生提問  Java為什麼要對這些數據進行緩存呢?
  6.2  處理對象
    6.2.1  列印對象和toString方法
    6.2.2  ==和equals方法
    學生提問  上面程序中判斷obj是否為Person類的實例時,為何不用obj instanceof Person來判斷呢?
  6.3  類成員
    6.3.1  理解類成員
    6.3.2  單例(Singleton)類
  6.4  final修飾符
    6.4.1  final成員變數
    6.4.2  final局部變數
    6.4.3  final修飾基本類型變數和引用類型變數的區別
    6.4.4  可執行「宏替換」的final變數
    6.4.5  final方法
    6.4.6  final類
    6.4.7  不可變類
    6.4.8  緩存實例的不可變類
  6.5  抽象類
    6.5.1  抽象方法和抽象類
    6.5.2  抽象類的作用
  6.6  Java 9改進的介面
    6.6.1  介面的概念
    6.6.2  Java 9中介面的定義
    6.6.3  介面的繼承
    6.6.4  使用介面
    6.6.5  介面和抽象類
    6.6.6  面向介面編程
  6.7  內部類
    6.7.1  非靜態內部類
    學生提問:非靜態內部類對象和外部類對象的關係是怎樣的?
    6.7.2  靜態內部類
    學生提問  為什麼靜態內部類的實例方法也不能訪問外部類的實例屬性呢?
    學生提問:介面里是否能定義內部介面?

    6.7.3  使用內部類
    學生提問  既然內部類是外部類的成員,那麼是否可以為外部類定義子類,在子類中再定義一個內部類來重寫其父類中的內部類呢?
    6.7.4  局部內部類
    6.7.5  匿名內部類
  6.8  Java 11增強的Lambda表達式
    6.8.1  Lambda表達式入門
    6.8.2  Lambda表達式與函數式介面
    6.8.3  在Lambda表達式中使用var
    6.8.4  方法引用與構造器引用
    6.8.5  Lambda表達式與匿名內部類的聯繫和區別
    6.8.6  使用Lambda表達式調用Arrays的類方法
  6.9  枚舉類
    6.9.1  手動實現枚舉類
    6.9.2  枚舉類入門
    6.9.3  枚舉類的成員變數、方法和構造器
    6.9.4  實現介面的枚舉類
    學生提問  枚舉類不是用final修飾了嗎?怎麼還能派生子類呢?
    6.9.5  包含抽象方法的枚舉類
  6.10  對象與垃圾回收
    6.10.1  對象在內存中的狀態
    6.10.2  強制垃圾回收
    6.10.3  finalize方法
    6.10.4  對象的軟、弱和虛引用
  6.11  修飾符的適用範圍
  6.12  多版本JAR包
    6.12.1  jar命令詳解
    6.12.2  創建可執行的JAR包
    6.12.3  關於JAR包的技巧
  6.13  本章小結
  本章練習
第7章  Java基礎類庫
  7.1  與用戶互動
    7.1.1  運行Java程序的參數
    7.1.2  使用Scanner獲取鍵盤輸入
  7.2  系統相關
    7.2.1  System類
    7.2.2  Runtime類與Java 9的ProcessHandle
  7.3  常用類
    7.3.1  Object類
    7.3.2  操作對象的Objects工具類
    7.3.3  Java 9改進的String、StringBuffer和StringBuilder類
    7.3.4  Math類
    7.3.5  ThreadLocalRandom與Random
    7.3.6  BigDecimal類
  7.4  Java 8的日期、時間類
    7.4.1  Date類
    7.4.2  Calendar類
    7.4.3  新的日期、時間包
  7.5  正則表達式
    7.5.1  創建正則表達式

    7.5.2  使用正則表達式
  7.6  變數處理和方法處理
    7.6.1  Java 9增強的MethodHandle
    7.6.2  Java 9增加的VarHandle
  7.7  Java 11改進的國際化與格式化
    7.7.1  Java國際化的思路
    7.7.2  Java支持的國家和語言
    7.7.3  完成程序國際化
    7.7.4  使用MessageFormat處理包含佔位符的字元串
    7.7.5  使用類文件代替資源文件
    7.7.6  Java 9新增的日誌API
    7.7.7  使用NumberFormat格式化數字
    7.7.8  使用DateFormat格式化日期、時間
    7.7.9  使用SimpleDateFormat格式化日期
  7.8  Java 8新增的日期、時間格式器
    7.8.1  使用DateTimeFormatter完成格式化
    7.8.2  使用DateTimeFormatter解析字元串
  7.9  本章小結
  本章練習
第8章  Java集合
  8.1  Java集合概述
  8.2  Java 11增強的Collection和Iterator介面
    8.2.1  使用Lambda表達式遍歷集合
    8.2.2  使用Iterator遍歷集合元素
    8.2.3  使用Lambda表達式遍歷Iterator
    8.2.4  使用foreach循環遍歷集合元素
    8.2.5  使用Predicate操作集合
    8.2.6  使用Stream操作集合
  8.3  Set集合
    8.3.1  HashSet類
    學生提問  hashCode()方法對於HashSet是不是十分重要?
    8.3.2  LinkedHashSet類
    8.3.3  TreeSet類
    8.3.4  EnumSet類
    8.3.5  各Set實現類的性能分析
  8.4  List集合
    8.4.1  改進的List介面和ListIterator介面
    8.4.2  ArrayList和Vector實現類
    8.4.3  固定長度的List
  8.5  Queue集合
    8.5.1  PriorityQueue實現類
    8.5.2  Deque介面與ArrayDeque實現類
    8.5.3  LinkedList實現類
    8.5.4  各種線性表的性能分析
  8.6  增強的Map集合
    8.6.1  Java 8為Map新增的方法
    8.6.2  改進的HashMap和Hashtable實現類
    8.6.3  LinkedHashMap實現類
    8.6.4  使用Properties讀寫屬性文件
    8.6.5  SortedMap介面和TreeMap實現類

    8.6.6  WeakHashMap實現類
    8.6.7  IdentityHashMap實現類
    8.6.8  EnumMap實現類
    8.6.9  各Map實現類的性能分析
  8.7  HashSet和HashMap的性能選項
  8.8  操作集合的工具類:Collections
    8.8.1  排序操作
    8.8.2  查找、替換操作
    8.8.3  同步控制
    8.8.4  設置不可變集合
    8.8.5  Java 9新增的不可變集合
  8.9  煩瑣的介面:Enumeration
  8.10  本章小結
  本章練習
第9章  泛型
  9.1  泛型入門
    9.1.1  編譯時不檢查類型的異常
    9.1.2  使用泛型
    9.1.3  Java 9增強的「菱形」語法
  9.2  深入泛型
    9.2.1  定義泛型介面、類
    9.2.2  從泛型類派生子類
    9.2.3  並不存在泛型類
  9.3  類型通配符
    9.3.1  使用類型通配符
    9.3.2  設定類型通配符的上限
    9.3.3  設定類型通配符的下限
    9.3.4  設定泛型形參的上限
  9.4  泛型方法
    9.4.1  定義泛型方法
    9.4.2  泛型方法和類型通配符的區別
    9.4.3  「菱形」語法與泛型構造器
    9.4.4  泛型方法與方法重載
    9.4.5  類型推斷
  9.5  擦除和轉換
  9.6  泛型與數組
  9.7  本章小結
第10章  異常處理
  10.1  異常概述
  10.2  異常處理機制
    10.2.1  使用try...catch捕獲異常
    10.2.2  異常類的繼承體系
    10.2.3  多異常捕獲
    10.2.4  訪問異常信息
    10.2.5  使用finally回收資源
    10.2.6  異常處理的嵌套
    10.2.7  Java 9增強的自動關閉資源的try語句
  10.3  Checked異常和Runtime異常體系
    10.3.1  使用throws聲明拋出異常
    10.3.2  方法重寫時聲明拋出異常的限制

  10.4  使用throw拋出異常
    10.4.1  拋出異常
    10.4.2  自定義異常類
    10.4.3  catch和throw同時使用
    10.4.4  使用throw語句拋出異常
    10.4.5  異常鏈
  10.5  Java的異常跟蹤棧
  10.6  異常處理規則
    10.6.1  不要過度使用異常
    10.6.2  不要使用過於龐大的try塊
    10.6.3  避免使用Catch All語句
    10.6.4  不要忽略捕獲到的異常
  10.7  本章小結
  本章練習
第11章  AWT編程
  11.1  Java改進的GUI(圖形用戶界面)和AWT
  11.2  AWT容器
  11.3  布局管理器
    11.3.1  FlowLayout布局管理器
    11.3.2  BorderLayout布局管理器
    學生提問  BorderLayout最多隻能放置5個組件嗎?那它也太不實用了吧?
    11.3.3  GridLayout布局管理器
    11.3.4  GridBagLayout布局管理器
    11.3.5  CardLayout布局管理器
    11.3.6  絕對定位
    11.3.7  BoxLayout布局管理器
    學生提問  圖11.15和圖11.16顯示的所有按鈕都緊挨在一起,如果希望像FlowLayout、GridLayout等布局管理器那樣指定組件的間距應該怎麼辦?
  11.4  AWT常用組件
    11.4.1  基本組件
    11.4.2  對話框(Dialog)
  11.5  事件處理
    11.5.1  Java事件模型的流程
    11.5.2  事件和事件監聽器
    11.5.3  事件適配器
    11.5.4  使用內部類實現監聽器
    11.5.5  使用外部類實現監聽器
    11.5.6  類本身作為事件監聽器類
    11.5.7  匿名內部類實現監聽器
  11.6  AWT菜單
    11.6.1  菜單條、菜單和菜單項
    11.6.2  右鍵菜單
    學生提問  為什麼即使我沒有給多行文本域編寫右鍵菜單,但當我在多行文本域上單擊右鍵時也一樣會彈出右鍵菜單?
  11.7  在AWT中繪圖
    11.7.1  畫圖的實現原理
    11.7.2  使用Graphics類
  11.8  處理點陣圖
    11.8.1  Image抽象類和BufferedImage實現類
    11.8.2  Java 9增強的ImageIO
  11.9  剪貼板
    11.9.1  數據傳遞的類和介面

    11.9.2  傳遞文本
    11.9.3  使用系統剪貼板傳遞圖像
    11.9.4  使用本地剪貼板傳遞對象引用
    11.9.5  通過系統剪貼板傳遞Java對象
  11.10  拖放功能
    11.10.1  拖放目標
    11.10.2  拖放源
  11.11  本章小結
  本章練習
第12章  Swing編程
  12.1  Swing概述
  12.2  Swing基本組件的用法
    12.2.1  Swing組件層次
    12.2.2  AWT組件的Swing實現
    學生提問  為什麼單擊Swing多行文本域時不是彈出像AWT多行文本域中的右鍵菜單?
    12.2.3  為組件設置邊框
    12.2.4  Swing組件的雙緩衝和鍵盤驅動
    12.2.5  使用JToolBar創建工具條
    12.2.6  使用JFileChooser和JColorChooser
    12.2.7  使用JOptionPane
  12.3  Swing中的特殊容器
    12.3.1  使用JSplitPane
    12.3.2  使用JTabbedPane
    12.3.3  使用JLayeredPane、JDesktopPane和JInternalFrame
  12.4  Swing簡化的拖放功能
  12.5  Java 7新增的Swing功能
    12.5.1  使用JLayer裝飾組件
    12.5.2  創建透明、不規則形狀窗口
  12.6  使用JProgressBar、ProgressMonitor和BoundedRangeModel創建進度條
    12.6.1  創建進度條
    12.6.2  創建進度對話框
  12.7  使用JSlider和BoundedRangeModel創建滑動條
  12.8  使用JSpinner和SpinnerModel創建微調控制器
  12.9  使用JList、JComboBox創建列表框
    12.9.1  簡單列表框
    12.9.2  不強制存儲列表項的ListModel和ComboBoxModel
    12.9.3  強制存儲列表項的DefaultListModel和 DefaultComboBoxModel
    學生提問  為什麼JComboBox提供了添加、刪除列表項的方法?而JList沒有提供添加、刪除列表項的方法呢?
    12.9.4  使用ListCellRenderer改變列表項外觀
  12.10  使用JTree和TreeModel創建樹
    12.10.1  創建樹
    12.10.2  拖動、編輯樹節點
    12.10.3  監聽節點事件
    12.10.4  使用DefaultTreeCellRenderer改變節點外觀
    12.10.5  擴展DefaultTreeCellRenderer改變節點外觀
    12.10.6  實現TreeCellRenderer改變節點外觀
  12.11  使用JTable和TableModel創建表格
    12.11.1  創建表格
    學生提問  我們指定的表格數據、表格列標題都是Object類型的數組,JTable如何顯示這些Object對象?
    12.11.2  TableModel和監聽器

    12.11.3  TableColumnModel和監聽器
    12.11.4  實現排序
    12.11.5  繪製單元格內容
    12.11.6  編輯單元格內容
  12.12  使用JFormattedTextField和JTextPane創建格式文本
    12.12.1  監聽Document的變化
    12.12.2  使用JPasswordField
    12.12.3  使用JFormattedTextField
    12.12.4  使用JEditorPane
    12.12.5  使用JTextPane
  12.13  本章小結
  本章練習
第13章  MySQL資料庫與JDBC編程
  13.1  JDBC基礎
    13.1.1  JDBC簡介
    13.1.2  JDBC驅動程序
  13.2  SQL語法
    13.2.1  安裝資料庫
    13.2.2  關係資料庫基本概念和MySQL基本命令
    13.2.3  SQL語句基礎
    13.2.4  DDL語句
    13.2.5  資料庫約束
    13.2.6  索引
    13.2.7  視圖
    13.2.8  DML語句語法
    13.2.9  單表查詢
    13.2.10  資料庫函數
    13.2.11  分組和組函數
    13.2.12  多表連接查詢
    13.2.13  子查詢
    13.2.14  集合運算
  13.3  JDBC的典型用法
      13.3.1  JDBC 4.2  常用介面和類簡介
    13.3.2  JDBC編程步驟
    學生提問  前面給出的僅僅是MySQL和Oracle兩種資料庫的驅動,我看不出驅動類字元串有什麼規律啊。如果我希望使用其他資料庫,那怎麼找到其他資料庫的驅動類呢?
  13.4  執行SQL語句的方式
    13.4.1  使用executeLargeUpdate方法執行DDL和DML語句
    13.4.2  使用execute方法執行SQL語句
    13.4.3  使用PreparedStatement執行SQL語句
    13.4.4  使用CallableStatement調用存儲過程
  13.5  管理結果集
    13.5.1  可滾動、可更新的結果集
    13.5.2  處理Blob類型數據
    13.5.3  使用ResultSetMetaData分析結果集
  13.6  使用RowSet 1.1包裝結果集
    13.6.1  RowSetFactory與RowSet
    13.6.2  離線RowSet
    13.6.3  離線RowSet的查詢分頁
  13.7  事務處理
    13.7.1  事務的概念和MySQL事務支持

  • 商品搜索:
  • | 高級搜索
首頁新手上路客服中心關於我們聯絡我們Top↑
Copyrightc 1999~2008 美商天龍國際圖書股份有限公司 臺灣分公司. All rights reserved.
營業地址:臺北市中正區重慶南路一段103號1F 105號1F-2F
讀者服務部電話:02-2381-2033 02-2381-1863 時間:週一-週五 10:00-17:00
 服務信箱:bookuu@69book.com 客戶、意見信箱:cs@69book.com
ICP證:浙B2-20060032