<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>基础部分 on 编程那些事儿</title><link>https://before80.github.io/prgms/Java/basic/</link><description>Recent content in 基础部分 on 编程那些事儿</description><generator>Hugo</generator><language>zh-cn</language><lastBuildDate>Tue, 31 Mar 2026 14:21:25 +0800</lastBuildDate><atom:link href="https://before80.github.io/prgms/Java/basic/index.xml" rel="self" type="application/rss+xml"/><item><title>第1章 Java 是什么——先搞清楚你将要学的是什么</title><link>https://before80.github.io/prgms/Java/basic/Chapter-01-what-is-java/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-01-what-is-java/</guid><description>&lt;h1 id="第一章-java-是什么先搞清楚你将要学的是什么"&gt;第一章 Java 是什么——先搞清楚你将要学的是什么&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;想象一下，你正准备学一门编程语言，结果发现它叫&amp;quot;爪哇&amp;quot;——一种咖啡的名字。你会不会以为这是咖啡公司出的编程语言？恭喜你，答对了！Java 还真就跟咖啡有着说不清道不明的关系。（当然，不是你想的那个&amp;quot;Java&amp;quot;，不是那个让你熬夜加班的续命神器。）本章我们来聊聊 Java 的前世今生，搞清楚你到底要学的是什么，以及为什么它能让你在职场中&amp;quot;续命&amp;quot;成功。&lt;/p&gt;</description></item><item><title>第2章 Java 版本演变史：从 1996 年到 2026 年</title><link>https://before80.github.io/prgms/Java/basic/Chapter-02-java-evolution/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-02-java-evolution/</guid><description>&lt;h1 id="第二章-java-版本演变史从-1996-年到-2026-年"&gt;第二章 Java 版本演变史：从 1996 年到 2026 年&lt;/h1&gt;
&lt;p&gt;「如果你在 1996 年告诉别人，2026 年这门语言还会是最流行的编程语言之一，他们可能会觉得你疯了。但 Java 就是这么倔强——别人写胶水代码，它写企业级系统；别人追新特性，它稳扎稳打地演进。Java 的历史，就像一部编程界的『活着的传奇』，每十年一次大变局，每次变局都让程序员又爱又恨。」&lt;/p&gt;</description></item><item><title>第3章 Java 版本选择指南——我该学哪个版本？</title><link>https://before80.github.io/prgms/Java/basic/Chapter-03-version-selection/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-03-version-selection/</guid><description>&lt;h1 id="第三章-java-版本选择指南我该学哪个版本"&gt;第三章 Java 版本选择指南——我该学哪个版本？&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;世界上只有两种编程语言：一种是被人骂的，一种是没人用的。&amp;rdquo; —— Java 两个都占了，但骂的人更多，说明用的人更多。&lt;/p&gt;</description></item><item><title>第4章 Java 开发环境完全搭建指南</title><link>https://before80.github.io/prgms/Java/basic/Chapter-04-environment-setup/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-04-environment-setup/</guid><description>&lt;h1 id="第四章-java-开发环境完全搭建指南"&gt;第四章 Java 开发环境完全搭建指南&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;工欲善其事，必先利其器。在写第一行 Java 代码之前，咱们得先把开发环境整利索了。这一章，手把手带你从零搭起 Java 开发环境，保证你出去能跑 Hello World，回家能调 Bug。&lt;/p&gt;</description></item><item><title>第5章 Java 程序的运行与调试</title><link>https://before80.github.io/prgms/Java/basic/Chapter-05-run-and-debug/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-05-run-and-debug/</guid><description>&lt;h1 id="第五章-java-程序的运行与调试"&gt;第五章 Java 程序的运行与调试&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;把代码写出来只是第一步，让它跑起来、跑得对、跑得快，才是真正的本事。本章我们从 JVM 的运行原理讲起，再到 IDE 里如何和 bug 斗智斗勇，最后介绍几个命令行神器。准备好了吗？Let&amp;rsquo;s go！&lt;/p&gt;</description></item><item><title>第6章 第一个 Java 程序与代码结构</title><link>https://before80.github.io/prgms/Java/basic/Chapter-06-first-java-program/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-06-first-java-program/</guid><description>&lt;h1 id="第六章-第一个-java-程序与代码结构"&gt;第六章 第一个 Java 程序与代码结构&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Talk is cheap, show me the code.&amp;rdquo; — 这句话在 Java 世界里尤其正确。再多理论也比不上亲手跑通一个程序带来的成就感。准备好了吗？让我们从那句经典的 &lt;code&gt;Hello World&lt;/code&gt; 开始，正式踏入 Java 的大门。&lt;/p&gt;</description></item><item><title>第7章 变量与数据类型——Java 的积木</title><link>https://before80.github.io/prgms/Java/basic/Chapter-07-variables-and-data-types/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-07-variables-and-data-types/</guid><description>&lt;h1 id="第七章-变量与数据类型java-的积木"&gt;第七章 变量与数据类型——Java 的积木&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎯 本章目标：弄懂变量是什么、Java 有哪些数据类型、它们在内存里长什么样，以及如何让数据&amp;quot;变身&amp;quot;。&lt;/p&gt;</description></item><item><title>第8章 运算符——Java 的计算能力</title><link>https://before80.github.io/prgms/Java/basic/Chapter-08-operators/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-08-operators/</guid><description>&lt;h1 id="第八章-运算符java-的计算能力"&gt;第八章 运算符——Java 的计算能力&lt;/h1&gt;
&lt;p&gt;想象一下，如果你有一台超级智能的机器人，但它只会站在那里一动不动，那该多无聊啊！运算符就是赋予 Java&amp;quot;动手能力&amp;quot;的关键——它们让 Java 能够做数学计算、比较大小、判断真假，甚至直接操控计算机最底层的比特位。&lt;/p&gt;</description></item><item><title>第9章 控制流程——程序的交通灯与循环</title><link>https://before80.github.io/prgms/Java/basic/Chapter-09-control-flow/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-09-control-flow/</guid><description>&lt;h1 id="第九章-控制流程程序的交通灯与循环"&gt;第九章 控制流程——程序的交通灯与循环&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序和数据结构是算法的血肉，而控制流程是算法的灵魂。没有控制流程，代码只是一堆躺在床上的僵尸。&amp;rdquo; —— 某位不愿意透露姓名的程序员&lt;/p&gt;</description></item><item><title>第10章 方法（函数）——代码的复用与封装</title><link>https://before80.github.io/prgms/Java/basic/Chapter-10-methods/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-10-methods/</guid><description>&lt;h1 id="第十章-方法函数代码的复用与封装"&gt;第十章 方法（函数）——代码的复用与封装&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Don&amp;rsquo;t repeat yourself.&amp;rdquo; —— DRY 原则，程序员的第一诫&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;欢迎来到第十章！在这一章里，我们将一起探索 Java 中最最重要的概念之一——&lt;strong&gt;方法（Method）&lt;/strong&gt;。如果你把 Java 程序比作一家大型工厂，那方法就是工厂里的一条条生产线，每条生产线负责完成特定的任务。没有方法，你的代码就会变成一坨意大利面条——混乱、难以维护、让人崩溃。&lt;/p&gt;</description></item><item><title>第11章 数组——数据的容器</title><link>https://before80.github.io/prgms/Java/basic/Chapter-11-arrays/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-11-arrays/</guid><description>&lt;h1 id="第十一章-数组数据的容器"&gt;第十一章 数组——数据的容器&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎭 &lt;strong&gt;导演说&lt;/strong&gt;：想象你是一名酒店前台管理员。如果每位客人都要你记住他的名字、房间号、喜好、入住日期&amp;hellip;恭喜你，你的大脑会原地爆炸。数组就是那个让你优雅地管理&amp;quot;一群相关数据&amp;quot;的超级武器！&lt;/p&gt;</description></item><item><title>第12章 面向对象思想——为什么要面向对象？</title><link>https://before80.github.io/prgms/Java/basic/Chapter-12-oop-thought/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-12-oop-thought/</guid><description>&lt;h1 id="第十二章-面向对象思想为什么要面向对象"&gt;第十二章 面向对象思想——为什么要面向对象？&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;你有没有想过，为什么 Java 叫&amp;quot;面向对象&amp;quot;？难道 C 语言是&amp;quot;面向过程&amp;quot;就低人一等？
别急，这一章我们来好好聊聊这场编程界的&amp;quot;门派之争&amp;quot;，
顺便让你彻底搞懂：到底什么是对象？什么是类？为什么面向对象这么香？&lt;/p&gt;</description></item><item><title>第13章 类与对象——Java 世界的基本单位</title><link>https://before80.github.io/prgms/Java/basic/Chapter-13-classes-and-objects/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-13-classes-and-objects/</guid><description>&lt;h1 id="第十三章-类与对象java-世界的基本单位"&gt;第十三章 类与对象——Java 世界的基本单位&lt;/h1&gt;
&lt;p&gt;想象一下，如果你要建造一座房子，你需要什么？&lt;/p&gt;
&lt;p&gt;蓝图！没有蓝图，工人们怎么知道墙要多高、门要多大、窗户朝哪开？&lt;/p&gt;
&lt;p&gt;在 Java 的世界里，&lt;strong&gt;类（Class）&lt;/strong&gt; 就是那张蓝图，而&lt;strong&gt;对象（Object）&lt;/strong&gt; 就是根据这张蓝图建出来的真实房子。&lt;/p&gt;</description></item><item><title>第14章 继承——血脉的传承</title><link>https://before80.github.io/prgms/Java/basic/Chapter-14-inheritance/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-14-inheritance/</guid><description>&lt;h1 id="第十四章-继承血脉的传承"&gt;第十四章 继承——血脉的传承&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;龙生龙，凤生凤，老鼠的儿子会打洞。&amp;quot;——这句老话完美诠释了继承的精髓。在面向对象编程的世界里，继承让我们可以站在巨人的肩膀上，复用现有代码的同时，还能青出于蓝。&lt;/p&gt;</description></item><item><title>第15章 多态——同一个方法，不同的表现</title><link>https://before80.github.io/prgms/Java/basic/Chapter-15-polymorphism/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-15-polymorphism/</guid><description>&lt;h1 id="第十五章-多态同一个方法不同的表现"&gt;第十五章 多态——同一个方法，不同的表现&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎭 想象一下，你的手机里有一个&amp;quot;拍照&amp;quot;按钮。但这个按钮在不同手机上的表现完全不同——iPhone 拍出 Live Photo，华为可能给你一个月亮模式的夜景，三星可能直接给你一张 GIF。这，就是多态！&lt;/p&gt;</description></item><item><title>第16章 抽象类与接口</title><link>https://before80.github.io/prgms/Java/basic/Chapter-16-abstract-classes-and-interfaces/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-16-abstract-classes-and-interfaces/</guid><description>&lt;h1 id="第十六章-抽象类与接口"&gt;第十六章 抽象类与接口&lt;/h1&gt;
&lt;div class="td-alert td-alert--md alert alert-note" role="alert"&gt;&lt;div class="td-alert-heading alert-heading" role="heading"&gt;说明&lt;/div&gt;
 &lt;div class="td-alert-body"&gt;
 &lt;p&gt;本章我们将探索 Java 中两个&amp;quot;高深莫测&amp;quot;的概念——抽象类和接口。别担心，我会用最接地气的方式把它们讲清楚。如果你之前被这两个概念折磨过，那这一章就是你的救星！&lt;/p&gt;</description></item><item><title>第17章 内部类、枚举、record、密封类</title><link>https://before80.github.io/prgms/Java/basic/Chapter-17-inner-classes-enum-record-sealed/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-17-inner-classes-enum-record-sealed/</guid><description>&lt;h1 id="第十七章-内部类枚举record密封类"&gt;第十七章 内部类、枚举、record、密封类&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎭 本章登場人物：类（Class）、对象（Object）、枚举（Enum）、record（记录）、密封类（Sealed Class）——准备好了吗？我们的派对开始了！&lt;/p&gt;</description></item><item><title>第18章 static 和 final 关键字</title><link>https://before80.github.io/prgms/Java/basic/Chapter-18-static-final/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-18-static-final/</guid><description>&lt;h1 id="第十八章-static-和-final-关键字"&gt;第十八章 static 和 final 关键字&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;在 Java 的世界里，有些东西是挂在天上不下来的（static），有些东西是一旦决定就再也不改的（final）。这俩关键字，堪称 Java 世界里的&amp;rsquo;永恒星&amp;rsquo;和&amp;rsquo;定海神针&amp;rsquo;。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第19章 String 字符串——最常用的类型</title><link>https://before80.github.io/prgms/Java/basic/Chapter-19-string/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-19-string/</guid><description>&lt;h1 id="第十九章-string-字符串最常用的类型"&gt;第十九章 String 字符串——最常用的类型&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;在 Java 的世界里，一切皆对象，但 String 是个例外中的例外。它既是对象，又像个原始类型那样常用，甚至让你忘了它其实是个正经的类。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第20章 集合框架（上）——List 和 Set</title><link>https://before80.github.io/prgms/Java/basic/Chapter-20-collections-part1/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-20-collections-part1/</guid><description>&lt;h1 id="第二十章-集合框架上list-和-set"&gt;第二十章 集合框架（上）——List 和 Set&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序员的三大难题：缓存穿透、分布式锁、还有——ArrayList 和 LinkedList 到底该用哪个。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第21章 集合框架（下）——Map</title><link>https://before80.github.io/prgms/Java/basic/Chapter-21-collections-part2/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-21-collections-part2/</guid><description>&lt;h1 id="第二十一章-集合框架下map"&gt;第二十一章 集合框架（下）——Map&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;上一章我们聊了聊 List 和 Set 两大家族，它们各有特色：List 是个排队买奶茶的队列（有序、可重复），Set 是个不允许撞衫的聚会（无序、去重）。但你有没有发现，这两位都只关心&amp;quot;单个元素&amp;quot;——不管来什么元素，我就一个一个存着。&lt;/p&gt;</description></item><item><title>第22章 Queue 与 Deque</title><link>https://before80.github.io/prgms/Java/basic/Chapter-22-queue-deque/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-22-queue-deque/</guid><description>&lt;h1 id="第二十二章-queue-与-deque"&gt;第二十二章 Queue 与 Deque&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;人生就像一个队列，先排队的人先办事。后来的人？别急，等前面的人办完再说。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Queue（队列）和 Deque（双端队列）是 Java 中极其重要的数据结构，它们遵循**先进先出（First In First Out, FIFO）**的原则。想象一下排队买奶茶——先来的人先拿到奶茶，后来的人乖乖排在后面。这个&amp;quot;奶茶店排队&amp;quot;的场景，就是队列最形象的比喻。&lt;/p&gt;</description></item><item><title>第23章 泛型——类型的保险箱</title><link>https://before80.github.io/prgms/Java/basic/Chapter-23-generics/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-23-generics/</guid><description>&lt;h1 id="第二十三章-泛型类型的保险箱"&gt;第二十三章 泛型——类型的保险箱&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;给你一个盒子，你不知道里面装的是什么——这叫&lt;code&gt;Object&lt;/code&gt;。
