商品簡介
Java 7.0是Sun公司與Oracle公司合并後推出的關于Java語言的第一個版本,同時也是最新版本。《零基礎學Java(第3版)》站在零基礎學習的角度,使初學者能盡快掌握Java 7.0語言程序設計的精髓而少走彎路。
《零基礎學Java(第3版)》一共分為4篇,共27章,循序漸進地講述了Java語言的語法規則,Eclipse和MyEclipse開發環境的使用,從基本概念到具體實踐,從入門知識到高階主題,從語法語義到數據結構和算法都進行了詳細的闡述,主要包括運算符、表達式、分支語句、循環語句、函數、數組、字符串、類、對象、包、繼承、多態、封裝、枚舉、反射、標注、泛型、類加載器、動態代理、多線程、文件的操作和訪問、數據的操作、數據的存儲、Java數據結構、XML文件的創建和解析、數據庫的鏈接、網絡編程和界面的設計等知識點。
《零基礎學Java(第3版)》非常適合Java語言的初、中級學者閱讀,并可作為開發人員的參考手冊。
名人推薦
《零基礎學Java(第3版)》由淺入深,循序漸進,從零開始學Java,一點都不難。
編程基礎、編程進階、編程應用、項目實戰、上機練習、面試指南。
220個實例、1個案例、51個練習題、21個面試題。
目次
前言
第一篇 Java語言語法基礎-面向過程知識
第1章 Java技術概覽
1.1 Java技術
1.1.1 Java編程語言
1.1.2 Java語言平臺
1.1.3 Java語言的功能
1.1.4 Java語言的優點
1.2 Windows下的';HelloWorld';應用程序
1.2.1 創建應用程序的軟件環境
1.2.2 創建';HelloWorld';應用程序的步驟
1.3 深入探討';HelloWorld';應用程序
1.3.1 注釋源代碼
1.3.2 實現類定義
1.3.3 詳解main方法
1.4 常見疑難問題解答
1.4.1 環境變量設置錯誤
1.4.2 語法錯誤
1.4.3 語義錯誤
1.4.4 運行時錯誤
1.5 小結
1.6 實踐題
第2章 Java開發工具及環境設置
2.1 Java開發工具簡介
2.1.1 下載并安裝JDK
2.1.2 設定環境變量
2.1.3 驗證JDK環境是否配置成功
2.2 JDK內置工具
2.2.1 JDK常用工具
2.2.2 JDK常用工具實例
2.2.3 應用程序發布工具
2.3 一個簡單的Java應用程序
2.4 一個簡單的Java Applet應用程序
2.4.1 編寫一個Applet
2.4.2 編寫承載Applet Java程序的HTML文件
2.4.3 Applet的運行過程
2.5 注釋及內嵌式文檔
2.6 常見疑難問題解答
2.6.1 JDK和J2SDK的區別
2.6.2 Java文件擴展名是否區分大小寫
2.7 小結
2.8 實踐題
第3章 Java語言中的數據與運算符
3.1 數制
3.1.1 基本概念
3.1.2 Java語言中的數制表現形式
3.2 數據類型
3.2.1 整型
3.2.2 字符型
3.2.3 浮點型
3.2.4 布爾型
3.3 變量
3.3.1 變量的聲明
3.3.2 變量的含義
3.3.3 變量的分類
3.4 變量如何初始化
3.5 常量
3.6 運算符
3.6.1 算術運算符
3.6.2 關系運算符
3.6.3 邏輯運算符
3.6.4 位運算符
3.6.5 移位運算符
3.6.6 賦值運算符
3.6.7 三元運算符
3.6.8 逗號運算符
3.6.9 轉型運算符
3.6.10 運算符的優先級別
3.7 常見疑難解答
3.7.1 如何將十進制轉換成二進制
3.7.2 轉型運算符會引起精度問題,為什么還要使用它
3.8 小結
3.9 實踐題
第4章 程序設計中的流程控制
4.1 編程風格
4.2 條件語句
4.2.1 條件語句的種類
4.2.2 如何使用好條件語句
4.3 循環語句
4.3.1 for循環語句
4.3.2 while循環
4.3.3 do...while語句
4.4 中斷與繼續語句
4.4.1 中斷控制語句
4.4.2 繼續語句
4.5 分支語句
4.6 返回語句
4.7 常見疑難解答
4.7.1 普通循環是使用for語句還是while語句
4.7.2 一般的程序可否用分支語句來代替條件語句
4.8 小結
4.9 實踐題
第5章 數組
5.1 數組概念的引入
5.1.1 實例的引入
5.1.2 數組的概念
5.1.3 用實例說明數組的用處
5.2 基本數據類型的數組
5.2.1 基本類型數組的聲明
5.2.2 基本類型數組的初始化
5.3 由實例引出不同數組種類及其使用
5.3.1 由實例引出一維數組及其使用
5.3.2 由實例引出二維數組及其使用
5.4 數組的綜合實例
5.5 常見疑難解答
5.5.1 聲明數組需要注意什么
5.5.2 數組在平時的程序代碼中使用是否頻繁
5.6 小結
5.7 實踐題
第6章 字符串的處理
6.1 字符串的基本概念
6.2 字符串處理的類庫種類
6.2.1 字符串的賦值
6.2.2 字符串的處理類-String
6.2.3 字符串處理的方法
6.2.4 緩沖字符串處理類-StringBuffer
6.2.5 緩沖字符串StringBuffer類的構造器
6.2.6 緩沖字符串處理的方法
6.2.7 緩沖字符串類的特點
6.3 用實例演示如何處理字符串
6.4 如何格式化輸出
6.5 常見疑難解答
6.5.1 ';equals';和';==';的區別
6.5.2 String類為何被定義成final約束
6.5.3 char類型如何轉換成int類型,int類型如何轉換成字符串
6.6 小結
6.7 實踐題
第二篇 Java語言語法進階-面向對象知識
第7章 類
7.1 JDK相關版本特性
7.1.1 什么是JDK
7.1.2 JDK 5的特點
7.1.3 JDK 6的特點
7.1.4 JDK 7的特點
7.1.5 各種JDK版本的比較
7.2 用比較法闡述類的概念
7.3 Java中已有的類
7.3.1 Java的數學運算處理類Math
7.3.2 測試時間和日期的類Date
7.3.3 測試日歷的類GregorianCalendar
7.3.4 日歷處理的實例解析
7.4 用實例分析設計一個類的流程
7.4.1 如何在現實程序設計中提取一個類
7.4.2 設置器和訪問器
7.4.3 總結
7.5 常見疑難解答
7.5.1 類在程序語言中起到了什么作用
7.5.2 設置器和訪問器的作用
7.6 小結
7.7 實踐題
第8章 對象和包
8.1 對象
8.1.1 什么是對象
8.1.2 操作對象
8.1.3 初始化對象
8.2 對象家族中的成員
8.2.1 對象的成員方法
8.2.2 對象的成員變量
8.3 對象中訪問控制符的重要性
8.3.1 什么是訪問控制符
8.3.2 如何使用訪問控制符及其重要性
8.4 重載
8.4.1 什么是重載
8.4.2 用實例來說明重載的意義
8.5 包
8.5.1 什么是Java中的包
8.5.2 如何實現包
8.5.3 什么是類路徑和默認包
8.5.4 包的作用域
8.5.5 靜態導入
8.6 注釋及嵌入文檔
8.6.1 如何添加注釋
8.6.2 類、方法、字段等注釋的方法
8.7 常見疑難解答
8.7.1 包在實際編程中究竟有什么作用
8.7.2 訪問控制符在實際開發有什么作用
8.7.3 一個文件中定義了兩個class類是否生成一個.class文件
8.8 小結
8.9 實踐題
第9章 繼承
9.1 什么是繼承
9.1.1 繼承的引出
9.1.2 繼承的概念
9.2 如何實現繼承
9.3 構造函數的使用
9.3.1 什么是構造函數
9.3.2 繼承中構造函數的初始化
9.3.3 替代父類和本身的方式
9.3.4 Java中的單繼承性
9.4 繼承中的覆蓋現象
9.5 類之間的關系
9.5.1 依賴
9.5.2 聚合
9.5.3 繼承
9.6 繼承層次圖
9.7 如何設計好繼承
9.8 常見疑難解答
9.8.1 Java不支持多繼承,如何處理一個類繼承多個父類的情況
9.8.2 如果出現了帶參數的構造函數,可否不在代碼中寫出來
9.9 小結
9.10 實踐題
第10章 多態
10.1 多態的產生
10.2 多態的概念
10.2.1 使用多態編寫程序
10.2.2 覆蓋的應用
10.2.3 重載與覆蓋的實例對比
10.2.4 覆蓋的多態性
10.2.5 傳值引用和傳址引用
10.3 通過實例熟悉多態用法
10.4 綁定
10.4.1 靜態綁定
10.4.2 動態綁定
10.5 超類
10.5.1 什么是超類
10.5.2 equals方法的使用
10.5.3 通用編程
10.6 常見疑難解答
10.6.1 動態和靜態編譯是什么
10.6.2 綁定與多態的聯系是什么
10.6.3 多態與重載的區別是什么
10.7 小結
10.8 實踐題
第11章 接口與內部類
11.1 接口
11.1.1 接口概念的引入
11.1.2 接口的概念
11.1.3 接口的聲明
11.1.4 接口的實現
11.1.5 接口的多重實現
11.1.6 接口的屬性
11.1.7 接口的繼承
11.1.8 接口意義
11.2 內部類
11.2.1 使用內部類來訪問對象
11.2.2 局部內部類
11.2.3 靜態內部類
11.2.4 匿名內部類
11.3 常見疑難解答
11.3.1 匿名類如何在程序中使用
11.3.2 接口與繼承有什么區別
11.4 小結
11.5 實踐題
第12章 抽象
12.1 抽象的概念
12.1.1 什么是抽象
12.1.2 抽象的綜合實例
12.2 抽象類
12.2.1 什么是抽象類
12.2.2 抽象類的實例
12.3 抽象與接口的區別
12.4 枚舉
12.4.1 關于枚舉的實現原理
12.4.2 枚舉的簡單應用
12.4.3 關于枚舉的高級特性
12.5 反射(Reflection)
12.5.1 關于反射的基石-Class類
12.5.2 關于反射的基本應用
12.5.3 關于反射的高級應用
12.6 標注
12.6.1 標注的簡單使用
12.6.2 關于JDK的內置標注
12.7 泛型
12.7.1 為什么要使用泛型
12.7.2 關于泛型的一些特性
12.7.3 關于泛型的通配符
12.8 類加載器
12.8.1 什么是類加載器
12.8.2 什么是類加載器的委派模型
12.9 動態代理
12.9.1 什么是代理
12.9.2 關于動態代理基礎類
12.9.3 關于InvocationHandler接口
12.9.4 動態代理類的設計模式
12.10 常見疑難解答
12.10.1 抽象類和接口在概念上有什么區別
12.10.2 如何從設計理念上看待抽象類和接口
12.11 小結
12.12 實踐題
第三篇 Java語言編程主題
第13章 線程
13.1 線程的基本概念
13.1.1 進程及其使用環境
13.1.2 線程及其使用環境
13.2 線程創建
13.2.1 如何創建線程
13.2.2 通過實例熟悉如何創建線程
13.3 線程的使用
13.3.1 線程的優先級
13.3.2 線程的休眠與喚醒
13.3.3 線程讓步
13.3.4 線程同步
13.3.5 同步塊
13.3.6 同步化方法
13.4 實例分析
13.4.1 生產者與消費者的程序設計及分析
13.4.2 多消費者的程序設計及分析
13.4.3 多生產者的程序設計及分析
13.5 常見疑難解答
13.5.1 Java中線程與線程之間怎么通信
13.5.2 什么是進程的死鎖和饑餓
13.5.3 什么時候會涉及線程程序
13.6 小結
13.7 實踐題
第14章 封裝
14.1 封裝的介紹
14.2 在程序設計中為什么要使用封裝
14.3 結合實例講述如何設計封裝
14.4 在程序設計中設計封裝的注意點
14.5 常見疑難解答
14.5.1 封裝在現實開發中給程序員帶來什么啟發
14.5.2 封裝在實際開發中的應用有哪些
14.6 小結
14.7 實踐題
第15章 Java輸入與輸出(I/O)
15.1 輸入與輸出的重要性
15.2 Java重要的輸入輸出類
15.3 文件或目錄信息的處理
15.3.1 File常用的操作方法
15.3.2 文件處理方法的應用
15.3.3 文件和目錄的完全處理
15.4 讀取數據的媒介之一-流(Stream)
15.4.1 什么是流
15.4.2 什么是輸入流和輸出流
15.4.3 字節輸入流及輸出流
15.4.4 使用文件字節輸入流讀取文件
15.4.5 使用文件字節輸出流輸出文件
15.5 多字節數據讀取類-Filter類
15.5.1 Filter流的概念
15.5.2 處理字節類型以外的文件輸入
15.5.3 處理字節類型以外的文件輸出
15.5.4 增強的多字節輸出流DataOutput
15.5.5 增強的多字節輸入流DataInput
15.6 讀取數據的媒介之二-字符流
15.6.1 字符流的概念
15.6.2 抽象字符輸入流Reader類的使用
15.6.3 抽象字符輸出流Writer類的使用
15.6.4 讀取帶緩存的BufferedReader字符流
15.6.5 帶緩存的字符輸出流BufferedWriter類
15.6.6 字符輸入流FileReader類和FileWriter類的使用
15.6.7 如何用標準輸入流System.in來獲取數據
15.6.8 打印輸入流PrintWriter類與PrintStream類的區別
15.6.9 隨機文件訪問RandomAccessFile類
15.7 利用對象序列化控制輸入輸出
15.7.1 什么是對象序列化
15.7.2 基本數據和對象數據讀寫ObjectInput接口與ObjectOutput接口
15.7.3 對象序列化處理ObjectOutputStream類
15.7.4 對象序列化處理ObjectInputStream類
15.8 常見疑難解答
15.8.1 字節流與字符流主要的區別
15.8.2 輸入流與輸出流如何區分,各有什么作用
15.8.3 什么是管道流
15.9 小結
15.10 實踐題
第16章 異常與處理及內存管理
16.1 異常的概念
16.1.1 異常的分類
16.1.2 異常的聲明
16.1.3 異常的拋出
16.2 異常的捕獲
16.2.1 捕獲多個異常
16.2.2 自定義異常
16.3 內存的管理和回收
16.4 常見疑難解答
16.4.1 為什么要聲明方法拋出異常
16.4.2 為什么拋出的異常一定是檢查異常
16.5 小結
16.6 實踐題
第17章 Java中對數據的處理
17.1 如何將基本數據類型轉換為對象
17.1.1 為什么要將基本數據轉換為對象
17.1.2 Wrapper類的構造函數
17.1.3 包裝類的常用函數
17.1.4 基本數據的拆裝箱操作(autoboxing和unboxing)
17.2 如何處理隨機性的數據
17.2.1 Random類的基礎知識
17.2.2 通過實例熟悉Random類的常用方法
17.3 如何對數據進行排列、整理
17.3.1 Arrays類的常用方法
17.3.2 實例分析
17.4 常見疑難解答
17.4.1 Random類函數在現實生活中有什么用處
17.4.2 數組的排列和整理數據在實際應用中有什么用處
17.5 小結
17.6 實踐題
第18章 數據結構
18.1 數據結構接口及實現
18.1.1 數據結構接口的實質
18.1.2 用實例來熟悉數據結構接口的實現
18.2 Collection集合接口與Iterator迭代器接口
18.2.1 熟悉Collection集合接口
18.2.2 List鏈表接口和Set接口
18.2.3 Map映射接口
18.2.4 Iterator迭代器接口
18.2.5 通過實例來認識迭代器的實現
18.3 常見疑難解答
18.3.1 Collection集合接口和Collections集合類的區別
18.3.2 ArrayList數組列表類和Vector存儲類的區別
18.3.3 HashMap散列映射和Hashtable散列表的區別
18.3.4 數據結構的種類有哪些
18.3.5 List鏈表接口和Set接口的區別
18.4 小結
18.5 實踐題
第19章 Java中的數據結構
19.1 鏈表
19.1.1 什么是Java中的鏈表
19.1.2 用程序代碼段實現對鏈表的添加
19.1.3 用程序代碼段實現對鏈表的刪除
19.2 數組列表類
19.2.1 什么是數組列表類
19.2.2 通過實例熟悉數組列表如何存儲數據
19.3 散列表
19.3.1 什么是散列表
19.3.2 通過實例熟悉散列表如何存儲數據
19.4 散列集
19.4.1 什么是散列集
19.4.2 通過實例熟悉散列集如何存儲數據
19.5 樹集
19.5.1 什么是樹集
19.5.2 通過實例熟悉樹集如何存儲數據
19.6 映像
19.6.1 什么是映像
19.6.2 通過實例熟悉映像如何存儲數據
19.7 常見疑難解答
19.7.1 哪些是線程安全的數據結構
19.7.2 Vector是什么樣的數據結構
19.8 小結
19.9 實踐題
第20章 XML基礎
20.1 XML的產生及與HTML的比較
20.2 XML的編輯工具
20.3 XML文檔
20.3.1 XML的聲明
20.3.2 文檔類型的聲明
20.3.3 元素
20.3.4 注釋
20.3.5 處理指令
20.3.6 空白處理
20.3.7 行尾處理
20.3.8 語言標識
20.3.9 一個簡單的有關XML的實例
20.4 關于XML的高級知識
20.4.1 什么才是格式良好的XML文檔
20.4.2 DTD文檔的作用
20.4.3 DTD的結構
20.4.4 幾個簡單有關DTD的實例
20.5 關于XML文檔的操作
20.5.1 下載Dom4J組件
20.5.2 安裝和配置Dom4J組件
20.5.3 Dom4J組件的簡單使用-解析XML文件
20.5.4 Dom4J組件的簡單使用-創建XML文件
20.6 關于XML文檔的高級操作
20.6.1 下載Sax類庫
20.6.2 安裝和配置Sax組件
20.6.3 Sax組件的簡單使用--解析XML文件
20.7 常見疑難解答
20.7.1 XML與HTML的區別
20.7.2 XML有哪些顯示數據的方式
20.8 小結
20.9 實踐題
第21章 JDBC及其應用
21.1 數據庫基礎知識
21.1.1 什么是數據庫
21.1.2 數據庫的分類及功能
21.1.3 關系數據庫的設計
21.1.4 數據庫設計技巧
21.2 JDBC的基礎概念
21.2.1 JDBC驅動程序的分類
21.2.2 利用Java到數據庫協議方式連接數據庫
21.2.3 利用Java到本地API方式連接數據庫
21.2.4 利用JDBC-ODBC方式連接數據庫
21.3 關于SQL Server 2005數據庫基礎操作
21.3.1 什么是支持SQL語言的數據庫
21.3.2 通過SQL語言如何操作數據庫
21.3.3 安裝SQL Server 2005
21.3.4 高級SQL類型
21.3.5 使用SQL創建數據庫
21.4 JDBC基本編程
21.4.1 如何建立數據庫
21.4.2 如何操作數據庫
21.5 關于JDBC的高級操作
21.5.1 什么是事務處理
21.5.2 事務處理的過程演練
21.5.3 預查詢
21.6 常見疑難解答
21.6.1 操作數據庫的具體步驟是什么
21.6.2 數據庫中的視圖、圖表、缺省值、規則、觸發器、存儲過程的意義
21.7 小結
21.8 實踐題
第22章 Swing組件與布局管理器
22.1 什么是Swing編程
22.2 MVC設計模式基礎
22.3 簡單框架設計及實例
22.3.1 創建一個空白的框架
22.3.2 創建框架的其他工作
22.4 簡單圖形按鈕控件的設計及實例
22.4.1 Swing中的按鈕控件
22.4.2 按鈕的模型
22.4.3 添加按鈕
22.4.4 如何添加單選按鈕
22.4.5 復選按鈕
22.4.6 ToggleButton按鈕
22.5 簡單文本輸入組件的設計及實例
22.5.1 文本域的設計
22.5.2 密碼域的設計
22.5.3 如何設計文本區
22.6 標簽組件的設計及實例
22.7 選擇組件的設計及實例
22.8 菜單的組件設計
22.9 對話框的種類及用法
22.10 復雜布局管理器的種類及用法
22.10.1 箱式布局的設計
22.10.2 網格組布局的設計
22.11 通過實例熟悉Swing編程
22.12 常見疑難解答
22.12.1 如何處理菜單的啟用和禁用功能
22.12.2 如何編寫快捷鍵的程序
22.13 小結
22.14 實踐題
第23章 開發工具的使用
23.1 Eclipse簡介
23.1.1 下載并安裝Eclipse
23.1.2 Eclipse界面介紹
23.2 如何使用Eclipse進行開發
23.2.1 如何新建一個Java工程
23.2.2 如何新建一個Java的類
23.2.3 編寫代碼
23.3 如何使用MyEclipse進行開發
23.3.1 下載并安裝MyEclipse
23.3.2 關于MyEclipse的一些常用操作
23.4 常見疑難解答
23.4.1 Eclipse和Uedit兩個開發工具的優缺點
23.4.2 什么是IDE環境
23.4.3 有關Eclipse的編譯報錯的原因
23.5 小結
23.6 實踐題
第24章 Applet設計
24.1 Applet的基本概念及生命周期
24.2 Applet的多媒體處理
24.2.1 聲音處理
24.2.2 圖像處理
24.3 瀏覽器與Applet的設計
24.3.1 如何將Applet嵌入瀏覽器
24.3.2 如何使用Applet類編程
24.3.3 如何用Applet控制瀏覽器
24.4 Applet的安全
24.5 一個Applet的綜合實例分析
24.6 常見疑難解答
24.6.1 瀏覽器如何運行Applet
24.6.2 有關Applet無法在IE中顯示問題的解答
24.7 小結
24.8 實踐題
第25章 網絡編程基礎
25.1 網絡基礎知識
25.2 TCP與UDP
25.3 端口與套接字
25.4 TCP程序設計基礎
25.4.1 如何設計TCP的程序
25.4.2 一個簡單的例子
25.5 UDP程序設計基礎
25.5.1 如何設計UDP的程序
25.5.2 一個簡單的例子
25.6 如何設計網絡程序
25.6.1 單向通信綜合實例
25.6.2 雙向通信綜合實例
25.7 常見疑難解答
25.7.1 TCP和UDP的區別
25.7.2 什么是TCP/IP協議?分為幾層?協議有什么功能?
25.8 小結
25.9 實踐題
第四篇 Java語言程序設計實例與面試題剖析
第26章 學校管理系統
26.1 開發背景
26.2 需求分析
26.3 登錄界面的設計
26.3.1 登錄界面的分析
26.3.2 登錄界面的代碼實現
26.3.3 登錄界面的實現
26.4 主界面的設計
26.4.1 主界面類的分析
26.4.2 主菜單界面類的代碼
26.4.3 主菜單界面類的實現
26.5 數據庫系統的設計
26.5.1 數據庫中表的創建
26.5.2 數據庫中代碼段
26.6 學生信息系統界面的設計
26.6.1 學生類的設計
26.6.2 儲存類的設計
26.6.3 學生信息界面的設計
26.7 教師信息系統界面的設計
26.7.1 教師類的設計
26.7.2 儲存類的設計
26.7.3 教師信息界面的設計
26.8 領導信息系統界面的設計
26.8.1 領導類的設計
26.8.2 儲存類的設計
26.8.3 領導信息界面的設計
26.9 小結
第27章 面試題
面試題1 Java的引用和C++的指針有什么區別
面試題2 類和對象有什么區別
面試題3 說明private、protected、public和default的區別
面試題4 Java可以用非0來代表true嗎
面試題5 StringBuffer和StringBuilder存在的作用是什么
面試題6 二維數組的長度是否固定
面試題7 符合什么條件的數據集合可以使用foreach循環
面試題8 如何序列化和反序列化一個Java對象
面試題9 如何使用Java的線程池
面試題10 如何利用反射實例化一個類
面試題11 TCP協議的通信特點是什么
面試題12 請簡述JDBC操作數據庫的編程步驟
面試題13 如何使用連接池技術
面試題14 簡述接口和抽象類的區別
面試題15 如何理解Java中的裝箱和拆箱
面試題16 根據代碼判斷創建的對象個數
面試題17 分析循環程序的運行結果
面試題18 可以返回最大值的方法
面試題19 關于垃圾回收的疑問
面試題20 線程問題:找出代碼中的錯誤
面試題21 關于ArrayList、Vector、LinkedList的問答題
書摘/試閱
第1章 Java技術概覽
Java是一種出色的面向對象跨平臺編程語言。在當今的軟件領域幾乎無處不見Java語言活躍的身影,然而Java語言究竟是什么,本章將從兩個方面解釋Java的';身世';。Java既是一種編程語言,也是一個軟件平臺。本章還將從多個方面分析Java到底能為我們做什么。
本章重點:
Java語言的功能和特點。
學習創建簡單的Java程序。
學會處理常見的Java編譯錯誤。
1.1 Java技術
Java既是編程語言也是軟件平臺,作為編程語言的Java有一套自己的機制,實現源程序到處理器可執行程序間的過渡與轉換,作為軟件平臺,Java為程序員提供了編程接口和Java虛擬機(Java Virtual Machine,JVM),下面將依次介紹。 1.1.1 Java編程語言 Java作為一種高級語言具有許多優良特性,如跨平臺、面向對象、分布式、多線程、安全性、健壯性、簡單性等。這些優良的特性在讀者學習完本書後會深有體會。
在Java語言中的所有源代碼都可以通過無格式的記事本編寫,并保存為.Java文件,因為通過該擴展名,Java編譯器會知道該文件是自己可以處理的文件。經過編譯後的文件為.class文件,該文件是字節碼文件,此時.class文件不能被處理器直接讀取執行,必須通過虛擬機轉換成二進制文件後,才可以被處理器執行。圖1.1是Java程序的開發過程,整個過程說明了上面敘述的內容。
Java是跨平臺的高級編程語言,這里的平臺是指操作系統平臺,如Windows、Unix、Mac、Linux等。使用Java語言編寫的程序一次編譯就可以在所有上述平臺上運行,就是因為有Java虛擬機的存在。Sun提供了在各種操作系統平臺上運行安裝的Java虛擬機,虛擬機都可以執行.class文件。這樣也就實現了眾所周知的';一次編譯,隨處運行';的理想。
......;