摘要: 相信很多小伙伴在面试中都会遇到面试手撕题,然后当时可能会大脑有一些宕机,但在事后却宛若诸葛亮一般奇妙的相出了最优解哈哈哈。没错就是我,面试中只想出了暴力的想法,最优解只有一点点头绪。当面试过后再去想一下确实会文思泉涌。 算法题是这样的:有两棵树,判断他们中序遍历的结果是否一致。 那好家伙,0.1s想 阅读全文
posted @ 2025-04-03 15:27 ayu0v0 阅读(12) 评论(0) 推荐(1)
摘要: 在开始本章之前,我们得了解一个概念,那就是我们怎么知道这个对象是"垃圾"?所以如何定义垃圾就成为我们第一个需要探讨的重要的点之一。 垃圾标记算法 常见的垃圾标记算法有:引用计数算法和可达性分析算法。 引用计数算法 实现思路 每个对象去额外存储一个引用计数器,这个计数器统计了对象被引用的次数,当被引用 阅读全文
posted @ 2024-11-08 13:21 ayu0v0 阅读(44) 评论(2) 推荐(1)
摘要: 在同步机制中,我们介绍了AQS与ReentrantLock。当然使用AQS进行同步的也不止ReentrantLock,所以我们接下来去看看其他用AQS做同步的类。 ReentrantReadWriteLock 概述 ReentrantReadWriteLock的读锁是共享锁,写锁是独占锁。 使用时, 阅读全文
posted @ 2024-11-07 14:10 ayu0v0 阅读(14) 评论(0) 推荐(0)
摘要: import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.Scanner; // 前缀树 public class Trie { // 子节点 private Trie[] 阅读全文
posted @ 2025-04-20 16:39 ayu0v0 阅读(19) 评论(0) 推荐(0)
摘要: 写个阻塞队列~~~ /** * 手写阻塞队列 * ELEGANT */ public class MyBlockingQueue { // 存储元素 private final Object[] items; private int maxSize; private int takeIndex = 阅读全文
posted @ 2025-04-07 22:27 ayu0v0 阅读(7) 评论(0) 推荐(0)
摘要: 🤔听说你用过Redis、Caffeine,那我问你你了解Cache Design Pattern吗?Look at my eyes。 今天就来聊聊Cache Design Pattern。Cache Design Pattern是缓存设计模式,是用于优化系统性能、减少资源消耗和提升响应速度的软件架 阅读全文
posted @ 2025-03-25 22:25 ayu0v0 阅读(46) 评论(0) 推荐(0)
摘要: 分段锁 JDK1.7时ConcurrentHashMap使用的是分段锁来实现线程安全的。 设计的核心思想 数据分片与独立锁 将整个哈希表划分为多个逻辑段(Segment),每个段都独立维护一个哈希桶数组并配备一把锁(ReentrantLock) 优点:可以并行操作不同逻辑段 读写分离优化 读操作无锁 阅读全文
posted @ 2025-03-17 16:06 ayu0v0 阅读(110) 评论(0) 推荐(0)
摘要: 🤔当我们需要执行多个Redis语句且需要保障他们的原子性时,那么我们一般有两个方案:Redis原生事务与LUA脚本。那我们用哪种比较好呢,以及他们彼此的原理是什么呢,那现在我们就来走进Redis原生事务与LUA脚本。 Redis原生事务 原理 Redis可以使用MULTI开启事务,然后会将多个命令 阅读全文
posted @ 2025-03-17 15:05 ayu0v0 阅读(62) 评论(0) 推荐(0)
摘要: Java反射是什么? Java反射是一种运行时能够动态获取类的信息并操作类的能力!(相当于上帝模式,巨屌) Java反射的核心原理基于类加载机制和类的元数据。 类加载机制 Java类加载机制主要使用类加载器(ClassLoader)进行相应的类加载。ClassLoader主要使用loadClass( 阅读全文
posted @ 2025-03-16 14:20 ayu0v0 阅读(15) 评论(0) 推荐(0)
摘要: 类的生命周期 类的生命周期:加载→验证→准备→解析→初始化→使用→卸载 类加载的时机 关于在什么情况下需要需要开始类加载过程的第一个阶段"加载",虚拟机并没有进行强制约束,这点交给虚拟机的具体实现来自由把握。 但严格规定了有且只有六种情况必须立即对类进行"初始化": (字节码指令:new、getst 阅读全文
posted @ 2024-11-08 13:26 ayu0v0 阅读(23) 评论(0) 推荐(1)
摘要: 对象优先在Eden区分配 大多数情况下,对象在Eden区进行分配。 当Eden区没有足够的空间来进行分配时,就会触发Young GC(Minor GC)。 当触发Young GC时,如果Survivor区不够放存活的对象,那么就会触发分配担保机制提前转移到老年代。 大对象直接进入老年代 大对象的问题 阅读全文
posted @ 2024-11-08 13:22 ayu0v0 阅读(33) 评论(0) 推荐(0)
摘要: Serial收集器 HotSpot虚拟机运行在客户端模式下的默认新生代收集器。 类型:单线程串行垃圾回收器 垃圾收集算法:复制算法 作用区域:新生代 特点: 1、只会用单个线程去完成垃圾收集工作,用户线程会STW,直到收集结束。 2、没有线程交互,专心做垃圾收集,获得最高的单线程收集效率。 ParN 阅读全文
posted @ 2024-11-08 13:22 ayu0v0 阅读(50) 评论(0) 推荐(0)