Linguagens de programação
Tutoriais de Python, C, C++, Java, JavaScript, TypeScript, Go, R e Haskell — da sintaxe básica às técnicas avançadas.
網路程式設計與 JDBC
現代軟體幾乎沒有孤島:前端要打 API、後端要連資料庫、服務之間要互相呼叫。本章 聚焦兩個最基礎也最關鍵的能力——網路通訊與資料庫存取。這兩者 都建立在前幾章的基礎上:伺服器要用第 4 章的執行緒池服務多個連線,非同步 HTTP 呼叫要用 CompletableFuture,連線池的概念也與執行緒池一脈相承。
Ler artigo →設計模式與現代 Java
歡迎來到進階篇的最後一章,也是全系列的終點。設計模式是前輩們把「反覆出現的 設計問題」歸納出的通用解法,是工程師之間的共通詞彙。但學設計模式有個常見誤區: 把模式當成必須硬套的教條。本章希望傳達的是——模式是詞彙,不是規則; 理解每個模式「解決什麼問題」,遠比背下它的類別圖重要。
Ler artigo →認識 Java 與建置開發環境
歡迎踏上 Java 的學習之旅!學程式和學一門外語很像:一開始要先認識這門語言的 背景與「發音規則」,接著開口說出第一句話。本章就是這趟旅程的起點——我們會先 認識 Java 是什麼、為什麼全世界有數百萬名工程師靠它吃飯,然後把開發環境架設 起來,最後親手寫出第一個能執行的程式。
Ler artigo →變數與資料型別
上一章我們讓程式成功「說話」了,但那個程式只會印出寫死的文字。真正的程式 必須能記住東西——玩家的血量、購物車的金額、使用者輸入的名字。這些被記住的 資料就存放在「變數」(variable)裡。本章先學會建立與命名變數,接著認識 Java 為不同種類的資料準備的八種基本型別,最後讓程式第一次「聽」懂你從 鍵盤輸入的內容。
Ler artigo →運算子與運算式
上一章我們學會把資料放進變數,但只會「存放」的程式什麼也做不了——資料 必須被計算、比較、組合,才會產生價值。讓資料動起來的工具就是「運算子」 (operator),而運算子把變數與字面值組合起來的式子稱為「運算式」 (expression),每個運算式最終都會算出一個值。
Ler artigo →流程控制
到目前為止,我們寫的程式都是「一本道」:從 main 的第一行走到最後一行, 每次執行的路線一模一樣。真實世界的程式顯然不是這樣——密碼對了才能登入、 餘額不足要擋下提款、名單有幾個人就寄幾封信。讓程式「看狀況做事」與 「重複做事」的語法,統稱流程控制(control flow),它是程式從「計算機」 進化成「有邏輯的系統」的關鍵一步。
Ler artigo →陣列
想像你是老師,要記錄全班 100 位學生的成績。用上一章的知識,你得宣告 score1、score2 一路寫到 score100——光宣告就一百 行,想算平均還得把一百個變數名字全部加起來。這顯然不對勁。程式世界的 解法是「陣列」(array):一排連續的格子,共用一個名字,用編號區分彼此。 一個變數,就能管理一百筆、一萬筆資料。
Ler artigo →方法
寫到現在,你的 main 方法應該越來越長了——計算、驗證、輸出全部擠在 一起,想重複某段邏輯只能複製貼上。複製貼上是程式設計的萬惡之源: 同一段邏輯散落多處,改需求時漏改一處就是臭蟲。業界把解藥稱為 DRY 原則(Don't Repeat Yourself,別重複你自己),而 Java 實踐 DRY 的 基本工具就是「方法」(method):把一段有名字的邏輯封裝起來,需要時 呼叫名字即可。
Ler artigo →字串處理
回顧一下:我們其實從第 1 章的 "Hello, World!" 開始就天天在用 字串(String)了。字串是程式與人類交會的地方——使用者輸入的 是文字,網頁與報表輸出的是文字,檔案與網路傳輸的內容大多也是文字。 可以說,實務程式有一半的工作是在「搬運與加工文字」,字串因此是所有 型別中方法最豐富、使用頻率最高的一個。
Ler artigo →物件導向入門
本冊的壓軸登場。到目前為止,我們的程式由「零散的變數」與「處理它們的 方法」組成——這種風格稱為程序式程式設計。它應付小程式綽綽有餘,但當 資料一多、關係一複雜,變數與方法就會像沒有收納的房間一樣失控。物件 導向(Object-Oriented Programming,OOP)是 Java 給出的收納哲學: 把資料與操作資料的行為,打包成一個個「物件」。
Ler artigo →教材範例程式碼
三冊教材中所有章節的範例程式,已抽出為可獨立編譯執行的 .java 檔案, 並保留書中的繁體中文教學註解。目錄結構與書中章節一一對應:
Ler artigo →進階篇範例程式
本目錄收錄《Java 程式設計完整學習教材》進階篇 ch01~ch08 全部 82 個範例, 皆可獨立編譯(已於 OpenJDK 21 驗證),並保留書中的繁體中文教學註解。 每個檔案第一行的 // 出處:… 註明對應的章節。
Ler artigo →初級篇範例程式
本目錄收錄《Java 程式設計完整學習教材》初級篇第 1〜8 章的全部範例程式, 每章一個目錄(與 .tex 檔名一致),每個檔案都可獨立編譯執行,並逐字保留 書中的繁體中文教學註解。每個檔案第一行的「出處」註解標明對應章節。
Ler artigo →中級篇範例程式
本目錄收錄《Java 程式設計完整學習教材》中級篇 ch01〜ch08 的全部範例, 每個檔案開頭都註明出處章節,書中的中文教學註解逐字保留。
Ler artigo →如何使用本教材
《Java 程式設計完整學習教材》共分三冊,對應三個學習階段:初級篇、中級篇與進階篇。 每一章都包含觀念講解、大量附詳細中文註解的範例程式、預期執行結果、常見錯誤提醒, 以及章末的動手練習。三冊循序漸進,完整走完即具備從零基礎到資深工程師所需的 Java 核心知識。
Ler artigo →封裝與繼承
在初級篇裡,你已經會定義類別、建立物件、撰寫建構子與方法。本章要把物件導向真正的威力釋放出來:封裝(encapsulation)讓每個物件為自己的資料把關,使「不合法的狀態」根本不可能出現;繼承(inheritance)讓新類別站在既有類別的肩膀上,重複利用並擴充其行為。這兩個概念是物件導向三大支柱的前兩根,第三根「多型」將在下一章登場。
Ler artigo →多型、抽象類別與介面
上一章的繼承讓 Manager 重複利用了 Employee 的程式碼,但繼承真正的殺手級應用不是省程式碼,而是本章的主角——多型(polymorphism):讓同一個呼叫式,在不同物件身上展現不同行為。有了多型,新增一種員工、一種形狀、一種付款方式時,既有的處理邏輯一行都不用改。這是物件導向「對修改封閉、對擴充開放」精神的技術基礎。
Ler artigo →例外處理
程式不會永遠走在快樂路徑上:檔案可能不存在、輸入可能是亂碼、餘額可能不足。一個系統的品質,往往不是看它正常運作時多優雅,而是看它出錯時多可靠。Java 的例外(exception)機制把「錯誤的表達、傳遞與處理」從一般的回傳值中獨立出來,讓錯誤既不會被忽略,也不會淹沒主要邏輯。
Ler artigo →集合框架
初級篇的陣列有兩個天生的限制:長度固定(建立後不能增減,塞滿了得手動搬家)與功能陽春(搜尋、去重、鍵值對應都要自己寫迴圈)。Java 的集合框架(Collections Framework)用一組精心設計的介面與實作類別解決這些問題:容量自動成長、常用操作一應俱全,而且以介面為中心,換一種實作不必改動使用端的程式。
Ler artigo →泛型
上一章你已經在使用泛型:List<String> 保證清單裡只有字串。本章換到另一邊,學會設計泛型——寫出像 ArrayList<E> 那樣「一份程式碼、服務所有型別」的類別與方法。泛型是 Java 5 引入的編譯期機制,核心理念只有一句話:讓編譯器在寫程式的當下就抓到型別錯誤,而不是讓使用者在執行期看到程式爆炸。
Ler artigo →檔案與 I/O
到目前為止,程式的所有資料都活在記憶體裡,程式一結束就煙消雲散。要讓資料活得比程式久,就得寫進檔案;要處理外部世界的資料,就得從檔案讀進來。本章的主角是 Java 的 I/O(Input/Output)體系:從檔案的中繼資料操作、位元組與字元兩套流、緩衝的效能原理,到物件序列化,最後用一個 CSV 成績單處理程式串起全部。
Ler artigo →列舉、內部類別與常用 API
前六章打通了物件導向與核心容器,本章補齊三塊日常開發天天用到的拼圖:列舉(enum)讓「固定的一組選項」型別安全;巢狀類別讓輔助類別待在該待的地方;再加上 Math、Random 與 java.time 這些標準 API——第 8 章的專案會同時用上它們(訂單狀態、借閱日期都在等著)。
Ler artigo →綜合實戰——圖書管理系統
前七章的知識點都是單兵訓練,本章進行合成演練:打造一個可以實際操作的圖書管理系統——新增書籍、註冊會員、借書還書、資料存檔,全部在主控台完成。麻雀雖小,五臟俱全:這個專案的分層方式(model、exception、repository、service、app)正是業界後端系統的標準縮影,進階篇的資料庫與網路章節會在同一副骨架上繼續長大。
Ler artigo →10. 產生器、情境管理器與 GIL(Generators, Context Managers and the GIL)
進階前九課已經涵蓋物件導向、函數式寫法、並行、資料處理、Web、資料庫、測試與部署。本課補語言本身還缺獨立教材的兩個協定——迭代/產生器協定與情境管理器協定——並把第 3 課 03_concurrency_parallelism.md 示範過的三種並行,用 GIL 的角度收攏成一張選擇表。範例以 CPython 的預設組建為準。
Ler artigo →