促销
学习
课程
任务
调查 & 测验
游戏
帮助
日程
社区
Users
论坛
聊天
文章
成功故事
动态
评价
订阅
浅色主题
课时
评论
关于我们
开始
开始学习
立即开始学习
我的进度
课程
任务地图
课程
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
的事实标准;基本结构——object
{ }
与array
[ ]
;可用类型(字符串
"..."
、数字、布尔value
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
)、序言的构成,尤其是——为何需要命名空间以及如何通过
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
创建解析器并用
XMLStreamReader
的循环调用
reader
.
next
() 读取事件;有哪些事件类型(
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.