- 博客(48)
- 收藏
- 关注
原创 Java finally 中 return 的坑|异常丢失、返回值覆盖详解
讲解 Java finally 块中 return 的隐患,演示异常丢失、返回值覆盖现象,说明 finally 执行时机,给出 try-with-resources 等推荐方案。
2026-11-09 10:26:29
3
原创 Java Arrays.asList 常见坑详解|UnsupportedOperationException、数组联动、基本类型 bug
解析 Arrays.asList 常见开发陷阱,演示 UnsupportedOperationException、底层数组引用共享、基本类型数组问题,区分 Arrays 内部 ArrayList 与 java.util.ArrayList,给出数组转 List 的各种场景正确代码。
2026-11-08 14:53:28
409
原创 Java 双亲委派通俗讲解|自定义 java.lang.String 失效原因、类加载器、打破场景
通俗讲解 Java 双亲委派模型,介绍 Bootstrap、Extension、Application 三层类加载器,解释自定义 java.lang.String 无法加载的原因,说明双亲委派的作用、打破方式和典型业务场景,附带面试问答。
2026-11-07 15:37:53
222
原创 Java Stream filter map flatMap 详解|map 和 flatMap 区别、惰性求值、高频坑
Java Stream 核心算子 filter、map、flatMap 讲解,对比 map 与 flatMap 的本质差异,演示嵌套集合扁平化处理;讲解惰性求值机制、流复用异常、peek 使用误区、空指针防护,配套代码示例与面试问答。
2026-11-05 17:35:21
514
原创 Java ThreadLocal 内存泄漏原理、弱引用设计、规范写法与避坑总结
Java ThreadLocal 内存泄漏深度解析,讲解 ThreadLocalMap Entry 结构、弱引用设计初衷、value 残留泄漏原理,对比线程销毁和线程池复用场景,整理开发规范、踩坑案例、高频面试题。
2026-11-03 11:11:38
726
原创 Java String、StringBuilder、StringBuffer 区别详解(含示例、线程安全、性能对比)
Java String、StringBuilder、StringBuffer 深度解析,讲解 String 不可变原理、StringBuilder 扩容机制、StringBuffer 线程安全实现。文中包含代码示例、性能对比、扩容 GC 压力分析、循环拼接踩坑点,配套高频面试真题,帮你掌握字符串正确选型方式。
2026-11-02 14:08:16
362
原创 Java Lambda effectively final 详解|为什么 Lambda 不能修改外部局部变量
详解 Java Lambda effectively final(有效最终)机制,解释 Lambda 为什么不能修改外部局部变量。文中附带错误与正确代码案例,剖析修改引用和修改对象属性的区别,给出 Lambda 计数解决方案,汇总高频面试问题,帮你避开 Lambda 开发常见坑。
2026-10-31 10:41:17
23
原创 Java 匿名内部类和 Lambda 内存泄漏区别是什么?面试高频题
很多人踩坑:线程池、定时任务里使用内部类、Lambda 引发内存泄漏。文章拆解隐式引用捕获规则,对比匿名内部类与 Lambda 捕获差异,给出业务代码修复方案。
2026-10-29 11:28:18
372
原创 重载 Overload 与重写 Override,别再混淆!用奶茶例子一看就懂
名字长得很像,代码写法容易混淆,面试几乎必问!重载、重写,到底有什么区别?什么时候用重载,什么时候用重写?本文结合代码 + 判断规则 + 踩坑点,看完一次分清,面试不丢分。
2026-10-26 10:37:57
365
原创 接口和抽象类别死背表格!搞懂 is-a 和 has-a,面试不踩坑
面试必考题!很多同学背了一大段对比表格,JDK8 接口支持 default 方法之后直接混乱。抽象类、接口到底怎么区分、什么时候该用哪个?用厨房例子讲透底层设计思想,看完不用死记硬背。
2026-10-25 11:34:36
424
原创 try-catch-finally 执行顺序详解|return 遇上 finally,面试经典踩坑题
try、catch、finally 谁先谁后?try 里面写 return,finally 还会执行吗?return 的返回值会不会被 finally 修改?这是面试高频错题,也是线上容易踩的隐形 bug。用厨房例子 + 多组代码,一次性把执行顺序讲明白。
2026-10-24 09:34:17
370
原创 Java 面试常问 this、super:构造方法调用顺序避坑
this 和 super 是 Java 继承的核心,很多人搞混调用时机、构造器相互调用规则,今天一次性理清,避开面试扣分点。
2026-10-23 14:21:14
413
原创 Java 到底是值传递还是引用传递?90% 初学者都会搞错
很多人学 Java 都会卡在这个问题:到底是值传递,还是引用传递?明明改了方法里面对象的属性,外面跟着变,就误以为是引用传递。今天用简单厨房例子,配合代码一步步拆解,把这个经典面试坑彻底讲透,看完面试再也不翻车。
2026-10-21 11:08:58
333
原创 JVM 内存区域详解|对象内存布局、new 对象流程、MarkWord 底层原理
写 Java 每天都在写 new 创建对象,但是你知道 new 一行代码,JVM 在内存中做了哪几步?堆里面的对象长什么样子?对象头里面藏着 hashcode、GC 年龄、synchronized 锁状态。本文延续厨房仓库类比,细致拆解 JVM 运行时内存五大分区、对象创建完整流程、对象内存三段式结构,搭配 JOL 工具代码演示,开发踩坑 + 面试真题,和前面多线程锁升级内容联动。
2026-10-20 14:04:26
769
原创 JVM 基础与 GC 垃圾回收详解|可达性分析、分代模型、垃圾收集器、STW
写 Java 代码天天创建对象,对象什么时候销毁?OOM 内存溢出到底怎么产生?很多同学背了 GC 知识点,但是不知道 GC 到底在干什么。本文沿用厨房仓库类比,细致拆解 JVM 内存分区、GC Roots、可达性分析、分代回收、垃圾收集器,搭配开发踩坑案例和面试真题,搞懂 GC,面试、线上排查 OOM 都能用。
2026-10-19 11:24:18
759
原创 Java 线程池详解|七大核心参数、执行流程、拒绝策略、线上踩坑
生产环境禁止手动 new Thread!线程池是并发开发必备。很多人背得出七大参数,但不知道每个参数真实含义,上线就踩坑。本文用厨房厨师的例子,讲透线程池底层原理、7 大参数、4 种拒绝策略、线程池种类,附带代码演示和线上真实踩坑案例,面试、写业务代码都能用。
2026-10-18 12:39:24
635
原创 Java 多线程基础与锁机制详解|进程线程、锁升级、synchronized 与 Lock 对比
并发是 Java 面试必考重难点。很多同学分不清进程线程、synchronized、volatile、锁的种类。本篇用生活化类比讲透多线程基础,再拆解各类锁原理、适用场景、坑点,搭配代码案例,看完搞定并发基础面试。
2026-10-17 15:40:29
174
原创 Java 内部类详解|成员内部类、静态嵌套类、匿名内部类,和 Lambda 对比
很多人写代码见过内部类,但是分不清成员内部类、静态内部类、匿名内部类、局部内部类。尤其是 Lambda 出来之后,匿名内部类什么时候该用,什么时候直接替换 Lambda,面试经常问。本篇讲透四类内部类,理清边界,避开内存泄漏大坑。
2026-10-16 11:22:27
404
原创 Java枚举Enum完整教程|替代静态常量,开发与面试要点
很多项目习惯用一堆 static final 静态常量定义状态码、类型。但普通常量缺少类型约束,容易传错值。Enum 枚举就是用来解决这类问题,本篇讲透枚举用法、底层原理、线上踩坑点和面试高频题。
2026-10-15 12:23:42
347
原创 Java 访问修饰符 public protected default private 详解|面试必背
Java 四个访问权限修饰符,很多人记混边界。用生活化类比 + 表格梳理,搞懂类、方法、变量的访问范围,面试不再踩坑。文末附带记忆技巧。
2026-10-14 10:18:40
359
原创 Redis 分布式锁 + GZIP 压缩缓存踩坑|高并发缓存真实线上复盘
为了保护数据库、节省 Redis 内存,同时用上分布式锁和缓存压缩。功能看着没问题,线上却出现重复计算、内存浪费、随机报错。用大白话讲清坑点、为什么会发生,以及分等级落地修复方案。
2026-10-13 12:27:07
467
原创 Java String、StringBuilder、StringBuffer 底层原理|字符串拼接性能与线程安全
先前我们讲了 String 的 6 大误区,这篇直击底层:String 为什么不可变、StringBuilder 为什么快、StringBuffer 为什么安全。用「纸质档案」类比一次讲透三者差异,字符串拼接埋下的性能隐患。
2026-10-12 12:50:29
817
原创 Java Lambda 表达式与函数式接口详解|面试高频考点
还在写冗长的匿名内部类?Lambda 是语法糖,必须依托函数式接口才能生效。用「任务委托单」类比,看懂适用场景,避开 AI 生成 Lambda 时的常见坑。
2026-10-11 10:40:56
773
原创 Java 接口和抽象类对比|抛弃老旧八股,正确选型
还在背 “抽象类用 extends,接口用 implements” 这种老旧八股?Java8 引入默认方法后,很多旧结论已经失效。用「岗位说明书」类比,分清二者适用场景,避开 AI 写代码的选型错误。
2026-10-10 17:49:20
253
原创 Java final 关键字详解|final 变量、final 方法、final 类与常见误区
final 不是简单的 “加锁”。用 “证件、重写权限、最终订单” 类比,讲清 final 变量、final 方法、final 类的区别,避开 AI 代码里的常见误用。
2026-10-08 11:54:40
608
原创 Java static 关键字详解|静态变量、静态方法、静态代码块
static 是 Java 里最常见也最容易被乱用的关键字。用班级学生类比讲清静态变量、静态方法、静态代码块,避开 AI 写代码时常见的误用坑。
2026-10-07 14:54:13
764
原创 Java 重写 equals 与 hashCode 详解|AI 实体类踩坑,HashSet 存入重复对象
AI 写实体类经常只写 equals,漏掉 hashCode。放进 HashMap、HashSet 就出现诡异 bug。用身份档案类比,一次性吃透契约规则,面试必考。
2026-10-05 11:11:04
712
原创 Java Integer 缓存池原理,为什么 100==100 true,200==200 false,AI 开发踩坑
复制 AI 写的 Integer 对比代码,很容易踩坑。区分包装对象互比、包装类和基础类型对比,自动拆箱藏着空指针风险,存钱罐类比看懂缓存池。
2026-09-30 11:21:13
387
原创 Java异常体系通俗易懂讲解 Error Exception 受检异常 运行时异常 try‑catch 最佳实践 AI时代编程思考
系统崩溃看 Error,无能为力直接挂; 客观风险受检异,编译强制让你抓; 代码 Bug 运行异,编译不报错上线炸; Try 防风险 Catch 兜底,Finally 必执行不落下
2026-09-28 11:46:26
369
原创 Java泛型 通俗易懂 类型擦除 通配符 面试 新手教程
有泛型:贴好标签的收纳盒给盒子贴上标签:本盒子只允许放字符串。编译器在编译阶段就帮你把关。你想丢数字进去,直接编译报错,代码都跑不起来。拿出来不用强转,直接就是字符串。
2026-09-26 14:47:12
491
原创 红黑树原理 红黑树五大性质 二叉搜索树 平衡树 HashMap红黑树 面试
基础不牢,地动山摇。节点只有两种颜色:红色、黑色。根节点一定是黑色。所有叶子节点(NIL空节点)都是黑色。红色节点的两个子节点,必须是黑色。不能出现两个红节点相连。从任意一个节点,到它所有后代叶子节点,经过的黑色节点数量必须相同(黑高一致)。✅ 记住核心推论:因为规则4、5,最长路径最多是最短路径2倍,树不会极端倾斜。
2026-09-24 11:22:52
367
原创 HashMap底层原理 哈希冲突 扩容机制 红黑树 ConcurrentHashMap 线程安全 面试题
ArrayList(数组)、LinkedList(链表)今天搞定 Java集合天花板:HashMap它是工作使用率最高、面试提问最多、底层结构最复杂的集合。单线程、普通业务 → HashMap(速度最快)多线程、并发场景 → ConcurrentHashMap绝对不要用 HashTable
2026-09-22 11:26:29
383
原创 LinkedList源码 双向链表 ArrayList和LinkedList区别 Java集合选型
ArrayList 像一排紧密连坐的座位,中间走人,后面所有人都要往前挪。LinkedList 像一串珍珠项链,拆掉中间一颗、插入一颗,只需要断开两边绳子,其他珍珠完全不用动。
2026-09-20 12:09:50
446
原创 ArrayList源码解析 底层数组 自动扩容机制 Java集合 新手入门 面试题
ArrayList底层本质就是一个可变长度的Object数组。普通数组一旦创建,长度固定,不能变长。ArrayList的魔法:底层维护一个数组,当数组装满时,自动新建一个更大的数组,把旧数组全部拷贝过去,实现“自动扩容”。简单比喻:普通数组 = 固定大小的纸箱,装满就不能再放东西。ArrayList = 纸箱装满后,自动换一个更大的新纸箱,把所有东西搬过去,继续存放。
2026-09-18 14:46:26
367
原创 Java反射入门教程 反射原理 注解底层 新手实战Demo Spring底层基础
注解在代码层面就是一个接口。这意味着它没有构造函数,不能直接 new,它的属性其实接口中定义的抽象方法。没有反射,注解就是一张没有任何作用的贴纸。Spring、SpringBoot所有注解功能,底层全部依靠反射实现。
2026-09-16 11:07:32
330
原创 Java注解新手教程 自定义注解 元注解原理 Spring注解入门 零基础学Java
基础不牢,地动山摇。Spring Boot 表面上“全是注解”,不是 Spring Boot 偏爱注解,而是注解最适合做“声明式配置”的载体;Spring Boot 的核心目标是让开发者少写配置。
2026-09-14 12:09:17
520
原创 Java异常新手教程 try-catch正确写法 运行时异常 编译异常 异常避坑实战
基础不牢,地动山摇。很多小伙伴遇到报错只会慌,要么直接空着不处理,要么无脑 try-catch 一把包住所有代码,看似不报错,实则隐藏一堆线上BUG。今天我们一起来搞懂:Java异常是什么、为什么会报错、什么时候抓异常、怎么优雅写 try-catch。
2026-09-13 11:17:59
465
原创 Java 集合 List Set HashMap 区别 新手教程 代码 demo 集合选型 开发避坑
基础不牢,地动山摇。 在开发的过程中我们几乎时时刻刻都在使用集合存储数据。很多新手分不清什么时候用 List、什么时候用 Set、HashMap,随便选一个,到后面就会遇到重复数据、查找缓慢等问题
2026-09-11 12:49:48
322
原创 MySQL索引失效原因 隐式转换 最左前缀 索引失效demo 数据库优化教程
我明明给字段建索引了,SQL执行却依然很慢,EXPLAIN 一看,根本没走索引!索引建了等于白建,自己完全找不到原因。其实 MySQL 索引失效不是玄学,全部都是固定规则。今天我用 最简单、最通俗、零晦涩理论 的方式,带大家一次性吃透 新手必避的8大索引失效场景,每个场景都附带可直接运行的 SQL Demo,看完彻底告别索引失效问题。
2026-09-07 16:06:56
566
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