01 2024 档案
摘要:目录1. 题目列表2. 应用2.1. Leetcode 643. 子数组最大平均数 I2.1.1. 题目2.1.2. 解题思路2.1.3. 代码实现2.2. Leetcode 3. 无重复字符的最长子串2.2.1. 题目2.2.2. 解题思路2.2.3. 代码实现2.3. Leetcode 159.
阅读全文
摘要:目录1. 题目列表2. 应用2.1. Leetcode 295. 数据流的中位数2.1.1. 题目2.1.2. 解题思路2.1.3. 代码实现 1. 题目列表 题目列表: 序号 题目 难度 1 295. 数据流的中位数 困难 2. 应用 2.1. Leetcode 295. 数据流的中位数 2.1.
阅读全文
摘要:目录1. 题目列表2. 应用2.1. Leetcode 315. 计算右侧小于当前元素的个数2.1.1. 题目2.1.2. 解题思路2.1.3. 算法步骤2.1.4. 代码实现 1. 题目列表 题目列表: 序号 题目 难度 1 315. 计算右侧小于当前元素的个数 困难 2. 应用 2.1. Lee
阅读全文
摘要:目录1. 题目列表2. 应用2.1. Leetcode 226. 翻转二叉树2.1.1. 题目2.1.2. 解题思路2.1.2.1. 方法一:前序遍历2.1.2.2. 方法二:后序遍历2.1.3. 代码实现2.2. Leetcode 116. 填充每个节点的下一个右侧节点指针2.2.1. 题目2.2
阅读全文
摘要:目录1. 题目2. 应用2.1. Leetcode 124. 二叉树中的最大路径和2.1.1. 题目2.1.2. 解题思路2.1.3. 代码实现2.2. Leetcode 100. 相同的树2.2.1. 题目2.2.2. 解题思路2.2.3. 代码实现2.3. Leetcode 105. 从前序与中
阅读全文
摘要:目录题目方案一:synchronized方法二:ReentrantLock方法三:ReentrantLock + Condition(非公平锁)方法四:ReentrantLock + Condition(公平锁)方法五:Semaphore 题目 使用三个线程 T1、T2、T3,如何让他们按顺序交替打
阅读全文
摘要:目录1. 题目列表2. 应用2.1. Leetcode 64. 最小路径和2.1.1. 题目2.1.2. 分析2.1.2.1. 边界条件2.1.2.2. 状态转移2.1.3. 代码实现2.2. Leetcode 174. 地下城游戏2.2.1. 题目2.2.2. 分析2.2.2.1. 初始条件2.2
阅读全文
摘要:目录1. 简介2. 应用2.1. Leetcode 752. 打开转盘锁2.1.1. 题目2.1.2. 解题思路2.1.3. 代码实现2.2. Leetcode 127. 单词接龙2.2.1. 题目2.2.2. 解题思路2.2.3. 代码实现 1. 简介 BFS 的核心思想应该不难理解的,就是把一些
阅读全文
摘要:目录1. 题目2. 应用2.1. Leetcode 10. 正则表达式匹配题目解题思路代码实现 1. 题目 题目列表: 序号 题目 难度 1 10. 正则表达式匹配 困难 2. 应用 2.1. Leetcode 10. 正则表达式匹配 题目 10. 正则表达式匹配 解题思路 设 \(dp[i][j]
阅读全文
摘要:目录1. 题目列表2. 应用2.1. Leetcode 410. 分割数组的最大值2.1.1. 题目2.1.2. 解题思路2.1.3. 代码实现2.2. Leetcode 658. 找到 K 个最接近的元素2.2.1. 题目2.2.2. 解题思路2.2.3. 复杂度2.2.4. 代码实现2.3. L
阅读全文
摘要:目录1. 前言1.1. 什么是循环依赖?1.2. Spring 创建 Bean 主要流程1.2.1. 实例化 Bean1.2.2. 填充 Bean 属性1.2.3. 调用 Bean 初始化方法1.3. BeanPostProcessor 接口拓展点2. Spring 解决循环依赖的流程分析2.1.
阅读全文
摘要:目录1. IoC 容器1.1. IoC 的容器接口设计图1.1.1. BeanFactory1.1.2. ApplicationContext1.2. BeanFactory 容器设计原理1.2.1. 编程式使用IOC容器1.3. ApplicationContext1.3.1. 设计原理2. Io
阅读全文
摘要:目录单例模式简介双重检查锁优缺点延迟加载模式(Initialization-on-demand holder idiom)优缺点饿汉模式优缺点枚举方式优缺点 单例模式简介 单例模式是一种创建型设计模式, 让你能够保证一个类只有一个实例, 并提供一个访问该实例的全局节点。 单例模式保证了系统内存中该类
阅读全文
摘要:目录括号相关的应用1. Leetcode 20. 有效的括号1.1. 题目1.2. 解题思路1.3. 代码实现2. Leetcode 1541. 平衡括号字符串的最少插入次数2.1. 题目2.2. 解题思路2.3. 代码实现3. Leetcode 921. 使括号有效的最少添加3.1. 题目3.2.
阅读全文
摘要:目录Java 对象内存结构Java 对象在内存中的布局Java 对象头MonitorJava 中的锁状态无锁状态偏向锁轻量级锁(自旋锁)重量级锁锁的优缺点对比锁升级场景场景1: 经常只有某一个线程来加锁。场景2: 有线程来参与锁的竞争,但是获取锁的冲突时间很短场景3: 有大量的线程参与锁的竞争,冲突
阅读全文
摘要:目录同步器Semaphore原理示例Exchanger总结CountDownLatchCyclicBarrier原理应用场景示例Phaser示例 同步器 JUC 包下的工具类除了 locks,还包含其他的工具类,如:Semaphore、CountDownLatch、CyclicBarrier、Exc
阅读全文
摘要:目录线程同步条件对象synchronized 关键字监视器volatile 线程同步 条件对象 通常线程进入临界区,却发现需要满足某一个条件后,才能继续执行,这时,就需要使用一个条件对象,来管理那些已经获得了一个锁,但是,却不做有用工作的线程。这些条件对象经常被称为条件变量(Conditional
阅读全文
摘要:目录IOJava IO IO IO 即 Input/Output,输入和输出。数据输入到计算机内存的过程即输入,反之输出到外部存储(比如数据库,文件,远程主机)的过程即输出。 数据传输过程类似于水流,因此称为 I/O 流。 Java IO IO 流在 Java 中分为输入流和输出流,而根据数据的处理
阅读全文
摘要:目录简介语法区别 简介 Lambda 表达式是 JDK 8 的一个新特性,可以取代大部分的匿名内部类,写出更优雅的Java代码,尤其在集合的遍历和其他集合操作中,可以极大地优化代码结构。但 Lambda 表达式并不能取代所有的匿名内部类,只能用来取代函数接口(Functional Interface
阅读全文
摘要:目录查询计划查询计划输出格式解释输出列列格式idselect_typetypepossible_keyskeyref 查询计划 根据表、列、索引的详细信息以及子句中的 WHERE 条件不同,MySQL 优化器会考虑多种技术来有效地执行 SQL 查询中涉及的查找。 例如, 对大表进行查询可能无需读取所
阅读全文
摘要:目录数据类型String内部实现常用指令应用场景缓存计数分布式锁加锁释放锁共享 Session 信息List内部实现常用命令应用场景Hash内部实现常用命令应用场景缓存对象购物车Set介绍内部实现常用命令应用场景点赞共同关注抽奖活动Zset介绍内部实现常用命令应用场景排行榜电话、姓名排序电话排序姓名
阅读全文