自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 手撕HashMap!(JDK7版本)

六个字段,十四个方法。

2025-06-03 17:14:00 414

原创 ArrayList和LinkedList(深入源码加扩展)

ArrayList 和 LinkedList 是 Java 中两种不同的列表实现,主要区别在于: 数据结构:ArrayList 基于动态数组,支持快速随机访问(O(1));LinkedList 基于双向链表,插入/删除高效(O(1)),但访问需遍历(O(n))。 适用场景:ArrayList 适合频繁查询,LinkedList 适合频繁增删。 扩容机制:ArrayList 默认初始容量为10,扩容时按1.5倍增长(如10→15),涉及数组复制。预分配容量可优化性能。

2025-06-03 11:25:30 986

原创 方法重写与方法重载详解

方法重载与重写是Java多态性的两种表现形式。方法重载在同一个类中定义多个同名方法,要求参数列表不同(参数数量、类型或顺序),属于编译时多态;方法重写是子类对父类方法进行覆盖,要求方法签名相同且返回类型协变、访问权限不能更低,属于运行时多态。主要区别在于:重载发生在同类中,重写需要继承关系;重载参数必须不同,重写参数必须相同;重载不限制返回值,重写要求返回值协变。Java 5+支持协变返回类型,允许子类重写方法的返回类型为父类返回类型的子类。

2025-06-02 18:51:36 768

原创 String和StringBuilder和StringBuffer

本文对比分析Java中String、StringBuilder和StringBuffer的特性与适用场景。String具有不可变性,线程安全但性能较差;StringBuilder线程不安全但性能最优,适合单线程拼接;StringBuffer线程安全但性能稍逊。源码层面,String在JDK9+改用byte[]存储以节省空间,字符串拼接通过编译器优化为StringBuilder操作。StringBuilder/StringBuffer基于可扩容char[]实现,后者通过synchronized保证线程安全。

2025-06-02 16:30:56 928

原创 Redisson中为什么用lua脚本不用事务

Redisson 在实现分布式锁、信号量等复杂对象时,倾向于使用 Lua 脚本而非 Redis 内建的事务(MULTI/EXEC),主要原因在于 Lua 脚本提供了更强的原子性保证、更复杂的服务器端逻辑处理能力以及更低的通信开销。Redis 事务虽然具备执行原子性,但在复杂逻辑处理和条件判断上存在局限,且需要多次网络往返,效率较低。而 Lua 脚本在服务器端执行,支持条件判断、循环等复杂逻辑,且执行过程完全原子,减少了客户端与服务器之间的通信次数,显著提升了性能和健壮性。因此,Lua 脚本更符合 Redis

2025-05-20 16:30:46 967

原创 GET请求和POST请求的区别

GET 和 POST 是 HTTP 协议中两种最常用的请求方法,它们在参数传递、数据可见性、长度限制、幂等性、缓存、安全性及使用场景等方面有显著差异。GET 请求用于获取资源,参数通过 URL 传递,适合查询操作,具有幂等性且可缓存,但不适合传输敏感数据。POST 请求用于提交数据,参数包含在请求体中,适合创建或更新资源,无长度限制,但不可缓存且非幂等。选择 GET 还是 POST 取决于具体需求:GET 适用于不改变服务器状态的数据检索,而 POST 适用于需要改变服务器状态的操作,如提交表单或上传文件。

2025-05-11 16:29:16 1103

原创 XML简单介绍

XML 是一种可扩展的结构化数据格式,用于表示数据、配置和信息交换。

2025-05-08 10:35:38 665

原创 父类没有无参构造器时,子类必须显式调用

规则说明默认调用子类构造器默认会调用super()编译限制如果父类没有无参构造器,子类必须显式调用super(...)目的保证父类初始化逻辑得到执行实践建议父类如果提供了带参构造器,建议也提供一个无参构造器以简化子类实现,或强制子类选择初始化方式。

2025-05-08 10:23:53 233

原创 Java的JUC详细全解

Java的JUC全解,助于理解清楚线程,锁相关,搞定八股!

2025-04-23 22:43:00 1481

原创 Java反射全解(八股)

Java 反射(Reflection)是一种 **运行时动态操作类与对象的机制**,允许我们在不明确类名、方法名、字段名的情况下,获取类的信息、创建对象、访问属性或调用方法。它是 Java 元编程的核心能力,在 `java.lang.reflect` 包中实现。- 获取类的元信息(类名、字段、方法、构造器)

