自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 并发编程高频八股——AQS与ReentrantLock类(源码解析)

大家好,我是钢板兽!今天继续更新并发编程高频八股,除了`synchronized`关键字,悲观锁还有一种实现方式,即基于Java同步器AQS的各种实现类,其中就有我们用得比较多的ReentrantLock类。今天我们就来探究AQS与ReentrantLock类。

2025-03-30 08:30:00 1807

原创 并发编程高频八股——线程与ThreadLocal

大家好,我是钢板兽!今天开始更新并发编程的高频八股,我打算把这块的内容分成三部分来整理:(1)线程与ThreadLocal;(2)线程池;(3)常用锁。这篇文章来写“线程与ThreadLocal”。本文涉及到的底层原理、实现比较多,但是如果你耐心看完的话,相信你对线程与ThreadLocal会有新收获。本文涉及到的八股问题有:线程与进程的区别,线程的生命周期,Thread类和Runnable接口的区别、ThreadLocal的底层实现与内存泄漏问题。

2025-03-23 08:30:00 1445

原创 MySQL高频八股——索引

大家好,我是钢板兽!今天来更新MySQL高频八股的最后一篇文章,包括很多内容:索引分类、最左匹配原则、范围查询使联合索引失效、索引下推、给联合查询加索引、索引失效情况。

2025-03-22 09:00:00 1214 1

原创 Mysql高频八股——事务与undo log、bin log、redo log的联系(超干干货)

今天咱们接着上一篇的内容,聊一聊MySQL中事务与redo log、bin log、undo log之间那些你可能不太懂、但面试又经常问到的问题。比如事务的ACID特性具体怎么实现啦,为什么每次提交事务要先刷新redo log而不是直接刷脏页啦,还有没提交事务的redo log是不是也可能提前落盘呢?放心吧,这些看似复杂的问题,我会一点点掰开揉碎了放到“事务与redo log、bin log、undo log的联系”这个大框架里给你讲清楚,看完这篇文章,你再去面试的时候绝对可以轻松应对面试官的各种拷问啦!

2025-03-12 16:59:12 1728 1

原创 一文搞懂Comparable、Comparator与集合排序之间的“恩恩怨怨”

在没有深入了解 Java 集合中元素的排序之前,我完全搞不清Comparable、Comparator与集合排序方法之间的区别与联系。于是,我写下这篇文章,深入探讨 Java 中 Comparable、Comparator 与集合排序方法之间的种种关联。

2025-03-03 18:00:00 1466

原创 DeepSeek 隐私泄露?

最近,一位社科专业的朋友问我:“如果把一些自己研究方向相关的涉密英文材料上传到 DeepSeek,让它帮忙提取文本并翻译,其他用户会不会通过拷打AI或其他方式获取这些材料的内容?”换句话说,像 DeepSeek 这样的 AI 平台,会不会悄悄地使用用户上传的数据来训练模型?

2025-03-03 12:00:00 15948

原创 手把手教你搭建Redis集群

之前在搭建Redis集群的时候,发现全网找不到一篇完整教程,即从安装Docker环境开始,到项目中使用Redis集群结束的过程。自己也在搭建过程中踩了许多坑,今天就把搭建过程记录下来,既便于自己之后回顾,也希望可以帮到其他人。

2025-01-02 12:00:00 3801 4

原创 实习月记|QLExpress入门

大家好,我是“月更号主”——钢板兽~,长话短说,今天来更新一篇关于QLExpress的文章,介绍一些关于QLExpress的入门知识,希望可以帮助没接触过规则引擎的同学快速掌握规则引擎及QLExpress的概念及作用。

2025-09-07 14:19:08 1429

原创 Landing 周记|从 Repository 层入手,快速理解 DDD 设计

明明已经有 Mapper(DAO)来操作数据库了,为什么还需要 `repository`?它到底起什么作用?带着这些问题,我试着去寻找答案。最后发现,`repository`背后其实是一个更宏大的设计方法论:**DDD,领域驱动设计**。

2025-09-07 14:15:19 936

原创 优质技术博客分享(第1期)