给你一个贴了标签的盒子，你一眼就知道里面装的是什么——这叫泛型。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第24章 Lambda 表达式与函数式编程</title><link>https://before80.github.io/prgms/Java/basic/Chapter-24-lambda/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-24-lambda/</guid><description>&lt;h1 id="第二十四章-lambda-表达式与函数式编程"&gt;第二十四章 Lambda 表达式与函数式编程&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;🎭 准备好了吗？Java 8 引入的那个&amp;quot;箭头勇士&amp;quot;——Lambda 表达式，终于要登场了！&lt;/p&gt;
&lt;p&gt;它让 Java 代码从&amp;quot;严肃的企业级公文&amp;quot;秒变&amp;quot;流畅的函数式诗歌&amp;quot;。别眨眼，这一章可能会颠覆你对 Java 的认知。&lt;/p&gt;</description></item><item><title>第25章 Stream API——处理数据的新方式</title><link>https://before80.github.io/prgms/Java/basic/Chapter-25-stream-api/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-25-stream-api/</guid><description>&lt;h1 id="第二十五章-stream-api处理数据的新方式"&gt;第二十五章 Stream API——处理数据的新方式&lt;/h1&gt;
&lt;p&gt;想象一下，你有一仓库的快递（数据），传统做法是你得亲自一个个拆开、检查、分类、搬运。累不累？累死了！&lt;/p&gt;
&lt;p&gt;Stream API 就是你的全自动智能分拣流水线——你只需要告诉它&amp;quot;我要什么&amp;quot;，它帮你搞定一切。&lt;/p&gt;</description></item><item><title>第26章 Optional 类——null 的优雅处理</title><link>https://before80.github.io/prgms/Java/basic/Chapter-26-optional/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-26-optional/</guid><description>&lt;h1 id="第二十六章-optional-类null-的优雅处理"&gt;第二十六章 Optional 类——null 的优雅处理&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;我称之为我的十亿美元错误。&amp;rdquo; —— 托尼·霍尔（Tony Hoare），谈及 null 的发明&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;想象一下：你信心满满地写了一段代码，编译通过，逻辑清晰，测试全绿。然后上线——砰！&lt;code&gt;NullPointerException&lt;/code&gt;，你的程序在凌晨三点华丽丽地崩溃了。这就是传说中的&amp;quot;十亿美元错误&amp;quot;——null 指针问题。而 Java 8 带来的 &lt;code&gt;Optional&lt;/code&gt; 类，就是来处理这个历史遗留问题的。准备好了吗？让我们一起探索 Optional 的世界！ 🎉&lt;/p&gt;</description></item><item><title>第27章 异常处理——错误的优雅管理</title><link>https://before80.github.io/prgms/Java/basic/Chapter-27-exception-handling/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-27-exception-handling/</guid><description>&lt;h1 id="第二十七章-异常处理错误的优雅管理"&gt;第二十七章 异常处理——错误的优雅管理&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;代码写得好不好，就看异常处理巧不巧。没有异常处理的程序，就像没系安全带就飙车——迟早要出事儿。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第28章 I/O 与 NIO——与外部世界对话</title><link>https://before80.github.io/prgms/Java/basic/Chapter-28-io-and-nio/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-28-io-and-nio/</guid><description>&lt;h1 id="第二十八章-io-与-nio与外部世界对话"&gt;第二十八章 I/O 与 NIO——与外部世界对话&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;程序如人，最怕&amp;quot;社恐&amp;quot;。一个不会和外界交流的程序，就像一个把自己锁在房间里的人——再有才华，也只能自娱自乐。Java 的 I/O（输入/输出）系统，就是程序与外部世界对话的窗口。而 NIO，则是 Java 1.4 带来的&amp;quot;社交牛逼症&amp;quot;升级版，让程序可以优雅地&amp;quot;聊天&amp;quot;，而不是傻傻地排队等待。&lt;/p&gt;</description></item><item><title>第29章 日期与时间——新旧 API</title><link>https://before80.github.io/prgms/Java/basic/Chapter-29-date-and-time/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-29-date-and-time/</guid><description>&lt;h1 id="第二十九章-日期与时间新旧-api"&gt;第二十九章 日期与时间——新旧 API&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;和时间赛跑？先看看 Java 给你留了什么坑。&amp;rdquo; —— 某位被 &lt;code&gt;Date&lt;/code&gt; 折腾过的程序员&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;时间，是计算机科学中最棘手的问题之一。连鼎鼎大名的《人月神话》作者 Brooks 都说过：&lt;strong&gt;&amp;ldquo;日期处理有两个棘手的问题：缓存失效和时间 zones。&amp;rdquo;&lt;/strong&gt;（好吧后半句是我加的，但意思到了。）Java 在日期时间处理上走过一段相当曲折的路——从最早被广泛吐槽的 &lt;code&gt;java.util.Date&lt;/code&gt;，到后来缝合了 &lt;code&gt;Calendar&lt;/code&gt; 的左右为难，再到 Java 8 一雪前耻推出的 &lt;code&gt;java.time&lt;/code&gt; 包，这一路堪称 Java 的&amp;quot;浪子回头&amp;quot;经典案例。&lt;/p&gt;</description></item><item><title>第30章 并发编程——同时做多件事</title><link>https://before80.github.io/prgms/Java/basic/Chapter-30-concurrency/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-30-concurrency/</guid><description>&lt;h1 id="第三十章-并发编程同时做多件事"&gt;第三十章 并发编程——同时做多件事&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;并发编程，是 Java 世界里最让人又爱又恨的东西。爱它，因为它能让程序&amp;quot;一心多用&amp;quot;，效率飞起；恨它，因为它一旦出问题，那调试起来简直比破案还刺激——线程 A 等着线程 B，线程 B 等着线程 C，而线程 C 居然在等着一个已经被删掉的锁。本章，让我们一起走进这个&amp;quot;多线程宇宙&amp;quot;，看看如何优雅地让程序同时做多件事，而不是一起&amp;quot;死给你看&amp;quot;。&lt;/p&gt;</description></item><item><title>第31章 JVM 虚拟机——Java 的运行秘境</title><link>https://before80.github.io/prgms/Java/basic/Chapter-31-jvm/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-31-jvm/</guid><description>&lt;h1 id="第三十一章-jvm-虚拟机java-的运行秘境"&gt;第三十一章 JVM 虚拟机——Java 的运行秘境&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;你写的 Java 代码，是怎么跑起来的？编译器把它编译成 &lt;code&gt;.class&lt;/code&gt; 文件之后，谁来真正执行？答案就是 JVM——Java 虚拟机。它就像是 Java 程序的神秘后台，一个藏在屏幕背后的超级引擎，默默地为你处理一切。本章我们就来揭开它的神秘面纱，看看这个&amp;quot;虚拟&amp;quot;的机器到底长什么样，又是如何运转的。&lt;/p&gt;</description></item><item><title>第32章 反射——运行时认识自己</title><link>https://before80.github.io/prgms/Java/basic/Chapter-32-reflection/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-32-reflection/</guid><description>&lt;h1 id="第三十二章-反射运行时认识自己"&gt;第三十二章 反射——运行时认识自己&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&lt;strong&gt;引子&lt;/strong&gt;：你编译完代码，打了个 jar 包扔到服务器上，突然产品经理跑来说：&amp;ldquo;那个类里有个 private 方法，你能帮我改一下返回值吗？&amp;quot;——什么？代码都编译完了，难道要重新编译、重新打包、重新发布？Java 告诉你：不用那么麻烦，我有反射。&lt;/p&gt;</description></item><item><title>第33章 注解——代码的元数据</title><link>https://before80.github.io/prgms/Java/basic/Chapter-33-annotations/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-33-annotations/</guid><description>&lt;h1 id="第三十三章-注解代码的元数据"&gt;第三十三章 注解——代码的元数据&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;📌 &lt;strong&gt;先打个预防针&lt;/strong&gt;：注解（Annotation）是 Java 里最容易被人&amp;quot;眼熟&amp;quot;但又最容易被用歪的东西。很多人以为它只是 &lt;code&gt;@Override&lt;/code&gt; 前面那个 &lt;code&gt;@&lt;/code&gt;，其实它的本事大着呢——框架用它来生成代码、IDE 用它来做检查、编译器用它来提示警告……可以说，注解就是 Java 世界里的&amp;quot;便签贴&amp;quot;，贴在代码上，告诉别人&amp;quot;这段代码是干啥吃的&amp;quot;。&lt;/p&gt;</description></item><item><title>第34章 Java 8~17 新特性全景</title><link>https://before80.github.io/prgms/Java/basic/Chapter-34-java-8-to-17/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-34-java-8-to-17/</guid><description>&lt;h1 id="第三十四章-java-817-新特性全景"&gt;第三十四章 Java 8~17 新特性全景&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Talk is cheap. Show me the code.&amp;rdquo; —— Linus Torvalds&lt;/p&gt;
&lt;p&gt;这句话放到 Java 身上简直太合适了。从 Java 8 开始，Oracle 对 Java 的演进速度就像开了挂一样，每半年发布一个大版本，每版本都带着让人眼前一亮的新特性。本章我们就来一次 Java 新特性的&amp;quot;全景扫描&amp;quot;，从 Java 8 的革命性突破，一路看到 Java 17 的成熟稳重。&lt;/p&gt;</description></item><item><title>第35章 Java 21～26 新特性全景</title><link>https://before80.github.io/prgms/Java/basic/Chapter-35-java-21-to-26/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-35-java-21-to-26/</guid><description>&lt;h1 id="第三十五章-java-2126-新特性全景"&gt;第三十五章 Java 21～26 新特性全景&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Java 21 是继 Java 8 之后最重要的 LTS（长期支持版）版本，没有之一。&amp;rdquo; —— 当你第一次用虚拟线程跑满一万并发的时候，你就会明白这句话的分量。&lt;/p&gt;</description></item><item><title>第36章 Maven 与 Gradle——项目构建工具</title><link>https://before80.github.io/prgms/Java/basic/Chapter-36-build-tools/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-36-build-tools/</guid><description>&lt;h1 id="第三十六章-maven-与-gradle项目构建工具"&gt;第三十六章 Maven 与 Gradle——项目构建工具&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;写代码一时爽，依赖地狱火葬场。&amp;quot;——每个被 JAR 包折磨过的 Java 程序员&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;各位好，欢迎来到 Java 世界中两个最&amp;quot;卷&amp;quot;的工具——&lt;strong&gt;Maven&lt;/strong&gt; 和 &lt;strong&gt;Gradle&lt;/strong&gt; 的主场。&lt;/p&gt;</description></item><item><title>第37章 Spring Framework——企业级 Java 的基石</title><link>https://before80.github.io/prgms/Java/basic/Chapter-37-spring-framework/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-37-spring-framework/</guid><description>&lt;h1 id="第三十七章-spring-framework企业级-java-的基石"&gt;第三十七章 Spring Framework——企业级 Java 的基石&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;学 Java 的人，没有不知道 Spring 的。就像学开车的人，没有不知道方向盘的。&amp;rdquo; —— 某位不愿透露姓名的 Java 程序员&lt;/p&gt;</description></item><item><title>第38章 持久化框架——Java 与数据库对话</title><link>https://before80.github.io/prgms/Java/basic/Chapter-38-persistence-frameworks/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-38-persistence-frameworks/</guid><description>&lt;h1 id="第三十八章-持久化框架java-与数据库对话"&gt;第三十八章 持久化框架——Java 与数据库对话&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;💡 &lt;strong&gt;前置知识&lt;/strong&gt;：本章需要你懂一点 Java 基础（类、对象、接口），懂一点 SQL（SELECT、INSERT 之类的命令）。如果数据库对你来说只是个&amp;quot;存放数据的大仓库&amp;quot;，那本章正是帮你把这个仓库变成一条通畅的高速公路。&lt;/p&gt;</description></item><item><title>第39章 单元测试——代码质量的第一道防线</title><link>https://before80.github.io/prgms/Java/basic/Chapter-39-unit-testing/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-39-unit-testing/</guid><description>&lt;h1 id="第三十九章-单元测试代码质量的第一道防线"&gt;第三十九章 单元测试——代码质量的第一道防线&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;测试是活着代码的呼吸。没测试的代码，就像没系安全带的司机——技术再好也让人捏把汗。&amp;rdquo;&lt;/p&gt;</description></item><item><title>第40章 Git 版本控制——代码的时光机</title><link>https://before80.github.io/prgms/Java/basic/Chapter-40-git/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-40-git/</guid><description>&lt;h1 id="第四十章-git-版本控制代码的时光机"&gt;第四十章 Git 版本控制——代码的时光机&lt;/h1&gt;
&lt;p&gt;
 &lt;img src="https://git-scm.com/images/branching-illustration@2x.png"
 alt="Git 工作流程图"
 
 /&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;代码写崩了怎么办？——还好我有 Git 这个后悔药。&amp;rdquo;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;你有没有过这样的经历：凌晨三点，写了八百行代码，一运行，满屏红字。你深吸一口气，Ctrl+Z 撤销了&amp;hellip;一步。然后电脑卡了，自动关机了，代码没了。那一刻，感觉整个世界都崩塌了。&lt;/p&gt;</description></item><item><title>第41章 Java 初学者常见坑大全（按类别整理）</title><link>https://before80.github.io/prgms/Java/basic/Chapter-41-common-pitfalls/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-41-common-pitfalls/</guid><description>&lt;h1 id="第四十一章-java-初学者常见坑大全按类别整理"&gt;第四十一章 Java 初学者常见坑大全（按类别整理）&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Java 的坑，比你想的多；初学者的泪，比你想的咸。&amp;rdquo;&lt;/p&gt;
