自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(22)
  • 收藏
  • 关注

原创 面试官:Java线程池还是最优解吗?万字长文深度解析Java 21虚拟线程底层原理

Java 21虚拟线程的出现,标志着Java并发编程进入了一个新时代。它让开发者可以用同步的方式编写代码,同时享受异步的高性能。这是一个革命性的变化,每个Java开发者都应该了解和掌握。核心要点回顾虚拟线程的本质:用户态线程与内核态线程分离,实现轻量级并发性能优势:创建成本低、内存占用小、上下文切换开销极低编程模型:保持同步编程的简洁性,无需学习异步编程范式注意事项:避免在中阻塞、使用替代、慎用适用场景:IO密集型任务、高并发处理、批量数据处理未来展望。

2025-12-29 09:31:32 729

原创 生产事故复盘:你写的Redis分布式锁真的安全吗?万字图解Redisson锁底层原理

│ 分布式锁最佳实践清单 ││ ││ 【必须做】 ││ 1. 使用Redisson提供的分布式锁(不要自己实现) ││ 2. 始终在finally块中释放锁 ││ 3. 释放锁前检查是否是当前线程持有 ││ 4. 设置合理的等待时间和持有时间 ││ 5. 使用看门狗机制处理业务执行时间不确定的场景 ││ ││ 【不要做】 ││ 1. 不要使用简单的SETNX命令 ││ 2. 不要在业务代码中直接使用Thread.sleep测试 │。

2025-12-29 09:30:49 1043

原创 【Spring Boot 自动配置原理深度解析】从源码到实践

Spring Boot自动配置原理深度解析:本文深入剖析了Spring Boot自动配置的核心机制,从传统Spring配置痛点出发,详细解析了@SpringBootApplication、@EnableAutoConfiguration等关键注解的工作原理。通过分析AutoConfigurationImportSelector源码,揭示了自动配置的加载流程、条件过滤逻辑和配置实例化过程,展现了Spring Boot如何实现"约定优于配置"的便捷开发体验。

2025-12-28 14:39:25 959

原创 【Java集合】ArrayList从入门到精通:原理、源码、扩容机制一文讲透

简单:基于数组,操作直观高效:随机访问O(1),尾部插入均摊O(1)灵活:自动扩容,动态调整安全:Fail-Fast机制,及时发现并发问题理解ArrayList的底层原理,不仅能帮助我们写出更高性能的代码,还能为学习其他集合类打下坚实的基础。关注我,获取更多Java核心技术文章。参考阅读JDK 8源码:java.util.ArrayList《Effective Java》第三版 - 第50条:优先考虑泛型Java官方文档:ArrayList API文档。

2025-12-28 14:38:55 587

原创 Java后端面试题集合-Spring与SpringBoot

本文汇总了Spring与SpringBoot的核心面试知识点,涵盖IOC原理、AOP实现、Bean生命周期、循环依赖、自动装配等核心内容。重点解析了Spring容器如何通过控制反转管理对象创建与依赖注入,详细介绍了Bean从定义到初始化的完整流程,包括BeanDefinition、单例池、依赖注入方式等关键概念。同时对比了@Autowired与@Resource的区别,分析了事务失效的常见场景,并梳理了SpringMVC请求流程及过滤器与拦截器的差异。对于SpringBoot部分,重点讲解了自动装配原理、配

2025-12-26 21:12:04 546

原创 Java面试高频考点-IO与NIO-整合篇

本文摘要: 本文系统介绍了Java IO/NIO相关核心概念与技术要点,主要包括三部分内容: BIO/NIO/AIO对比:详细解析了三种IO模型的本质区别,BIO采用阻塞式线程模型,NIO基于Selector实现多路复用,AIO则是异步回调机制。重点分析了各自的适用场景和优缺点。 零拷贝技术:深入剖析了传统IO的多次拷贝问题,介绍了sendfile和mmap两种零拷贝实现方式,以及在Java中的具体应用(FileChannel.transferTo等)。 Netty线程模型:讲解了Netty的Boss/Wo