大家好,我是钢板兽!今天分享一些自己近期阅读过的优质技术博客,涉及到Java性能调优、数据库架构优化、中间件原理、大模型等方向。

2025-09-04 18:00:00 370

原创 MyBatis 中 #{} 并非万能:动态 SQL 实战

在MyBatis 中,`#{}` 和 `${}` 都用于参数替换,它们的底层机制和使用场景都不同。你一定知道`${}`会发生SQL注入的问题,而`#{}` 不会,所以`#{}` 更安全。但是所有参数替换的情况都可以用`#{}` 吗?如果你回答是的话,就大错特错了。这篇文章将以一个动态SQL生成的例子,来讲清楚`#{}` 和 `${}`各自的使用时机,相信你一定会有收获。

2025-09-04 09:00:00 998

原创 深入浅出Spring IoC与DI:设计思想、实现方式与反射技术详解

今天,将继续深入研究Spring的另外两个核心特性:控制反转(IoC)和依赖注入(DI),虽然 IoC 与 DI 可能看起来抽象,但它们在面试和实际开发中都是非常重要的概念。

2025-09-03 18:00:00 2575

原创 延迟双删、异步重试、Binlog 监听:高并发可靠的Redis数据一致性机制

在实际开发中,缓存与数据库的数据不一致问题时有发生,尤其是在高并发场景下,Redis作为缓存层,经常会遇到缓存中的数据与数据库不同步的情况。本文从常见的缓存更新策略——缓存旁路策略出发,分析数据不一致产生的根本原因,并整理了常用的解决办法以及终极解决方案,可以帮助你系统性地理解和应对Redis缓存一致性问题。

2025-09-03 09:00:00 865

原创 在ROS中获取并发布UBS式传感器的温湿度

今天更新一篇和ROS相关的文章,有个项目需求是在ROS中获取并发布UBS式传感器的温湿度,我使用的温湿度传感器简介如下:> DL11- MC-S1 温湿度传感器通过USB 接口采用标准MODBUS RTU 协议通信,采用高精度的SHT40测量单元。一开始尝试通过pymodbus通信,但是在安装好对应的依赖后依然不成功,于是使用字节级Modbus报文构造,通过 Python 的 `pyserial` 库以字节流形式与设备通信。

2025-09-02 20:08:46 313

原创 面试官常问:Redis 为什么快?这篇回答满分!

在百万 QPS 的微服务系统中,Redis 几乎是无可替代的高性能组件。无论是做缓存、限流、排行榜还是唯一用户统计,它总能以微秒级响应速度完成任务。但 Redis 为何如此之快?它到底快在哪里?如果你只知道回答“因为Redis是基于内存实现的”,那你真的要认真看看这篇文章了。本文从存储结构、线程模型、持久化机制到底层数据结构实现,系统地揭示 Redis 性能背后的秘密,相信你看完一定会有收获。

2025-09-02 20:03:12 934

原创 你真的懂 AOP 吗?动态代理与 AOP 全解析

大家好,我是钢板兽!“Spring AOP 究竟是基于 JDK 动态代理还是 CGLIB动态代理?”,“两种动态代理有什么区别?”,“两种动态代理的限制?”这些问题是Java后端面试中最常见却又最容易搞错的一类问题,你知道该如何回答吗?不知道也没关系,本文将带你快速理清动态代理的核心原理、JDK 与 CGLIB 的关键区别、Spring AOP 的多种实现方式以及常见失效场景与解决方案,真正做到知其然,亦知其所以然。

2025-04-14 18:58:40 1139

原创 Java常见的23种设计模式

大家好,我是钢板兽!本文将系统梳理 Java 的设计模式,涵盖创建型、结构型和行为型三大类,结合定义、原理、优点、应用场景、示例代码,帮助你初步了解常见的23种设计模式。

2025-04-08 23:09:48 2304

原创 Java反射机制深度解析:方法、实战与底层机制

大家好,我是钢板兽!反射作为Java的特性,它不仅是Spring三大特性Ioc、DI、AOP的基础,而且MyBatis、Jackson序列化、rpc远程调用接口都用到了反射机制。本文将带你系统性地掌握 Java 反射的使用,通过 JSON 反序列化的应用场景了解反射机制在实战中的使用,并通过JVM 底层实现深入剖析反射的底层机制。