&lt;p&gt;本章汇集了 Java 初学者最容易踩的 100+ 个坑，按类别整理，配有完整可运行的代码示例。学完本章，你可以骄傲地说：&amp;ldquo;这些坑，我都踩过！&amp;rdquo;&lt;/p&gt;</description></item><item><title>第42章 Java 编码规范与最佳实践</title><link>https://before80.github.io/prgms/Java/basic/Chapter-42-coding-standards/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-42-coding-standards/</guid><description>&lt;h1 id="第四十二章-java-编码规范与最佳实践"&gt;第四十二章 Java 编码规范与最佳实践&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;任何傻瓜都能写出计算机能理解的代码，而优秀的程序员写出的是人类能理解的代码。&amp;rdquo; —— Martin Fowler&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;想象一下：你打开一个开源项目，满屏都是 &lt;code&gt;a1&lt;/code&gt;、&lt;code&gt;b2&lt;/code&gt;、&lt;code&gt;getT()&lt;/code&gt; 这样的变量名——恭喜你，你中大奖了，这个项目的维护者可能是个外星人派来的卧底。编码规范听起来像是最无聊的话题，但相信我，没有规范的代码库就像没有交通规则的高速公路——迟早要出车祸。&lt;/p&gt;</description></item><item><title>第43章 Java 能做什么——各领域应用场景详解</title><link>https://before80.github.io/prgms/Java/basic/Chapter-43-use-cases/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-43-use-cases/</guid><description>&lt;h1 id="第四十三章-java-能做什么各领域应用场景详解"&gt;第四十三章 Java 能做什么——各领域应用场景详解&lt;/h1&gt;
&lt;p&gt;
 &lt;img src="https://via.placeholder.com/800x400?text=Java&amp;#43;Application&amp;#43;Scenarios"
 alt="Java应用场景"
 
 /&gt;