2025-04-21 12:18:48 939

原创 理解Java一些基础(八股)

Java 是一门面向对象的编程语言,由 Sun 公司的詹姆斯·高斯林团队于 1995 年推出。吸收了 C++ 语言中大量的优点,但又抛弃了 C++ 中容易出错的地方,如垃圾回收、指针。同时,Java 又是一门平台无关的编程语言,即。只需要在对应的平台上安装 JDK,就可以实现跨平台,在 Windows、macOS、Linux 操作系统上运行。

2025-04-19 13:01:18 683

原创 什么是Java,特点有哪些

吸收了 C++ 语言中大量的优点,但又抛弃了 C++ 中容易出错的地方,如垃圾回收、指针。C++ 语言没有内置的多线程机制,因此必须调用操作系统的 API 来完成多线程程序设计,而 Java 却提供了封装好 多线程支持;只需要在对应的平台上安装 JDK,就可以实现跨平台,在 Windows、macOS、Linux 操作系统上运行。②、平台无关性,“一次编写,到处运行”,因此采用 Java 语言编写的程序具有很好的可移植性。①、面向对象,主要是封装,继承,多态,抽象。

2025-04-19 09:32:09 144

原创 JDK21新特性

虚拟线程是 Java 为解决传统线程数量瓶颈而引入的新型线程模型,属于 Project Loom 的核心成果。虚拟线程由 JVM 管理,而非操作系统线程,因此创建成本极低,非常适合 Web 服务、高并发 I/O 等场景。传统并发代码往往难以管理任务生命周期、错误处理和资源回收。结构化并发是一种将多个子任务纳入统一作用域中进行调度和控制的新模型,更易于调试和维护。Java 21 在switchinstanceof、record 模式等方面全面增强了模式匹配能力,让代码逻辑更清晰、分支判断更优雅。

2025-04-18 14:28:24 1149

原创 JDK17新特性

密封类是对继承关系的一种显式限制。使用sealed关键字定义的类,可以控制哪些类允许继承它,从而增强类层次结构的可控性和安全性。JDK 17 引入了 switch 表达式的模式匹配预览功能,允许对不同类型值进行模式匹配,简化了繁琐的类型判断与强转逻辑。该 API 为 Java 调用原生 C 库和直接访问非托管内存提供现代、安全的接口。是 JNI 的轻量、高性能替代方案。矢量 API 支持硬件级别的并行 SIMD 操作,是高性能计算的重要工具。通过 Java 代码生成可映射至底层 SIMD 指令的计算逻辑。

2025-04-18 13:29:13 1031

原创 JDK8新特性

Java 8 是 Java 发展史上最重要的版本之一,它为 Java 引入了函数式编程、Stream API、全新的时间日期库等一系列现代化特性,极大地提升了开发效率与代码简洁性。

2025-04-17 15:08:09 1070

原创 Mybtis和Mybatis-Plus区别

特性MyBatis配置复杂度需要手写大量 XML 或注解极简配置,自动生成 SQLCRUD 操作手写 Mapper 方法 + SQL内置通用 CRUD 方法分页功能需要手写分页逻辑或第三方插件内置分页插件,开箱即用条件构造器无,需要手写 where 条件内置 Lambda 条件构造器代码生成无提供代码生成器(Code Generator)主键策略需要手动配置内置多种主键生成策略乐观锁自己实现提供内置乐观锁插件审计字段(如创建时间、修改时间)自行维护。

2025-04-17 14:20:05 2117

原创 synchronized和ReentrantLock

两者都支持可重入性,即同一线程可以多次获取同一把锁而不会导致自己被阻塞。

2025-04-17 10:42:08 325

原创 Redis的常见数据类型

最基本的数据类型,存储单个键值对,值可以是字符串、整数或浮点数。:用于基数统计,估算集合中唯一元素的数量,具有固定的内存占用。:用于消息队列和日志存储,支持消息的持久化和时间排序。:附近的人、LBS(基于位置的服务)等。:消息队列、任务列表、文章评论列表等。:缓存简单对象、计数器、分布式锁等。:存储地理位置信息,支持位置查询。:双向链表、压缩列表或快速列表。:标签、好友列表、去重操作等。:排行榜、带权重的消息队列等。:基于字符串的二进制位操作。:用户签到、活跃用户统计等。:存储用户信息、配置项等。

2025-04-17 10:41:22 248

原创 synchronized和ReentrantLock