2025-12-24 19:40:09 732

原创 Java面试题合集-JVM篇

本文汇总了JVM相关面试题合集,涵盖运行时数据区、类加载机制、对象创建、垃圾回收等核心知识点。主要内容包括:JVM运行时数据区的组成及功能(堆、栈、方法区等);类加载流程与双亲委派模型;对象创建过程与内存分配;GC算法与垃圾收集器选择;内存问题排查工具使用等。每部分均提供简洁结论、详细解析和面试应答技巧,帮助系统掌握JVM核心原理和面试要点。

2025-12-24 19:39:27 755

原创 Java后端专题-并发与多线程(约1w字,最全!)

本文汇总了Java并发与多线程专题的核心知识点,包含线程状态与生命周期、锁机制、线程池等关键内容。主要内容包括: 线程6种状态(NEW/RUNNABLE/BLOCKED/WAITING/TIMED_WAITING/TERMINATED)及其转换条件 synchronized原理与锁升级过程(偏向锁→轻量级锁→重量级锁) ReentrantLock与synchronized的核心区别(可中断、超时、多条件等特性) volatile解决可见性与有序性问题但不保证原子性 线程池参数配置原则与拒绝策略选择 并发容器

2025-12-23 12:25:36 676

原创 Java面试专题-集合框架(全网最全,高频考点!)

本文汇总了Java集合框架相关的核心面试题,包括HashMap、ConcurrentHashMap、ArrayList等常用集合类的原理和使用要点。主要内容涵盖: HashMap底层结构(数组+链表/红黑树)、O(1)查询原理、扩容机制和常见问题 ConcurrentHashMap的线程安全实现方式及与HashMap的区别 ArrayList与LinkedList的结构差异和性能对比 集合的线程安全解决方案(外部加锁、同步包装、并发容器) HashSet/TreeSet的去重原理和排序机制 fail-fas

2025-12-23 12:24:35 435

原创 Java面试题合集-泛型与类型擦除

泛型(Generics)是 Java 里最像“魔术”的功能之一:写的时候类型很严格,运行起来却发现——类型信息好像消失了。这不是错觉,是设计:类型擦除(Type Erasure)。

2025-12-22 19:47:36 418

原创 Java面试题合集-注解工作原理与处理

否则运行时反射读不到。

2025-12-22 19:46:52 432

原创 Java面试题合集-05-final-finally-finalize区别

这三个单词长得像“三胞胎”,但性格完全不同:这题不难,但面试官喜欢从“概念”追问到“真实工程怎么写”,这篇帮你一次讲透。引用类型也一样,“引用不能变”,但“对象内部能不能变”取决于对象本身是否可变:这里 不能指向新对象,但 本身可变,所以内容能变。1.3 修饰类:禁止继承典型: 是 类,确保语义稳定(也带来安全收益)。2.1 资源释放:更推荐 try-with-resources传统写法:推荐写法(更安全、可读):面试加分点:输出是 。工程建议:不要在 finally 里 retu

2025-12-21 16:17:35 271

原创 Java面试题合集-11-注解工作原理与处理

否则运行时反射读不到。

2025-12-21 16:15:20 359

原创 Java面试题合集-反射原理与代价

面试官问反射,通常不是想听你背 API,而是想听你能不能讲清三件事:1)它为什么能做到“运行时操作代码结构”?2)它为什么慢/风险大?3)你在项目里会怎么用,怎么不用?

2025-12-20 16:30:00 786

原创 Java面试题合集-深拷贝与浅拷贝与Cloneable