&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;想象一下，Java就像IT界的&amp;quot;瑞士军刀&amp;quot;——不是最酷的，但不是万能的，而是&lt;strong&gt;什么都能干&lt;/strong&gt;的那种。本章我们就来扒一扒Java在各个领域是如何大显神通的。&lt;/p&gt;</description></item><item><title>第44章 学习路径与成长建议</title><link>https://before80.github.io/prgms/Java/basic/Chapter-44-learning-path/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-44-learning-path/</guid><description>&lt;h1 id="第四十四章-学习路径与成长建议"&gt;第四十四章 学习路径与成长建议&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;Talk is cheap. Show me the code.&amp;rdquo; — Linus Torvalds&lt;/p&gt;
&lt;p&gt;这句话程序员们天天挂嘴边，但问题是：&lt;strong&gt;代码谁都能show，关键是你得有货可show。&lt;/strong&gt;&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;恭喜你，拿起了Java这把&amp;quot;铁饭碗&amp;quot;级别的武器。不过，拿到武器和用好武器之间，隔着十万八千里的坑。今天咱们就来聊聊，从零开始学Java，到真正站稳脚跟，这条路该怎么走。&lt;/p&gt;</description></item><item><title>第45章 SQL 与数据库基础</title><link>https://before80.github.io/prgms/Java/basic/Chapter-45-sql-basics/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-45-sql-basics/</guid><description>&lt;h1 id="第四十五章-sql-与数据库基础"&gt;第四十五章 SQL 与数据库基础&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;在程序员的世界里，有两大终极拷问：&amp;ldquo;我的代码为什么跑不起来&amp;quot;和&amp;quot;我的数据去哪儿了&amp;rdquo;。前者靠debug，后者靠——你猜对了——数据库。而SQL，就是你和数据库之间的&amp;quot;翻译官&amp;quot;。&lt;/p&gt;</description></item><item><title>第46章 常用工具速查</title><link>https://before80.github.io/prgms/Java/basic/Chapter-46-toolkit/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-46-toolkit/</guid><description>&lt;h1 id="第四十六章-常用工具速查"&gt;第四十六章 常用工具速查&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;磨刀不误砍柴工，工欲善其事，必先利其器。作为一个 Java 开发者，手里头没几把趁手的兵器，都不好意思跟人说自己是写代码的。这一章咱们就来盘点一下 Java 开发中那些离不开的工具，从 IDE 到 JVM 调优，从压测到 API 调试，保证让你看完直呼&amp;quot;原来还能这么干&amp;quot;！&lt;/p&gt;</description></item><item><title>第47章 IDEA 进阶使用技巧</title><link>https://before80.github.io/prgms/Java/basic/Chapter-47-ide-usage/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-47-ide-usage/</guid><description>&lt;h1 id="第四十七章-idea-进阶使用技巧"&gt;第四十七章 IDEA 进阶使用技巧&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;你是否曾经对着屏幕发呆，心想：&amp;ldquo;这 IDEA 明明是个编辑器，为什么我用起来像个记事本？&amp;rdquo;
别慌，这一章我们一起把 IDEA 从&amp;quot;高级记事本&amp;quot;升级成&amp;quot;编码外骨骼&amp;quot;，让你的手指变成键盘上的舞者，让 bug 无处遁形。&lt;/p&gt;</description></item><item><title>第48章 设计模式——程序员的套路</title><link>https://before80.github.io/prgms/Java/basic/Chapter-48-design-patterns/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-48-design-patterns/</guid><description>&lt;h1 id="第四十八章-设计模式程序员的套路"&gt;第四十八章 设计模式——程序员的套路&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;&amp;ldquo;程序员的代码写得像迷宫？设计模式就是那张地图。&amp;rdquo; ——某不愿透露姓名的架构师&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;&lt;strong&gt;设计模式&lt;/strong&gt;（Design Pattern）是什么？简单来说，就是前辈程序员们踩过无数坑之后，总结出来的「最佳套路」。你可以把它们理解成烹饪里的菜谱——同样的食材，大厨用菜谱做出来的叫米其林，你直接下锅炒出来的叫黑暗料理。&lt;/p&gt;</description></item><item><title>第49章 常见术语表</title><link>https://before80.github.io/prgms/Java/basic/Chapter-49-glossary/</link><pubDate>Mon, 30 Mar 2026 14:33:56 +0800</pubDate><guid>https://before80.github.io/prgms/Java/basic/Chapter-49-glossary/</guid><description>&lt;h1 id="第四十九章-常见术语表"&gt;第四十九章 常见术语表&lt;/h1&gt;
&lt;blockquote&gt;
&lt;p&gt;本章整理了 Java 学习与开发中最常用的专业术语，按类别分组，方便查阅。配套视频持续更新中，建议收藏！&lt;/p&gt;
&lt;/blockquote&gt;
&lt;hr&gt;
&lt;h2 id="491-java-基础术语"&gt;49.1 Java 基础术语&lt;/h2&gt;
&lt;h3 id="jdkjava-development-kit"&gt;JDK（Java Development Kit）&lt;/h3&gt;
&lt;p&gt;Java 开发工具包，写代码的人离不开它。包含了编译器、调试器、JRE，还有一堆命令行工具。没有它，Java 代码就是一堆天书。形象地说，JDK 就是厨师的整套厨具，没有锅碗瓢盆怎么做饭？&lt;/p&gt;</description></item></channel></rss>