2025-04-08 17:11:26 1253

原创 美团AI面试题,这篇文章整理全了!

多个事务持有资源并请求对方资源形成等待环。避免方法:统一加锁顺序、使用超时机制、细粒度锁等。

2025-03-31 18:02:02 1459

原创 并发编程高频八股——乐观锁

大家好,我是钢板兽!今天继续更新并发编程高频八股,前两篇文章更新了悲观锁中的`Synchronized`和`ReentrantLock`,相比于悲观锁,乐观锁认为并发冲突是小概率事件。在访问共享资源时不会加锁,而是通过一定机制(如版本号、CAS)来检测是否存在其他线程的干扰。接下来,将分为三章,从CAS机制与自旋、Atomic原子类、版本号机制三部分来学习乐观锁。

2025-03-31 11:45:30 942

原创 《双影奇境》角色穿越风格宇宙:我用 GPT-4o 玩疯了!

最近 OpenAI 又双叒叕放大招了,新的 GPT-4o 模型加入了更强的图像生成功能,整个网上已经开始玩疯了。各种风格的图层出不穷——吉卜力、恶搞之家、美漫,还有表情包、元素替换合成、平面设计图、3D 建模、服装设计,甚至建筑草图……感觉已经没有它画不了的内容了。

2025-03-30 20:25:15 667

原创 全面解析 Spring AOP 切入点表达式

大家好,我是钢板兽!Spring AOP(面向切面编程)是我们日常开发中实现日志记录、权限控制、事务管理等功能的神器。而切入点表达式(Pointcut Expression)则是这个神器的“瞄准镜”——**你想拦哪里,就靠它来精确定位!**本篇文章将带你全面了解 AOP 切入点表达式的写法、含义、常见用法、以及典型场景实战。

2025-03-30 18:37:34 1418

原创 力扣hot100二刷——多维动态规划、技巧(完结)

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-29 20:10:30 380

原创 并发编程高频八股——synchronized关键字

接下来,将分为三篇文章,从`synchronized` 关键字、`ReentranLock`、乐观锁三个部分来掌握Java中的锁。这篇文章是关于`synchronized`关键字的介绍。

2025-03-29 10:25:02 1186

原创 力扣hot100二刷——动态规划

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-26 21:03:40 856

原创 并发编程高频八股——线程池

大家好,我是钢板兽!今天继续更新并发编程的第二篇高频八股——线程池,包括线程池的作用、创建线程池的方式、线程池的参数以及核心参数的设置。本文的八股在对线程池的理解上比较浅显,创建线程池的方式和核心参数的设置,建议大家可以去实现一个动态线程池的demo或者复现开源项目,这样会加深对线程池的理解。

2025-03-26 20:59:37 961

原创 力扣100二刷——二分查找、栈、堆

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-23 18:16:41 951

原创 力扣100二刷——图论、回溯

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-19 23:53:11 803

原创 MySQL高频八股:并发事务与事务隔离级别

今天继续来写MySQL的高频八股,在MySQL中,如果多个并发事务对同一条数据进行操作,可能会带来几个问题——脏读、不可重复读、幻读,为了解决这些问题,MySQL的事务隔离级别就派上用场了。这篇文章重点介绍事务隔离级别以及它的实现原理。

2025-03-19 08:00:00 820 1

原创 力扣hot100二刷——二叉树

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-17 23:44:20 1034

原创 MySQL高频八股——事务过程中Undo log、Redo log、Binlog的写入顺序(涉及两阶段提交)

大家好,我是钢板兽!在上一篇文章中,我分别介绍了 **Undo Log**、**Redo Log** 和 **Binlog** 在事务执行过程中的作用与写入机制。然而,实际应用中,这三种日志的写入是有先后顺序的。因此,本篇文章将深入探讨它们的写入顺序,以便更好地理解三者与事务的联系。

2025-03-17 19:31:07 1757 1

原创 力扣hot100二刷——链表

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-12 21:54:47 1287 1

