內容簡介
《java基礎與實例精解》以全新的視角,深入淺出地介紹了Java語言的核心基礎知識。並使用了大量的例子對Java語言中的知識點加以驗證,從而一步一步引導讀者學習和掌握Java語言程式設計的方法與技巧。
該書積聚了作者多年的教學及套用實踐經驗以語言簡潔.概念清晰,覆蓋面廣,實例豐富,重點突出,實用性強為特點,是一本非常實用的學習Java語言編程的教材。可作為高等院校計算機及相關專業的本科及高職高專學生教材,也可作為Java程式設計師的參考用書。
《Java基礎與實例精解》的每一章均附有典型習題並對習題作了詳細解答;為了增強讀者在就業中的競爭力,對《Java基礎與實例精解》還編寫了實驗指導;配套使用將使學習效果更佳。
目錄
第1章 Java簡介
1.1 程式語言的幾個發展階段
1.1.1 低級語言
1.1.2 過程語言
1.1.3 面向對象編程
1.2 Java的誕生
1.3 Java的特點
1.4 安裝JDK與JRE
1.5 Java程式的開發流程
1.5.1 Java程式分類
1.5.2 Java源程式結構
1.5.3 Java源程式的開發流程
1.5.4 Java應用程式開發舉例
1.5.5 Java小應用程式開發舉例
1.6 Java的套用領域
第2章 標識符.關鍵字和數據類型
2.1 標識符
2.2 關鍵字
2.3 Java的數據類型
2.3.1 值類型
2.3.2 引用類型
2.4 數據類型之間的轉換
2.4.1 同種類型之間的轉換
2.4.2 不同種類型之間的轉換
第3章 運算符.表達式和語句
3.1 運算符與表達式
3.1.1 算術運算符和算術表達式
3.1.2 位運算符
3.1.3 關係運算符和關係表達式
3.1.4 邏輯運算符和邏輯表達式
3.1.5 條件賦值運算符
3.1.6 賦值運算符和賦值表達式
3.1.7instanceof運算符
3.1.8 圓括弧與方括弧運算符
3.1.9 運算符的優先權與結合性
3.2 語句概述
3.2.1 簡單語句
3.2.2 複合語句
3.3 條件分支語句
3.3.1 if語句
3.3.2 switch語句
3.4 循環語句
3.4.1 while語句
3.4.2 dowhile語句
3.4.3 while和dowhile語句的區別
3.4.4 for語句
3.4.5 foreach語句
3.5 跳轉語句
3.5.1 break語句
3.5.2 continue語句
3.5.3 break與continue語句的異同
3.5.4 return語句
第4章 類和對象
4.1 類
4.1.1 類的聲明
4.1.2 類體
4.2 變數
4.2.1 變數的數據類型
4.2.2 成員變數的分類
4.2.3 變數的作用域
4.3 方法
4.3.1 方法的定義
4.3.2 方法重載
4.3.3 構造方法
4.3.4 類方法和實例方法
4.3.5 變數.方法中值得注意的問題
4.4 內部類
4.4.1靜態內部類
4.4.2 實例內部類
4.4.3 局部內部類
4.4.4 匿名內部類
4.5 對象
4.5.1 創建對象
4.5.2 使用對象
4.5.3 對象的引用和實體
4.5.4 方法中的參數傳值
4.6 static關鍵字
4.6.1 實例變數與類變數的區別
4.6.2 實例方法和類方法的區別
4.7 this關鍵字
4.7.1 在實例方法中使用this
4.7.2 在構造方法中使用this
4.8 包及JAR工具
4.8.1 包
4.8.2 JAR工具
4.8.3 反編譯和文檔生成器
4.9 訪問許可權
4.9.1 private(私有的)
4.9.2 default(友好的)
4.9.3 protected(受保護的)
4.9.4 public(公有的)
4.9.5 公有類與友好類
4.1 0過時信息
第5章 繼承與多態
5.1 繼承簡介
5.2 類的繼承
5.2.1 繼承的語法
5.2.2 子類的繼承性
5.3 訪問許可權的進一步說明
5.3.1 訪問許可權總結
5.3.2 default(友好的)
5.3.3 protected(受保護的)
5.4 成員變數的隱藏與方法重寫
5.4.1 成員變數的隱藏
5.4.2 方法重寫
5.4.3 方法重寫與方法重載的異同
5.5 super關鍵字
5.5.1 使用關鍵字super調用父類的構造方法
5.5.2 使用關鍵字super操作被隱藏的成員變數和方法
5.6 final關鍵字
5.6.1 final變數
5.6.2 final方法
5.6.3 final類
5.7 對象的上轉型對象
5.8 多態性
5.9 abstract類和abstract方法
5.10 接口
5.10.1 接口的定義
5.10.2 接口的使用
5.10.3 接口與抽象類的區別
5.10.4 接口繼承
5.10.5 接口回調
5.10.6 接口做參數
5.11 匿名類
5.11.1 與類有關的匿名類
5.11.2 與接口有關的匿名類
第6章 數組
6.1 一維數組
6.2 多維數組
6.3 數組做參數
6.4 Javaapplication命令行參數
6.5 Arrays類
6.5.1 數組的填充和列印
6.5.2 數組的比較
6.5.3 數組的排序
6.5.4 數組的查找
6.6 數組的複製
第7章 基礎類與集合類
7.1 Object類
7.1.1 equals方法
7.1.2 toString方法
7.1.3 clone方法
7.1.4 getClass方法
7.2反射類
7.2.1 獲取類的有關信息
7.2.2 使用Class實例化一個對象
7.3 封裝類
7.3.1 Boolean類
7.3.2 Byte類
7.3.3 Double類
7.3.4 Float類
7.3.5 Integer類
7.3.6 BigInteger類
7.3.7 Long類
7.3.8 Short類
7.3.9 Character類
7.4 Math類
7.5 String類
7.5.1 創建String對象
7.5.2 字元串的常用方法
7.6 StringBuffer和StringBuilder類
7.7 System類
7.8 Date類
7.9 Calendar類
7.10 集合類
7.10.1arraylist(動態數組)
7.10.2 LinkedList(鍊表)
7.10.3 Vector(向量)
7.10.4 Stack(棧)
7.10.5 HashSet(散列集)
7.10.6 Hashtable(散列表)
7.10.7 HashMap(散列映射)
7.10.8 TreeSet(樹集)
7.10.9 TreeMap(樹映射)
第8章 異常處理
8.1 異常的概念
8.2 異常的分類
8.3 異常處理
8.3.1 trycatchfinally語句
8.3.2 throw與throws關鍵字
8.3.3 自定義異常
第9章 圖形用戶界面
9.1 AWT
9.2 AWT容器類
9.2.1 Frame(窗體)
9.2.2 Dialog(對話框)
9.2.3 Panel(面板)
9.2.4scrollpane(滾動面板)
9.3 AWT基本組件
9.3.1 Button(按鈕)組件
9.3.2 Canvas(畫布)組件
9.3.3 選擇型組件
9.3.4 Label(標籤)
9.3.5 Scrollbar(滾動條)
9.3.6 TextArea(文本區)
9.3.7 TextField(文本框)..
9.4 AWTMenus
9.4.1 MenuBar(選單條)
9.4.2 Menu(選單)
9.4.3 MenuItem(選單項)
9.4.4 CheckBoxMenuItem(複選框選單項)
9.4.5 嵌入子選單
9.4.6 PopupMenu(彈出式選單)
9.5 組件的外觀
9.5.1 組件的顏色
9.5.2 組件的字型
9.5.3 組件的游標
第10章 布局管理
10.1BorderLayout(邊界.框線布局)
10.2FlowLayout(流/順序布局)
10.3 CardLayout(卡片布局)
10.4 GridLayout(格線布局)
10.5 BoxLayout(盒式布局)
10.5.1 BoxLayout類
10.5.2 Box類
10.6 null布局(空布局)
第11章 事件處理
11.1 事件處理模型
11.1.1 幾個重要概念
11.1.2簡單事件處理舉例
11.2 事件的種類
11.3 事件類型舉例
11.3.1 ActionEvent
11.3.2 AdjustmentEvent
11.3.3 AncestorEvent
11.3.4 CaretEvent
11.3.5 ChangeEvent
11.3.6 ComponentEvent
11.3.7 ContainerEvent
11.3.8 DocumentEvent
11.3.9 FocusEvent
11.3.1 0ItemEvent
11.3.1 1KeyEvent
11.3.1 2ListSelectionEvent
11.3.1 3MouseEvent
11.3.1 4TableModelEvent
11.3.1 5TreeExpansionEvent(TreeExpansionListener)
11.3.1 6TreeModelEvent
11.3.1 7TreeSelectionEvent
11.3.1 8TreeExpansionEvent(TreeWillExpandListener)
11.3.1 9UndoableEditEvent
11.3.2 0WindowEvent
11.4 事件適配器
11.4.1 ComponentAdapter
11.4.2 ContainerAdapter
11.4.3 FocusAdapter
11.4.4 KeyAdapter
11.4.5 MouseInputAdapter
11.4.6 MouseAdapter
11.4.7 MouseMotionAdapter
11.4.8 WindowAdapter
11.5 處理多事件
第12章 Swing組件
12.1 SwingWindows
12.1.1 JFrame
12.1.2 對話框
12.2 SwingContainers
12.2.1JPanel(面板)
12.2.2 JTabbedPane(選項卡面板)
12.2.3 JSplitPane(拆分視窗)
12.2.4 JScrollPane(滾動面板)
12.2.5 JToolBar(工具條)
12.2.6 JDesktopPane(桌面面板)
12.2.7 JInternalFrame(內部窗體)
12.2.8 JLayeredPane(分層面板)
12.3 SwingControls
12.3.1 按鈕
12.3.2 JComboBox(下拉列表)
12.3.3 JLabel(標籤)
12.3.4 JList(滾動列表)
12.3.5 文本組件
12.3.6 JProgressBar(進度條)
12.3.7 JScrollBar(滾動條)
12.3.8 JSlider(滑塊)
12.3.9 JSpinner(微調控制器)
12.3.1 0JTable(表格)
12.3.1 1JTree(樹)
12.4 SwingMenus
12.4.1 JMenuBar(選單條)
12.4.2 JMenu(選單)
12.4.3 JMenuItem(選單項)
12.4.4 JCheckBoxMenuItem(複選選單項)
12.4.5 JRadioButtonMenuItem(單選選單項)
12.4.6 JSeparator(分隔線)
12.4.7 JPopupMenu(彈出式選單)
第13章 多執行緒
13.1 程式.進程和執行緒
13.2 執行緒的狀態與生命周期
13.3 創建執行緒
13.3.1 繼承Thread類的方式創建執行緒
13.3.2 實現Runnable接口的方式創建執行緒
13.3.3 關於兩種創建執行緒方法的討論
13.4 執行緒的常用方法
13.4.1 設定和獲取執行緒的名字
13.4.2 返回正在執行的執行緒
13.4.3 掛起執行緒
13.4.4 中斷執行緒
13.4.5終止線程
13.4.6 檢查執行緒
13.4.7 執行緒聯合
13.4.8守護執行緒
13.5 執行緒調度與優先權
13.6 共享資源
13.6.1 執行緒同步(synchronized)
13.6.2 等待與通知(wait().notifay().notifayAll())
13.6.3 死鎖
13.7 計時器執行緒Timer
13.8執行緒組
13.9 GUI執行緒
第14章 輸入/輸出流
14.1 輸入/輸出流的分類
14.2 File類
14.2.1 目錄與檔案的創建
14.2.2 目錄與檔案的刪除
14.2.3 列出目錄中指定類型的檔案
14.2.4 運行執行檔
14.3 基本位元組數據流類
14.3.1 輸入流(InputStream)
14.3.2 輸出流(OutputStream)
14.3.3位元組數組輸入流(ByteArrayInputStream.ByteArrayOutputStream)
14.3.4 檔案流(FileInputStream.FileOutputStream)
14.3.5 過濾流(FilterInputStream.FilterOutputStream)
14.3.6 對象流(ObjectInputStream.ObjectOutputStream)
14.3.7 管道流(PipedInputStream.PipedOutputStream)
14.3.8 JavaI/O庫的設計原則
14.4 字元集的編碼
14.5基本字元流
14.5.1 字元流(Reader.Writer)
14.5.2 字元輸入/輸出流(InputStreamReader.OutputStreamWriter)
14.5.3 緩衝字元流(BufferedReader.BufferedWriter)
14.5.4 字元數組流(CharArrayReader.CharArrayWriter)
14.5.5 檔案字元流(FileReader.FileWriter)
14.6 隨機訪問檔案(RandomAccessFile)
14.7檔案鎖FileLock
14.8 Process類中的流
第15章 JavaApplet
15.1 Applet類的常用方法
15.2 Applet的生命周期
15.3 JApplet類
15.4 HTML與applet標記
15.4.1 applet標記的常用屬性
15.4.2 applet獲取參數
15.4.3 傳送信息到其他applet
15.4.4 Applet與URL
15.5 在Applet中創建執行緒
15.6 JavaAppletVSJavaApplication
15.7 applet與多媒體
15.7.1 在JavaApplet中播放音頻
15.7.2 在JavaApplication中播放音頻
15.7.3 播放視頻
第16章 Java2D圖形與圖像
16.1 Graphics類
16.1.1 繪製直線
16.1.2 繪製矩形
16.1.3 繪製橢圓
16.1.4 繪製圓弧
16.1.5 繪製多邊形
16.2Graphics2D類
16.2.1 繪製直線
16.2.2 繪製曲線
16.2.3 繪製矩形
16.2.4 繪製圓角矩形
16.2.5 繪製橢圓
16.2.6 繪製圓弧
16.2.7 繪製任意圖形
16.2.8 圖形變換
16.2.9 構建區域幾何形狀
16.3 繪製文本
16.4 繪製圖像
16.4.1 Image類
16.4.2 BufferedImage類
16.4.3 ImageIO類
16.4.4 在JavaApplication中繪製圖像
16.4.5 在JavaApplet中繪製圖像
16.4.6 保存圖像
16.5 列印
第17章 網路編程
17.1 計算機網路基礎
17.1.1 TCP
17.1.2 UDP
17.1.3 C/S(客戶端/伺服器)
17.1.4 IP位址
17.1.5 連線埠
17.1.6 JDK中的網路類
17.2 URL
17.2.1 URL類
17.2.2 URLConnection類
17.3 InetAddress類
17.4 Socket套接字
17.4.1 Socket套接字
17.4.2 ServerSocket類
17.4.3 在Socket套接字中使用多執行緒
17.4.4 在Applet中使用套接字
17.4.5 數據壓縮與傳輸
17.5 UDP數據報
17.5.1 將數據打包
17.5.2 傳送與接收數據包
17.5.3 廣播數據報
第18章 資料庫編程
18.1 JDBC簡介
18.2.1 SQLServer2000的安裝
18.2.2 建立資料庫
18.2.3 創建表
18.2.4 創建表之間的關係
18.2.5 操作表數據
18.3 常用SQLServer語句介紹
18.3.1 創建表
18.3.2 修改表
18.3.3 刪除表
18.3.4 Insert語句(插入數據)
18.3.5 Select語句(查詢表中的數據)
18.3.6UPDATE語句(更新數據)
18.3.7 Delecte語句(刪除數據)
18.4 連線資料庫的方式
18.4.1 JDBCODBC橋
18.4.2 使用純Java資料庫驅動程式
18.5 通過DatabaseMetaData了解資料庫信息
18.6 結果集ResultSet對象
18.6.1 ResultSet的基本處理方法
18.6.2 獲取結果集的信息
18.6.3可滾動結果集
18.7 PreparedStatement預編譯語句
18.8 存儲過程
18.8.1 在SQLServer2000中創建存儲過程
18.8.2 調用存儲過程
18.8.3 在程式中創建存儲過程
18.9 事務處理
18.10 JDBC連線其他資料庫
18.10.1 訪問Access資料庫
18.10.2 訪問MySQL資料庫
18.10.3 訪問Oracle資料庫
序言
Java從1995年正式發布至今,幾乎是滿載著讚譽一路走來,備受數以千萬計程式設計師的推崇,逐漸發展成為最廣泛使用的程式語言之一。
Java語言所帶來的革命,每一位IT從業人員都有自己親身的體會。很多軟體開發工程師都投入很多時間和精力來學習Java語言及其構架,因此,掌握Java語言意味著學習更新的技術和發現更多的就業機會。
Java語言究竟有著什麼樣的魅力,能擁有這么多的追隨者?在招聘Java高級開發人員時,面試官也常常提出這樣的疑問。他們要求應聘者用一句話描述出Java的特點和魅力所在:“write orlce,run anywhere”(編寫一次,處處運行)就是最好的答案。
的確如此,Java擁有良好的可移植性。用Java編寫的程式可以輕鬆地在Windows、Unix、Linux,甚至在PDA和行動電話上運行。因此,軟體開發商對Java的青睞,是基於Java構架的產品,以使這些產品能適應各種用戶的系統環境,並為更多的用戶提供服務。
本書是一本實例教程。和其他實例教程不同的是,書中不花大篇幅介紹原理,而是添加大量的實例說明套用。對於初學者而言,只要按照書中所描述的步驟,對那些實例進行調試、理解,就可以快速利用這些知識實現那些複雜的、令人興奮的功能;而對於有過Java編程經驗的讀者來說,如對有些方法的套用理解不夠,而幫助文檔的翻譯也令人失望時,可以依據書中對那些實例的原理介紹和代碼解析做適當的修改,使它成為能滿足用戶所需的程式。
本書是作者多年教學經驗積累的智慧結晶,並在實踐中不斷完善與創新,形成了自己特有的體系。該書內容由淺入深,層層推進。在體系結構上,力求安排合理,重點難點分明,易學易掌握,且書中涉及的每個知識點都用例子演示,從而說明這些知識點的具體使用方法。書中的所有例程均在JDKI.6環境中測試、運行並通過。
由於java包含的東西太多,一本書不可能將其精髓全部展現出來,因此只能儘可能將最常用、最實用的各種套用編程方法介紹給讀者。實際動手進行調試是掌握本書知識的一個重要環節,希望引起讀者的高度重視。
文摘
第1章 Java簡介
1.3 Java的特點
Java是一門高級程式語言,它流行的原因是由它的特點決定的,它的特點包括:
1.簡單
Java語言的主要特點之一是簡單,它的基本概念容易掌握,Java程式設計師不須經過大量的訓練就可以將其轉化為生產力。同時,Java語言吸取了C和C++的優點,去除C和C++中複雜的部分,如:指針、運算符重載、多重繼承等。
2.面向對象
Java語言從開始就被設計為一門面向對象的程式語言。在Java語言中,除了基本數據類型外,一切都是對象。Java程式設計師可以使用Java提供的豐富的類庫,開發出複雜功能的程式。 Java語言保留著面向對象程式語言的特性,表面上看和C++非常相似,這意味著程式設計師可以很快的轉到Java開發平台。
3.健壯和安全
Java語言具有很高的可靠性,它提供了編譯時檢查和運行時檢查兩種機制保障代碼的安全性。這些特性引導程式設計師養成編寫可靠代碼的好習慣。
Java語言的記憶體管理模式也極其簡單,即可使用flew運算符創建對象。Java語言去除C、C++中的指針數據類型,增加了自動回收垃圾機制,這使程式設計師可以放心開發各自的代碼,因為Java系統會在編譯或運行時發現這些問題。
Java語言也大量用於分散式環境中,因此對安全性有更高的要求。Java程式只能運行在Java環境中,這使得在網路和分散式環境下Java程式不會成為攻擊本地資源的病毒或惡意代碼的傳播者,從而確保全全。