薛小國小Java

薛小國小Java

《薛小國小Java》是2020年人民郵電出版社出版的圖書,作者是菲利普·阿克曼。

基本介紹

  • 中文名:薛小國小Java
  • 作者:菲利普·阿克曼
  • 出版時間:2020年1月1日
  • 出版社人民郵電出版社
  • ISBN:9787115525031
內容簡介,圖書目錄,作者簡介,

內容簡介

本書以幽默詼諧的寫作方式,由淺入深、圖文並茂地講解了使用Java進行程式開發所需要的知識和技術。結合具體實例,書中介紹了變數、基本數據類型、控制流程等基本概念,以及泛型、lambda、JavaFX等高級概念,同時論述了如何正確編寫面向對象程式,哪些是好的、哪些是壞的編程習慣,如何讓代碼可讀性更強,面向服務架構和函式式編程的區別,如何測試,等等。除此之外,書中還講解了XML、CSS、SQL等相關知識。

圖書目錄

第1章 你好!小薛
引言和第一個程式
Java無處不在 2
JRE,JDK,SE,EE,ME 2
安裝Java 3
Hallo Schr dinger 6
手動編譯 7
運行程式 10
了解編譯器和Java虛擬機 11
階段練習 12
獨立完成練習 13
開發環境 15
安裝Eclipse 15
工作區和工作檯 16
第一個項目 18
打包要有序 21
輕而易舉地創建一個包 23
用Eclipse創建一個新的類 24
與程式進行互動 26
什麼是流 28
遊戲開始——“文字冒險” 30
Java的歷史 35
第2章 萬物皆是數據類型
變數和基本數據類型
變數和數據類型 40
數據類型的分類 41
數字類型有哪些 42
長數字的新讀法 45
數字小練習 46
二進制、八進制、十進制和十六進制 47
變數名的命名規則 49
Java語言編碼規範——選擇有效的變數名 51
運算和運算符 53
深入研究除法運算 54
用 BigDecimal 進行精確計算 55
自增和自減語句 56
計算練習 57
數字類型的轉換 58
字元類型變數 60
階段練習——凱撒字母加密法 62
非真即假 64
關係運算符 66
階段練習——說出真相! 67
包裝類 69
數字類型練習 72
字元類型練習 73
總結 74
第3章 我是不是曾經到過這裡!
Java的流程控制語句
流程控制的套用 78
要是生活中沒有“如果”該多好 78
語句的嵌套 79
if-else判斷語句 80
階段練習——條件分支 81
布爾運算符 83
也可以不用加“花括弧” 83
判定條件的縮寫形式 84
條件運算符( 表達式) 85
多條件判定語句(switch語句) 85
階段練習 87
switch語句的字元串參數 88
遠離現實 89
玩轉循環 92
循環嵌套 95
循環語句練習 96
編程練習——查找質數 96
綜合練習——小薛的皇冠 100
調試程式 103
中斷循環 106
循環的標籤 107
綜合練習——列印日曆 108
本章總結 112
第4章 字元串的“盛宴”
有關字元串的操作
字元串的定義 114
訪問字元串中的字元 116
字元串的拆分 117
字元和字元串的運算 120
字元串的比較 123
部分字元串的比較 123
階段練習——字元串比較 125
字元串的查找和替換操作 127
階段練習——選單黑客 129
字元串類對象的創建 131
字元串池更專業的分析 135
字元串是不可改變的 139
可以被改變的字元串 140
字元的刪除、替換以及鏡像 142
階段練習 144
本章總結 145
第5章 對象,一個特別的類
類、對象和方法
代碼的重複使用——方法 148
代碼的重構 152
提高代碼的可讀性 156
方法的注釋 157
方法的返回值 158
階段練習——天氣預報 159
初識類和對象 160
封裝 164
set和get方法 166
階段練習 169
多參數的set方法 170
階段練習——類和對象 172
變數和方法的訪問許可權 174
構造函式 176
對象轉換成字元串型數據 180
關聯原始碼 181
原文輸出對象的內容 182
流暢接口 183
創建對象的流程 185
引用類型、堆和垃圾回收機制 189
如果堆滿了怎么辦 191
析構函式 192
請慎用堆 193
安裝Eclipse的虛擬機 193
另一個存儲空間:棧 202
對比棧和堆的使用情況 204
階段練習——這事兒是貓乾的 206
階段練習——棧還是堆 208
第6章 他到底是從哪裡來的
繼承
繼承 212
繼承可以減少重複編寫代碼的工作量 214
有其父必有其子 216
通過方法的重寫制定行為 217
禁止重寫方法 219
階段練習——小花的繼承關係 220
可以訪問“祖父類”嗎 222
繼承和構造函式 224
構造函式鏈的修復 225
階段練習——構造函式 228
階段練習——繼承關係 229
引用型數據的強制類型轉換 232
向上轉型 233
類型轉換 234
方法的重載 235
階段練習——訂閱服務 236
面向服務和面向對象程式設計 238
面向對象程式設計的解決方案 239
階段練習——重載 240
階段練習——登台表演 241
本章總結 243
第7章 接口,疼痛的記憶
抽象類和接口
抽象類 246
抽象方法 248
階段練習——不管是數字的還是模擬的,抽象的才是關鍵! 250
階段練習——都是抽象的嗎 258
接口 259
階段練習——接口的套用 264
接口和多態…… 266
接口和繼承 267
寧少勿多…… 269
接口中的常量 270
常量類中的常量 270
靜態導入 271
靜態塊 272
枚舉常量 273
接口內容複習 274
類的其他形式 275
靜態成員類 275
非靜態成員類 277
局部類 278
匿名類 279
抽象類和多態——小薛,你是不是都明白了? 281
第8章 你真的了解你所有的鞋嗎
數組、集合和映射
我想有更多的貓,交更多的女朋友 284
對象的欲望 286
多維數組 287
全都給我吧 288
你已經有這樣的鞋了! 289
凡事都要親力親為 290
探索對象的相同性 292
到底是相同還是不同 293
數組自己不會增長 293
集合 295
完善買鞋的測試程式! 297
階段練習 299
疊代器 300
Link和List 301
“機不可失,失不再來” 302
Hash的春天 303
階段練習——Set輔助刑警破案 304
階段練習——Set結構的買鞋測試程式 307
生成哈希碼 308
樹和房間 311
是大碼還是小碼 313
不用樹結構排序 316
階段練習——鞋的排序 318
映射 319
階段練習——你已經有這么多雙鞋了 320
後進先出棧 323
請排隊,好嗎 324
終於到Java 8 的lambda表達式了 325
filter()、map()和reduce() 327
階段練習——高跟鞋!!! 331
本章內容回顧——lambda表達式 333
第9章 異常和異常處理
異常處理
從錯誤變成異常 336
第一個異常 337
拋出異常前的準備 338
要學會捕獲異常 340
善後工作——finally語句塊 342
階段練習——自定義異常處理 343
異常的繼承 345
異常用來互動信息——究竟發生了什麼異常 346
降低報錯信息的“耦合性” 348
重新拋出異常 349
如何進行異常處理 350
階段練習——轉發異常的另一種方式 351
不必捕獲的異常——未檢查型異常 353
防禦式編程和運行時異常 356
異常處理日誌 357
讓門衛一起記錄日誌 358
不用再搶救了 360
階段練習——記憶體滿了 362
自動關閉資源 363
讀取檔案操作 364
規則也有例外 366
第10章 嘿,夥計,你不能進來!
泛型
通用類型 370
泛型出現之前 371
使用泛型以後 372
階段練習——貓狗大戰 374
貓籃子還可以作為子類 375
標準化接口 376
通配符表達問題 377
上限通配符 380
麻煩:不允許小薛進行寫操作 381
下限通配符 384
泛型方法 386
階段練習——通配符 387
複習內容 390
咖啡渣——本章中的“乾貨” 393
第11章 狂野的洪流——輸入和輸出
檔案、流和序列化
Bossingen帶來的檔案 396
再來點嗎?試試二進制! 397
二進制檔案的寫入操作——位元組輸出流 399
巨慢——複製檔案的普通流操作 400
更快些——複製檔案的位元組快取流操作 401
誰還讀取位元組呀?文本檔案的字元流讀取操作 402
文本檔案的字元流寫入操作 403
CSV——文本檔案的轉換 404
向目錄開炮 407
終於整理好了——生成檔案和目錄 408
客戶信息轉換流水線 410
精細過濾是成功的一半——目錄的過濾 412
走在正確的“路徑”上:新的檔案IO API 413
客戶信息轉換——現在更簡單了 416
對象的保存 418
嵌套對象的序列化 421
影響序列化和反序列化 423
用writeObject()和readObject()方法實現自定義序列化 424
階段練習——榆木的腦袋和聰明的腦袋 426
回顧關於流的內容 428
第12章 保持聯繫
執行緒
進程與執行緒 430
第一個執行緒 432
激活執行緒之夜 433
輸出偶數還是奇數 435
獲得執行緒狀態 437
執行緒睡覺了 438
英雄,當心! 439
等待其他人 442
同步 443
階段練習——先來一份偶數,謝謝! 446
執行緒死鎖! 447
發現和避免死鎖 449
成功的關鍵 451
活鎖、餓死、優先權和啤酒 453
活鎖 453
設定優先權 456
等待和通知 458
餓死 460
階段練習——等待和睡覺 462
綜合練習——兩位英雄對4000個獸人,各司其職 463
本章總結——防止你“掉線” 467
第13章 應該可以看到結果!
部署程式和生成文檔
打包程式 470
階段練習——打包JAR檔案 473
Java Web Start 475
在Eclipse中添加函式館 477
你好,Doc大叔——用javadoc生成文檔 480
結構化和模組化 483
階段練習——模組化?明白! 487
編譯模組 489
現在你已經學會打包了 491
第14章 交換學生——數據的互動格式
XML
XML 494
俄羅斯臘腸 500
階段練習——XML的音樂學校 505
到底是元素還是屬性 507
讀取XML文檔 508
追蹤犬——SAX 508
訓練有素的追蹤犬還是“不要打給我,
我會打給你的”——StAX 512
Cursor API 513
Iterator API 513
文檔對象模型 515
階段練習——Flower Power 518
編寫XML文檔 520
階段練習——1、2還是3?SAX,StAX還是DOM?
什麼時候該用什麼? 523
條條大路通Java 525
JAXB 527
從XML轉換到Java及反向轉換 529
階段練習——花之力量 531
關於X某某的總結 535
第15章 用JDBC保存數據
資料庫
關係型資料庫 538
第一個SQL表格 539
生成連結 543
添加數據記錄 545
階段練習——英雄和郵票 547
指令總結 550
準備就緒 551
讀取數據 552
什麼是你想要的?根據條件篩選數據記錄 554
數據排序後輸出 556
階段練習——誰是最強者 557
連線多個表中的信息 561
所有都得重來——事務 562
關係型資料庫和Java對象間的映射 564
階段練習——把魔鬼滾回去 565
複習 568
本章最重要的部分 569
第16章 全新的舞步
用Swing和JavaFX來實現GUI編程
離開控制台的動力——Swing 572
全部都在框架里——如何生成GUI組件 572
全部要行列對齊——怎么布局GUI組件 575
用格線布局把所有組件放在格線里 578
用格線包布局合併單元格 580
階段練習——鞋放在盒子裡好,還是放在格線里好 584
布局好了,但是動作……還沒有呢?怎么給GUI組件添加動作 587
用Swing實現用戶輸入信息驗證 591
階段練習——販鞋商人 592
更絢麗、更多功能的JavaFX 596
JavaFX正式登台表演 598
再用CSS加些“味道” 602
添加動作 604
JavaFX中對用戶輸入數據的驗證 605
階段練習——用JavaFX來做交易 606
專業做法——無須監聽器為組件添加動作 607
帶行為的滑塊 609
核心專家的綁定方案同樣可以解決 610
粉刷匠和油漆工學徒的考試重點 613
第17章 走向世界
國際化、本地化、格式化、模式匹配和正則表達式
本地化 616
軟體的國際化 619
階段練習——芬蘭語的鞋盒 621
鐘情於英語 624
類的載入 625
階段練習——想要紅酒還是啤酒 627
數字和貨幣的格式化 629
日期和時間的格式化 630
階段練習——貨幣換算器 632
文本訊息的格式化 634
新版日期/時間API 635
時區、時間軸、時間點和時段 636
不需要時間軸表示日期、時間和時段 638
時區和時差 640
只要再多一點時間,一切就都清楚了 641
日期和時間的格式化 642
字元串類的格式化 643
階段練習——格式化走起! 645
用正則表達式進行樣式匹配 646
階段練習——這個電話號碼不要連線符 651
尋找字元串的子串 651
階段練習——匹配還是不匹配?不算難事! 653
通過組獲取某個子串 654
E-Mail地址的認證 655
本章重要內容總結 657
第18章 你確定結果正確嗎?單元測試和Java Web Start的後續內容
單元測試
單元測試 660
測試框架 661
階段練習——可我已經訂了一份雞尾酒 668
異常情況的測試 672
階段練習——根本不難喝呀 674
JWS後續內容 676
這一單元里最重要的知識 679

作者簡介

菲利普·阿克曼(Philip Ackermann)是德國弗勞恩霍夫套用信息技術研究所的軟體開發人員,計算機科學碩士。他對Java虛擬機和整潔代碼充滿熱情,能駕輕就熟地工作在不同的開發環境中,或者輾轉在Java和Node.js之間,還能遊刃有餘地應對小薛提出的CSS、XML、SQL或其他語言的問題。

相關詞條

熱門詞條

聯絡我們