原创 力扣hot100——子串、普通数组、矩阵

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-11 17:37:23 918 1

原创 Mysql高频八股——SQL语句的执行过程

今天这篇文章本来想把**SQL语句的执行过程**和**事务与undo log、redo log的联系**放在一起写的。SQL语句的执行过程中会涉及到undo log、redo log,而undo log、redo log更深入的原理也是面试中经常会问到的,所以把它们放在一起再合适不过了,但是写着写着发现内容太多,于是拆成了两篇。

2025-03-11 13:36:01 813

原创 力扣hot100二刷——哈希、双指针、滑动窗口

第二次刷题不在idea写代码,而是直接在leetcode网站上写,“逼”自己掌握常用的函数。

2025-03-10 22:16:41 681

原创 MySQL高频八股—— MySQL的存储引擎及索引结构

这篇文章包含了Java后端面试中关于MySQL八股中的两个常问的问题:(1)为什么MySQL选用innoDB作为存储引擎?,这个问题在面试的时候可能换一种问法:“innoDB和MyISAM的区别”。(2)“Mysql的索引结构你了解吗?”,这个问题也可能换一种问法:"为什么MySQL索引结构用B+树?"。接下来让我们深入理解这两个问题。

2025-03-10 20:44:31 1288

原创 Java后端高频面经——计算机网络

​ 传统的 TLS 握手基本都是使用 RSA 算法来实现密钥交换的,在将 TLS 证书部署服务端时,证书文件其实就是服务端的公钥,会在 TLS 握手阶段传递给客户端,而服务端的私钥则一直留在服务端,一定要确保私钥不能被窃取。根据非对称加密算法,公钥加密的消息仅能通过私钥解密,这样服务端解密后,双方就得到了相同的密钥,再用它加密应用消息。TCP(Transmission Control Protocol, 传输控制协议)的三次握手过程是为了在通信双方之间建立可靠的连接,确保双方都具备发送和接收数据的能力。

2025-03-09 19:15:00 860

原创 Java后端高频面经——JVM、Linux、Git、Docker

​ ThreadLocal的实现中,每个Thread维护一个ThreadLocalMap映射表,使用ThreadLocal的弱引用作为key,如果一个ThreadLocal没有外部强引用来引用它,那么系统GC时,这个ThreadLocal势必会被回收,这样一来,ThreadLocalMap中就会出现key为null的Entry,就没有办法访问这些key为null的value。内存溢出:内存溢出是指Java虚拟机(IM)在申请内存时,无法找到足够的内存,最终引发这通常发生在堆内存不足以存放新创建的对象时。

2025-03-09 14:55:40 1065

原创 Java后端高频面经——Spring、SpringBoot、MyBatis

是一个基于 Spring 的项目,它封装了 Spring 和其他相关技术(如 Spring MVC、Spring Data、Spring Security 等),提供自动配置、快速项目启动器、内嵌服务器三大功能,使开发者能够快速启动和构建 Spring 应用。Mybatis 在处理 ${} 时,只是创建普通的 SQL语句,然后在执行 SQL语句时 MvBatis 将参数直接拼入到 SQL里,不能防止 SQL注入,因为参数直接拼接到 SQL语句中,如果参数未经过验证、过滤,可能会导致安全问题。

2025-03-08 21:57:11 2052 3

原创 Java后端高频面经——MQ

(4)新建消费者,消费rabbitmq堆积的消息,不做任何业务逻辑处理,直接快速消费消息,把消息存在一张表里,这样就没消息的堆积,服务器压力自然就下来了。解决:开启Lazy Queues(惰性队列)模式,接收到消息后直接存入磁盘而非内存,消费者要消费消息时才会从磁盘中读取并加载到内存(懒加载),支持数百万条消息的存储。MQ你的消费集群是如何进行部署的?(1)消息队列是一个存放消息的容器,生产者发送消息到队列中,消费者处理队列中的消息,是一种先进先出的数据结构。如何保证MQ的可靠性(消息丢失的解决方案)?

2025-03-08 08:00:00 425

空空如也

空空如也

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

TA关注的人

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