这题的面试杀伤力在于:你以为“拷贝就是复制一份”,结果拷贝完发现——你改了新对象的地址,旧对象的地址也跟着变了。这篇用“对象示意图 + 代码”把深拷贝/浅拷贝讲明白,并顺便聊聊 为什么经常被吐槽。所以你修改 , 也会变。4)深拷贝:把引用成员也复制一份深拷贝的关键:拷贝链条要到底(所有可变引用成员都要复制)。 没有方法,它只是告诉 :我允许你克隆我。没实现就会抛 。很多人以为 clone 是深拷贝,实际不是;复杂对象层级下容易踩坑。工程上常见吐槽:面试表达(更稳):优点:拷贝行为显式、边界

2025-12-20 12:15:12 111

原创 Java面试题合集-04-String为什么不可变

摘要:Java中String不可变性指对象创建后内容不可修改,任何修改都会生成新对象。这种设计带来四大优势:1)字符串常量池安全复用,节省内存提升性能;2)天然线程安全;3)防止安全敏感数据被篡改;4)可缓存hashCode优化哈希容器性能。代价是频繁拼接会产生大量临时对象,建议使用StringBuilder优化。从Java 9开始底层改用byte[]存储但仍保持不可变语义,体现了"稳定优先"的设计哲学。

2025-12-19 20:30:00 290

原创 Java面试题合集-03-hashCode与equals约定

hashCode()与equals()的契约要求:当a.equals(b)为true时,必须保证a.hashCode()==b.hashCode()。在哈希集合(如HashMap/HashSet)中,hashCode()决定对象的分桶位置,equals()负责确认桶内对象是否相等。若只重写equals()而不重写hashCode(),会导致对象被放入错误的桶中,出现"存入后无法取出"的问题。此外,作为key的对象应保持不可变,避免修改参与哈希计算的字段导致定位错误。

2025-12-19 16:10:41 359

原创 Java面试常见题:==与equals的区别

本文深入解析了Java中==与equals()的区别及常见陷阱。==比较基本类型的值或引用类型的对象地址;equals()默认与==相同,但可被重写为值比较。重点剖析了String(常量池)、Integer(缓存机制)、BigDecimal(精度比较)等特殊场景的差异,并提醒注意null安全问题和equals方法的规范要求。文章通过代码示例直观展示不同场景下的比较结果,帮助开发者避免常见错误,最后总结面试要点:==判断"是否同一对象",equals()判断"是否逻辑相等&quo

2025-12-18 17:11:45 343

原创 深入理解Java垃圾回收机制:GC调优与内存管理

首先,垃圾回收的概念可能有点抽象。让我们用一个生活中的比喻来解释:想象你正在打扫一个房间。随着时间的推移,房间里的物品越来越多,开始堆积成一堆杂乱无章的垃圾。为了保持房间的整洁,你定期清理这些垃圾,让空间变得更清爽。垃圾回收(GC)就类似于你清理房间里的垃圾,只不过它是在程序运行时自动帮你清理不再使用的内存。在Java中,GC负责自动管理内存,它会定期检查不再被使用的对象并将其回收,以便为新的对象腾出空间。这样,你就不需要手动管理内存,减少了出现内存泄漏和程序崩溃的风险。

2025-12-18 16:07:27 877

原创 DeepSeek 本地部署超详细教程

DeepSeek 是一款备受关注的大语言模型,其强大的推理能力和多语言支持使其成为许多开发者和用户的首选工具。本文将详细介绍如何在本地电脑上部署 DeepSeek 模型,让你随时随地使用这一强大的 AI 工具。一、准备工作。

2025-02-12 15:57:06 1573

原创 win11下iis服务器搭建教程(0基础 超详细)

0基础网站搭建培训课二——win11下部署iis服务器。基于上一堂课程的拓展,可以在不实用云服务器的前提下迅速搭建一个本地云服务器

2024-05-06 14:19:06 7395 5

原创 0基础 0代码 搭建一个云服务器

0基础教各位在一个晚学会搭建一个属于自己的网站!让所有用户能够在浏览器搜索到为止,全程无费用,基础知识讲解透彻,一小时包教会,小白也能学会,准企业级部署,为以后进军大企奠定基础!

2024-04-17 13:24:40 469 2

空空如也

空空如也

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

TA关注的人

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