本書是一部Java基礎開發(fā)教程,使用Java 11 版本,以IntelliJ IDEA為開發(fā)環(huán)境,從軟件工程的視角講解Java編程的各種知識,由淺入深,由理論到實戰(zhàn),帶領讀者走進Java編程的廣袤世界。全書共分為17章。其中第1~6章介紹Java的常見數(shù)據(jù)類型及開發(fā),包括基本變量類型、數(shù)組類型、包裝變量類型、字符串類型以及日期時間類型;第7~11章介紹面向對象的開發(fā)過程,包括面向對象的三要素(封裝、繼承、多態(tài))、面向對象的擴展(嵌套、枚舉、抽象、接口)、面向對象的應用(容器、泛型、文件IO)、面向對象的特殊處理(異常、反射、注解)以及基于面向對象的函數(shù)式編程;第12~14章介紹Java語言的界面編程,包括AWT、Swing、JavaFX三大圖形框架的編碼運用;第15~17章介紹Java編程的高級開發(fā),包括多線程、網(wǎng)絡通信和數(shù)據(jù)庫操作,各章末尾著重描述打地鼠游戲、即時通信工具、詩歌管理系統(tǒng)三大實戰(zhàn)項目的軟件設計及編碼實現(xiàn)。
本書適用于Java編程的初學者、有志于轉型Java開發(fā)的程序員,也可作為大中專院校與培訓機構的Java基礎課程教材。
本書是一本Java入門教程,可以幫助讀者迅速上手Java基礎編程。
本書詳細地講解了Java語言的語法構成和編程技巧,但并不局限于傳統(tǒng)的Java編碼說明,而是以軟件工程的視角鋪敘編程知識,從基本的數(shù)學公式到專門的求解算法,從多樣的數(shù)據(jù)結構到常見的設計模式,這些知識不僅適
用于Java語言,也適用于其他編程語言。如此編寫的目的是,力圖讓讀者掌握通用的編程技能,而非僅僅學會某個語言的編碼,以后讀者若去學習其他編程語言,則只要具備通用的編程技能,即可借此觸類旁通、事半功倍。
全書共17章內(nèi)容,分為4部分,其中第1~6章介紹了Java的常見數(shù)據(jù)類型及其開發(fā),包括基本變量類型、數(shù)組類
型、包裝變量類型、字符串類型,以及日期時間類型;
第7~11章介紹了面向對象的開發(fā)過程,包括面向對象的三要素(封裝、繼承、多態(tài)),面向對象的擴展(嵌套、
枚舉、抽象、接口),面向對象的應用(容器、泛型、文件IO),面向對象的特殊處理(異常、反射、注解)
以及基于面向對象的函數(shù)式編程;
第12~14章介紹了Java語言的界面編程,包括AWT、Swing、JavaFX三大圖形框架的編碼運用;
第15~17章介紹了Java編程的高級開發(fā),包括多線程、網(wǎng)絡通信和數(shù)據(jù)庫操作,各章末尾著重描述了打地鼠游戲、即時通信工具、詩歌管理系統(tǒng)三大實戰(zhàn)項目的軟件設計及其編碼實現(xiàn)。
編程的本質是利用計算機為人們解決實際問題,這些問題可大可小,小的如加減乘除,大的如飛天登月,都離不開計算機指令的精確操作。但是計算機在誕生之初并不如此智能,相反它只會幾種簡單的指令,跟牙牙學語的嬰兒差不多,那么計算機又是怎樣精通十八般武藝的呢?雖然大家知道計算機程序由編程實現(xiàn),但背后離不開兩大基礎學科的發(fā)展壯大,其中一個是數(shù)學,另一個是邏輯學。
數(shù)學是一切自然科學的基礎,借助于數(shù)學已經(jīng)發(fā)現(xiàn)的各種算法和定理,計算機才能通過四則運算實現(xiàn)各種科學計算,從而具備計算器的演算功能。而邏輯學提供了科學檢驗的方法,根據(jù)存在的某種事實,經(jīng)過判斷去推理結果,使得計算機能夠完成狀態(tài)機的因果判定。把計算器與狀態(tài)機結合在一起,并利用編程技術進一步封裝方法和結構,使之開展更復雜的業(yè)務操作,由此誕生了早期的軟件程序,逐步發(fā)展成專業(yè)的軟件開發(fā)領域。
依據(jù)編程規(guī)范的差異,程序開發(fā)又可劃分為各類編程語言,從最早的機器語言,到稍后的匯編語言,再到以C語言為代表的中級語言,繼之以C++、Java為代表的高級語言,每種語言順應時代要求各領風騷若干年。Java便是其中一個長盛不衰的語言,不僅老而且新。說它老,是因為Java誕生于20世紀90年代,可謂來自20世紀的老古董;說它新,是因為它每半年就發(fā)布一個新版本,迭代之快令人目不暇接。早在Java問世之時,它就提供了面向對象、跨平臺運行等強大特性;自Java8開始,它又增加了函數(shù)式編程、流式處理等先進理念,一直站在編程領域的發(fā)展前沿。
原本Java語言的設計者打算讓它涉獵三個開發(fā)方向,分別是:用于服務器的JavaEE、用于桌面程序的JavaSE、用于移動終端的JavaME。經(jīng)過二十余年的大浪淘沙,Java編程在企業(yè)服務器開發(fā)方向始終屹立不倒,它在國內(nèi)的市場份額遠超另外兩個Web開發(fā)框架-PHP和.NET。此外,Java作為安卓系統(tǒng)的主要開發(fā)語言,它在移動互聯(lián)網(wǎng)時代更是大放異彩。一個擁有Java編程技能的求職者,既可投遞Web開發(fā)崗位,又能應聘App開發(fā)職位,就業(yè)渠道無疑拓寬了許多。
因此,在未來的相當長時期之內(nèi),Java編程都將是軟件開發(fā)的主力軍,而非像一些語言那樣曇花一現(xiàn)。盡管時代熱點此起彼伏,各路豪強語言輪番登臺,但多數(shù)語言缺乏龐大的產(chǎn)業(yè)基礎,眾人一窩蜂追逐的結果,必然導致學成之日即是失業(yè)之時。唯有Java歷經(jīng)數(shù)十年的風風雨雨,至今仍保有國內(nèi)第一大編程語言的寶座。況且Java擁有這些年沉淀下來的眾多框架組件,旱己筑造一條難以逾越的護城河,加之各行各業(yè)推行“互聯(lián)網(wǎng)+”的革新,長遠來看,這場數(shù)字變革將持續(xù)開展,帶動Java人才的需求居高不下。
第1章 Java開發(fā)環(huán)境搭建
1.1 JDK的安裝和配置
1.1.1 Java的發(fā)展歷程
1.1.2 下載和安裝JDK
1.1.3 配置環(huán)境變量
1.2 IntelliJIDEA的安裝與配置
1.2.1 安裝IntelliJIDEA
1.2.2 配置IntelliJIDEA
1.2.3 運行第一個Java程序
1.3 Java虛擬機(JVM)
1.3.1 Java程序的運行機制
1.3.2 JVM的體系結構
1.3.3 JVM、JRE與JDK的區(qū)別
1.4 Java編程的基本概念
1.4.1 Java的代碼結構
1.4.2 Java的特殊官吏
1.4.3 Java的度量衡
1.5 小結
第2章 數(shù)學運算
2.1 數(shù)值變量
2.1.1 數(shù)值變量的類型
2.1.2 特殊數(shù)字的表達
2.1.3 強制類型轉換
2.2 算術運算
2.2.1 四則運算符
2.2.2 賦值運算符
2.2.3 一元運算符
2.3 數(shù)學函數(shù)
2.3.1 取整函數(shù)
2.3.2 取隨機數(shù)
2.3.3 科學計算函數(shù)
2.3.4 三角函數(shù)
2.4 實戰(zhàn)練習
2.4.1 利用牛頓迭代法求平方根
2.4.2 利用割圓術求解圓周率
2.5 小結
第3章 邏輯控制
3.1 邏輯運算
3.1.1 布爾類型及其運算
3.1.2 關系運算符
3.1.3 運算符的優(yōu)先級順序
3.1.4 按位邏輯與短路邏輯
3.2 控制語句
3.2.1 條件分支
3.2.2 多路分支
3.2.3 while循環(huán)
3.2.4 for循環(huán)
3.3 數(shù)組
3.3.1 一維數(shù)組
3.3.2 二維數(shù)組
3.3.3 冒號的幾種用法
3.3.4 數(shù)組工具Arrays
3.4 實戰(zhàn)練習
3.4.1 求解“雞兔同籠”問題
3.4.2 求解“韓信點兵”問題
3.4.3 利用二分查找法定位數(shù)組元素
3.5 小結
第4章 方法與包裝
4.1 方法定義
4.1.1 方法的組成形式
4.1.2 方法的輸入?yún)?shù)
4.1.3 方法的輸出參數(shù)
4.2 基本類型包裝
4.2.1 數(shù)值類型包裝
4.2.2 包裝變量的運算
4.2.3 布爾類型包裝
4.3 大數(shù)字類型
4.3.1 大整數(shù)Big Integer
4.3.2 大小數(shù)Big Decimal
4.4 實戰(zhàn)練習
4.4.1 通過方法遞歸實現(xiàn)階乘函數(shù)
4.4.2 利用牛頓迭代法求大數(shù)開方
4.4.3 利用大數(shù)字求更精確的圓周率
4.5 小結
……
第5章 字符串與正則表達式
第6章 日期時間
第7章 類的三要素
第8章 特殊的類
第9章 容器與泛型
第10章 類的進階用法
第11章 文件I/O處理
第12章 AWT界面編程
第13章 Swing界面編程
第14章 JavaFX界面編程
第15章 多線程
第16章 網(wǎng)絡通信
第17章 數(shù)據(jù)庫操作
附錄