促銷
學習
課程
任務
問卷 & 測驗
遊戲
說明
行程
社群
用戶
論壇
聊天
文章
成功故事
動態
評價
訂閱
淺色主題
課程
評論
關於我們
開始
開始學習
立即開始學習
My Progress
Courses
任務地圖
課程
Java 25
所有任務
所有等級
序列化的壓縮與效能剖析
JAVA 25 SELF
等級 45,
課程 4
如何在 Java 中減小大小並加速物件序列化:用
transient
排除多餘欄位,透過
Externalizable
取得完全控制,使用串流壓縮(
GZIPOutputStream
、
ZipOutputStream
),以緩衝(
BufferedOutputStream
、
BufferedInputStream
)加速 I/O,並透過
FileChannel
.
transferTo
進行快速複製。為了評估效能,我們同時使用
System
.
nanoTime
() 的快速量測與基於
JMH
的可靠微基準。最後以一個小型實驗和常見錯誤解析作結。
JSON 基礎:結構、語法、優點
JAVA 25 SELF
等級 46,
課程 0
精要且現代的 JSON 資料交換格式導論:它是什麼、為何成為事實上的
REST API
標準;基本結構—物件
{ }
與陣列
[ ]
;允許的型別(字串
"..."
、數字、布林值
true
/
false
、
null
)、巢狀、與 XML 的比較、JSON ↔ Java 的對應(集合
Map<K, V>
、
HashMap<K, V>
)。解析實用範例與常見錯誤:單引號、多餘逗號、
undefined
、具有前導零的數字。
Jackson — 讀取與寫入 JSON、註解
JAVA 25 SELF
等級 46,
課程 1
Jackson — 是在 Java 中處理 JSON 的事實上標準:從透過
ObjectMapper
進行簡單的序列化與反序列化,到使用註解
@JsonProperty
、
@JsonIgnore
、
@JsonInclude
、
@JsonFormat
做細緻設定。這堂課將說明如何引入(
jackson-databind
)、讀寫物件與集合、pretty-printing、處理日期,以及常見錯誤,包括搭配
TypeReference
的泛型與對 POJO 的要求(無參數建構子、getter/setter)。
Gson — 序列化與反序列化、設定
JAVA 25 SELF
等級 46,
課程 2
在本講次中我們將講解 Google 的
Gson
函式庫:從
toJson
/
fromJson
的快速上手、透過
TypeToken<>
反序列化集合、以及使用
GsonBuilder
進行彈性設定(
setPrettyPrinting
、
serializeNulls
、
setDateFormat
)。我們會說明
@SerializedName
、
@Expose
註解,版本控制的
@Since
/
@Until
,自訂配接器
TypeAdapter
與
registerTypeAdapter
,最後與
Jackson
做比較並梳理常見錯誤。
使用動態結構:Map、List、JsonNode
JAVA 25 SELF
等級 46,
課程 3
當 JSON 的結構事先未知或經常變動時,與其使用嚴格的 Java 類別,不如使用通用的容器:
Map
、
List
與 JSON 樹。這堂課說明如何用
ObjectMapper
將資料讀入
Map<String, Object>
與
List
,如何透過
JsonNode
及其方法
get
/
path
/
asText()
安全地遍歷樹;也會介紹以
Gson
為替代方案,使用
JsonElement
、
JsonObject
、
JsonArray
。最後以抽取組態的實作收尾,並解析常見錯誤。
JSON 驗證:JSON Schema,驗證錯誤
JAVA 25 SELF
等級 46,
課程 4
為何以及如何在反序列化前檢查以
JSON
格式傳入的資料:透過
JSON Schema
制定資料契約(鍵
type
、
properties
、
required
、
format
),在 Java 中使用
everit-org/json-schema
進行驗證(將架構載入為
Schema
,呼叫
validate
),妥善處理
ValidationException
,並為使用者與 API 產生清楚易懂的錯誤訊息。
XML 與命名空間基礎
JAVA 25 SELF
等級 47,
課程 0
對
XML
的簡短而實用的導論:基礎結構(元素、屬性、文字節點、註解、
CDATA
)、prolog 的組成;更重要的是——為什麼需要命名空間以及如何透過屬性
xmlns
與
xmlns:prefix
來宣告與套用它們。將說明前綴、預設命名空間(
xmlns
=
"URI"
)、在同一文件中混用不同「詞彙」以及常見的解析錯誤。
使用 DOM 與 SAX:解析 XML
JAVA 25 SELF
等級 47,
課程 1
本講次將說明兩種經典的 XML 解析方式:樹狀的
DOM
與事件導向的
SAX
。你將學會透過樹結構(
Document
、
Element
、
NodeList
)讀取與修改文件,並以事件處理器(
SAXParser
、
DefaultHandler
、
startElement
/
characters
/
endElement
)串流處理大型檔案。我們會展示各種方法的優缺點、實作範例,並拆解常見錯誤(記憶體、在
characters
中的文字分割、在 SAX 中嘗試修改 XML)。
StAX (Streaming API for XML) — 流式解析
JAVA 25 SELF
等級 47,
課程 2
用 StAX 拆解 XML 的流式解析:pull 模型與 SAX 的 push 方式有何不同,如何透過
XMLInputFactory
建立解析器,並以迴圈呼叫
reader
.
next
() 從
XMLStreamReader
讀取事件;有哪些事件型別(
START_ELEMENT
、
CHARACTERS
、
END_ELEMENT
、
END_DOCUMENT
),以及何時 StAX 比
DOM
/
SAX
更合適。另外包含:各方法比較表、Mermaid 圖表,以及常見錯誤解析(資源/串流洩漏、元素巢狀、
XMLStreamException
、
IOException
等)。
透過 JAXB 操作 XML:基礎與註解
JAVA 25 SELF
等級 47,
課程 3
如何使用
JAXB
(Jakarta XML Binding)在 Java 物件與 XML 之間互相轉換:關鍵註解
@XmlRootElement
、
@XmlElement
、
@XmlAttribute
、
@XmlType
、
@XmlTransient
;基礎類別
JAXBContext
、
Marshaller
、
Unmarshaller
;透過屬性
Marshaller.JAXB_FORMATTED_OUTPUT
設定格式化輸出。涵蓋 Java 11+ 的 Maven 相依(
jakarta.xml.bind-api
、
jaxb-runtime
)、處理集合與巢狀物件、控制元素順序(
propOrder
)、排除欄位與常見錯誤。
設定 XML 序列化:自訂配接器
JAVA 25 SELF
等級 47,
課程 4
如何讓
JAXB
序列化「非標準」型別並以所需格式呈現資料:使用註解
@XmlJavaTypeAdapter
,並基於
XmlAdapter<ValueType, BoundType>
撰寫自訂配接器。會講解日期格式化(
LocalDate
→
"dd.MM.yyyy"
)、數字(
BigDecimal
)、處理集合,透過
@XmlAttribute
將值放入屬性、透過
@XmlElement
輸出為元素,以及用
@XmlTransient
排除欄位。還會練習透過
Marshaller
/
Unmarshaller
進行序列化/反序列化,並解析常見錯誤。
Lambda 運算式:語法與作用域
JAVA 25 SELF
等級 48,
課程 0
重溫並深化 Java 中的 lambda 運算式:語法(參數、箭頭
->
、主體)、可省略括號與
return
的簡寫、與函式式介面的關聯(
Comparator
、
Runnable
、
Consumer
),以及在清單、串流與
Stream API
中的日常範例。解析作用域與「有效
final
」規則、lambda 與匿名類別中
this
的差異,以及常見錯誤與避免方式。
顯示更多
1
...
20
21
22
23
24
...
30
Please enable JavaScript to continue using this application.