自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(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

原创 Java String误区 String相等判断 String拼接原理 常量池详解 Java基础

基础不牢,地动山摇

2026-09-09 12:17:06 476

原创 MySQL索引失效原因 隐式转换 最左前缀 索引失效demo 数据库优化教程

我明明给字段建索引了,SQL执行却依然很慢,EXPLAIN 一看,根本没走索引!索引建了等于白建,自己完全找不到原因。其实 MySQL 索引失效不是玄学,全部都是固定规则。今天我用 最简单、最通俗、零晦涩理论 的方式,带大家一次性吃透 新手必避的8大索引失效场景,每个场景都附带可直接运行的 SQL Demo,看完彻底告别索引失效问题。

2026-09-07 16:06:56 566

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除