- 博客(86)
- 收藏
- 关注
原创 【Java】Java中synchronized关键字的底层原理
如果来了一个线程,是否为null,如果为null,则让当前线程持有,如果不为null,则该线程去EntryList中去等待(阻塞),如果持有锁的线程调用了wait方法,则会进入WaitSet。
2025-12-29 17:22:34
300
原创 【消息队列】面试被问到什么是死信?如何设计一个死信队列?寄了!
死信(Dead Letter DL) 是指 无法被正常消费的消息,这些消息会从RabbitMQ原队列中移除,并转发到死信交换机(Dead Letter Exchange,DLX),再由死信交换机路由到死信队列(Dead Letter Queue,DLQ)中存储。可以理解为:消息在投递过程中失败了,成了无效消息,为了这部分消息不丢失和后期排查,被转移到了专门的回收站-死信队列中。
2025-12-23 20:18:43
385
1
原创 【MySQL】一篇讲透MySQL的MVCC机制!
MVCC是快照读Undo Log是历史版本的支撑ReadView决定谁能看见哪个版本的数据。
2025-10-02 20:48:12
275
1
原创 【JVM】Java中有哪些垃圾回收算法?
常见的垃圾回收算法有以下三种:标记-清除算法、标记-整理算法、复制算法。每种算法有不同的适用场景与存在的问题,下面细聊。通过复制存活对象来清除垃圾对象。三步走: 分块、复制、交换。将堆内存划分为大小相等的两块区域(通常称为 “From 空间” 和 “To 空间”),同一时间只使用其中一块(From 空间),另一块(To 空间)保持空闲。当 From 空间快满时,触发垃圾回收:**标记:**遍历 From 空间,识别所有存活对象(被根对象直接或间接引用的对象)。复制:将所有存活对象按顺序复制到 To
2025-09-19 17:25:08
566
原创 【JVM】类加载器都有哪些?
我们通过继承类自定义实现,可作为应用类加载器的子类。满足特殊场景的类加载需求。1.加载加密的.class文件(需在加载时解密);2.从网络、数据库等非本地文件系统加载类;3. 实现类的隔离(如 Tomcat 的类加载器,为每个 Web 应用单独加载类,避免不同应用的类冲突);实现方式:重写的方法(负责查找并加载类的字节码),必要时重写方法(可能破坏双亲委派机制)。
2025-08-26 16:25:58
400
原创 【Java】HashMap 的遍历方式有哪些?哪种更高效?
HashMap遍历的高效方式是entrySet() 或 Java 8+ 的 forEach,其中forEach 兼具效率和简洁性,首选。keySet()因额外的get操作,效率较低,不推荐优先使用。
2025-08-07 19:12:20
382
原创 【Java】HashMap的key可以为null吗?如何存储的?
HashMap允许key 为 null,且仅能存在一个 null 键(多次插入会覆盖值)。null 键的哈希值固定为 0,因此始终存储在数组的索引 0 位置。这一设计与 Hashtable 形成对比(Hashtable 对 null 键会直接抛出 NullPointerException)。
2025-08-06 21:32:27
437
原创 【Java】一篇详解HashMap的扩容机制!!
HashMap通过"容量翻倍+元素迁移"实现扩容,核心目的是减少哈希冲突。JDK1.8的优化(如高效索引计算、尾插法)让扩容更高效且安全。实际开发中,若能预估元素数量,建议初始化时指定容量,如:(new HashMap<>(1000)),减少扩容次数以提升性能。
2025-08-04 23:53:20
1033
原创 【Java】HashMap线程安全吗?
1.HashMap的线程不安全本质是缺乏同步机制,无法保证多线程操作的原子性、可见性和有序性,导致内部数据结构(数组、链表/红黑树)被破坏或数据不一致。2.若需在多线程环境中使用哈希表,应该选择线程安全的替代类,如JDK1.5+,高效并发)或、(全表加锁,效率较低)。
2025-08-04 21:15:13
629
原创 【Java】Object类有哪些常见方法?一篇搞定!
好久没更新文章啦,今天回归!!讲一下Object类有哪些常见方法?Object类是所有类的,如果一个类没有明确继承其他类,那么它默认会继承Object类,有以下常见方法。
2025-07-31 23:41:30
332
1
原创 One Year~
这一年时间里,收获了3.5w的浏览量,298个粉丝。看着自己的数据一天天的上涨,内心无比的激动。但在看鱼皮哥的课程时,发现他有着写文档和博客的习惯,整理自己的思路,也挺有趣的,想着自己也不能光看呀,得动起来写才行。不光能记录自己的学习生活,也能锻炼自己的写作能力。如果你还没开始写自己的第一篇文章,看到这里,希望你也可以动起来,写下自己的第一篇文章。看着自己的文章慢慢的跑起来,别提有多高兴了,成就感满满!
2025-05-29 21:53:49
313
1
原创 【Java】线程池的实现原理是怎样的?CPU密集型任务与IO密集型任务的区别?
需要大量CPU计算资源,大部分时间都在进行运算的任务。这类任务的特点是计算量大,CPU占用率高。
2025-05-29 21:20:44
602
原创 【操作系统】进程之间的通信方式有哪些?
相信小伙伴们在学习操作系统时,应该都碰到过这个问题。我之前也写过这个问题的文章,但是内容有些混乱,对此我做了些优化。进程之间的通信方式有哪些呢?那么本文我从四个方面入手,给小伙伴们讲懂。是不同进程之间的机制。
2025-05-09 10:50:08
571
3
原创 【计算机网络】Cookie、Session、Token之间有什么区别?
大家在日常使用浏览器时可能会遇到:是否清理Cookie?这个问题。那么什么是Cookie呢?与此相关的还有Session、Token这些。这两个又是什么呢?Cookie、Session 和 Token 统称为是一种用于。
2025-05-08 20:00:00
1478
3
原创 【计算机网络】用户从输入网址到网页显示,期间发生了什么?
CDN(Content Delivery NetWork,内容分发网络) 是一种分布式网络。用于高效、快速地向全球用户分发静态和动态内容(如网页、图片、视频、JS/CSS文件等)。它的核心目标是减少延迟、提高访问速度、减轻源服务器负载。
2025-05-08 15:33:58
1118
1
原创 【多线程】用阻塞队列实现等待唤醒机制(Java实现)
是多线程编程中线程间通信的重要方式。它允许线程在特定条件下主动等待,并在条件满足时被其他线程唤醒。一个线程检查某个条件,如果不满足就进入等待状态(阻塞)另一个线程修改条件后通知(唤醒)等待的线程被唤醒的线程重新检查条件,如果满足就继续执行。
2025-05-07 14:06:00
514
3
原创 【计算机网络】HTTP中GET和POST的区别是什么?
获取资源,通常请求数据而不改变服务器的状态。提交数据到服务器,通常会改变服务器的状态或副作用(如创建或更新资源)应用过程。
2025-05-04 22:30:39
550
原创 【Redis】面试官最爱问:Redis跳表的实现机制与性能优势
Redis的跳表是多层有序链表,通过随机层高实现概率平衡。查询时从顶层开始,类似二分查找平均时间复杂度O(log n)。相比红黑树,它实现简单且更适合范围查询。
2025-04-28 09:00:00
536
原创 【MySQL】MySQL架构设计原来如此巧妙!
这样的分层设计让MySQL兼具通用性与灵活性。优化器可以针对不同的引擎生成最优执行计划;InnoDB的MVCC机制又能保证高并发事务。
2025-04-25 10:50:30
396
原创 【MySQL】面试官问的事务二阶段提交,这篇彻底讲明白!
二阶段提交(2PC)是MySQL保证的关键协议2PC保证了InnoDB引擎层的与Server层的协调一致性。
2025-04-25 08:45:39
285
原创 【MySQL】面试必问!MySQL事务实现机制全解
MySQL事务通过InnoDB的undo log、redo log、锁机制和MVCCundo log记录修改前状态,支持回滚通过二阶段提交和崩溃恢复机制保证写操作通过行锁保证一致性读操作通过MVCC多版本避免加锁间隙锁防止幻读(RR级别)4.持久性D:通过redo log的WAL机制确保数据不丢失。
2025-04-24 16:22:07
573
原创 【MySQL】undolog、redolog、binlog没听过?这篇讲讲
用于,当MySQL发生数据新增或修改时,undolog会记录这些操作并写入磁盘,当MySQL需要回滚时,重放undolog即可。
2025-04-22 21:56:01
478
原创 【MySQL】你以为MySQL的索引越多越好?NO!
操作都会导致索引更新。例如:一个表有10个索引,每次插入需要写11次(1次数据+10次索引)
2025-04-21 10:45:55
273
原创 【MySQL】MySQL建立索引不知道注意什么?
1.选择高选择性的列建立索引(该列有大量不同的值)2.:不是越多越好,每个索引都会增加写入开销。
2025-04-19 23:50:27
283
原创 【Datawhale AI春训营】Java选手初探数据竞赛
自然语言处理(Natural Language Processing,NLP) 是计算机科学与人工智能领域中的一个极具挑战性和应用前景的研究方向。它旨在使计算机能够理解、生成和处理人类的自然语言,从而实现人机高效交互。NLP技术在搜索引擎、机器翻译、智能客服、文本挖掘、语音助手等众多领域得到了广泛应用,极大的改变了人们的生活和工作方式。
2025-04-19 23:36:10
272
原创 【MySQL】MySQL索引的最左前缀匹配原则还不懂?
最左前缀匹配原则是MySQL的核心原则,指的是必须从索引定义的开始,并且不能跳过中间的列,
2025-04-19 15:05:04
422
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