两者都支持可重入性,即同一线程可以多次获取同一把锁而不会导致自己被阻塞。

2025-04-17 10:07:17 422

原创 HashMap八股,学这个就够了

一文学透HashMap,不会再被拷打

2025-04-17 09:07:45 1215

原创 Servlet 线程安全与并发编程深度解析

每个请求来临时,由容器(如 Tomcat)分配线程处理,这些线程会调用 Controller 方法。从当前线程上下文(ThreadLocal)中注入的,线程之间是互不影响的。Spring 帮你注入的是线程安全的 request,但你写的代码如果有。平时在 Controller 里能随便用这些上下文,其实都是。:Spring Security 用户上下文绑定。实际是由 Spring MVC 使用。(默认是 Spring 单例))的 bean 实例是。Spring 中常用的。:将请求上下文与线程绑定。

2025-04-16 16:18:48 457

原创 Integer的缓存机制

类提供了一个缓存机制,用于优化对小范围整数对象的频繁创建和销毁操作。这个缓存机制是通过 IntegerCache。即使值在缓存范围内,使用。实现的,它会对范围在。

2025-04-16 15:39:02 930

原创 后端两种处理跨域请求的方式

浏览器出于安全性考虑,禁止不同源之间的请求访问资源。当前端尝试请求非同源接口时,就会触发跨域请求(CORS),如果后端未正确设置 CORS 响应头,就会被浏览器拦截。同源协议(http:https)域名端口号特性SpringCorsFilter配置类手写HttpFilter实现是否依赖 Spring✅ 是❌ 否灵活性✅ 高(可配置)❌ 低(写死)是否支持动态配置✅ 支持❌ 不支持是否支持复杂规则✅ 支持路径、方法、头等组合规则❌ 基础 header 设置。

2025-04-16 08:58:41 850

原创 Java中的record详解

一文详解record八股

2025-04-16 08:29:29 873

原创 2025第十六届蓝桥杯JavaB组个人题解(题目全)

蓝桥杯JavaB组个人题解

2025-04-12 15:44:16 2461 20

原创 JWT是如何加密的

JWT(JSON Web Token)是一种基于Token的轻量级认证和数据交换标准,广泛用于身份验证和API授权。它通过签名确保数据完整性,但默认不加密Payload内容。JWT通过签名机制确保Token完整性,核心依赖加密算法(如HS256/RS256)实现安全认证。

2025-04-08 20:39:26 582

原创 Java代理模式全解

代理模式全解,包括静态代理和两种动态代理

2025-04-07 19:57:25 1299

原创 从输入 URL 到网页呈现的全过程(零废话)

跟随花绘进入八股的大门吧。

2025-04-06 10:13:14 518

原创 MySQL 索引

MySQL 索引总结

2025-04-04 19:58:31 1149

原创 Volatile原理与应用

一文带你了解Volatile的原理与应用,应对面试

2025-04-04 10:46:24 916

原创 B 树和 B+ 树区别

在MySQL的InnoDB引擎中,主键索引的B+树结构允许快速定位单条记录,同时支持高效的全表扫描和范围查询。

2025-03-30 20:48:57 775

原创 == 与 equals() 的区别

带你全面理解=和equals的区别,从底层到代码实例

2025-03-26 22:59:24 1416

原创 Elasticsearch快速认识笔记

Elasticsearch作为常用的中间件,在搜索方面是极其高效的,本文在于帮助大家快速学习与复习es基础,怎么操作,为什么高效,与mysql的区别等等

2025-03-23 12:12:22 700

原创 从底层到实践的JavaSE笔记

全面的JavaSE笔记,梦开始的地方,能应对快速复习,八股,实践,初学等等

2025-03-20 11:34:51 800

原创 linux+docker安装常见中间件+shell学习笔记

适用于想全面快速学习Linux的coder,结合市面最主流的docker,中间件等等,同时还有底层的shell学习

2025-03-20 11:31:28 1214

原创 Redis缓存策略与优化方案

本文深入探讨了Redis缓存使用中的常见问题和优化策略,包括高频查询、缓存穿透、缓存雪崩、缓存击穿等问题的解决方案,并介绍了如何通过Redis的缓存更新策略和模式提升系统性能和稳定性,适用于Java人

2025-03-20 11:24:06 1112

原创 Java人最优秀的kafka笔记

结合springboot,帮助你快速学习与复习kafka,了解kafka的相关内容

2025-03-19 16:56:33 1237 2

空空如也

空空如也

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

TA关注的人

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