07 2023 档案
【优先队列】【堆排序实现优先队列】[1054. 距离相等的条形码](https://leetcode.cn/problems/distant-barcodes/)
摘要:#### 【优先队列】【堆排序实现优先队列】[1054. 距离相等的条形码](https://leetcode.cn/problems/distant-barcodes/) 在一个仓库里,有一排条形码,其中第 i 个条形码为 barcodes[i]。 请你重新排列这些条形码,使其中任意两个相邻的条形
RabbitMQ(四)RabbitMQ的确认机制
摘要:### RabbitMQ(四)RabbitMQ的确认机制 - 保证消息不丢失、可靠抵达,可以使用`事务消息`,但**性能会下降250倍**,因此引入`确认机制`: - `publisher`:`Confirm Callback确认模式` - `publisher`:`return CallBack`
RabbitMQ(三)整合SpringBoot
摘要:### RabbitMQ(三)整合SpringBoot #### 1 整合RabbitMQ ##### 1 导入依赖 ```xml org.springframework.boot spring-boot-starter-amqp ``` ##### 2 查看容器的自动配置 - 给容器自动配置了`R
RabbitMQ(二)Exchange
摘要:### RabbitMQ(二)Exchange #### 1 RabbitMQ的运行机制 - AMQP中消息的路由过程和JMS存在一些差别,AMQP中增加了`Exchange`和`Binding`的角色 - 生产者把消息发布到`Exchange`上,消息最终到达队列而被消费者接受,而`Binding
RabbitMQ(一)简介
摘要:### RabbitMQ(一)简介 #### 1 简介 - 大多应用中,可通过消息服务中间件来提升系统异步通信、扩展解耦能力 - 消息中间件有两个重要概念: - 消息代理 - 目的地 消息发送者发送消息之后,将由消息代理接管,消息代理保证消息传递到指定目的地 - 消息队列有两种形式的目的地 - `队
MySQL(二十一)MVCC多版本并发控制
摘要:### MySQL(二十一)MVCC多版本并发控制 #### 1 什么是MVCC - MVCC(Multiversion Concurrency Control)多版本并发控制。即通过数据行的多个版本管理来实现数据库的并发控制,使得在InnoDB事务隔离级别下执行`一致性读`操作有了保障。 - 就是
MySQL(十五)分析优化器的查询计划:Trace
摘要:#### 1 MySQL(十五)分析优化器的查询计划:Trace `OPTIMIZER_TRACE`是mysql 5.6引入的一项追踪功能,它可以追踪优化器做出的各种决策(比如访问表的方法、各种开销计算和各种转换等等),并将结果记录到表`INFORMATION_SCHEMA.OPTIMIZER_
【双指针】75. 颜色分类、荷兰国旗问题
摘要:#### [75. 颜色分类](https://leetcode.cn/problems/sort-colors/) 给定一个包含红色、白色和蓝色、共 n 个元素的数组 nums ,原地对它们进行排序,使得相同颜色的元素相邻,并按照红色、白色、蓝色顺序排列。 我们使用整数 0、 1 和 2 分别表示
【DP】01背包与完全背包总结及空间优化
摘要:#### 01背包问题 `题目描述`:有n件物品,每件物品的重量为w[i],价值为c[i]。现在有一个容量为V的背包,问怎么选取物品放入背包,能使得背包内的总价值最大。其中每件物品只能放入一次。 `样例`: ``` n = 5, V =8 w[i] = 3, 5, 1, 2, 2 c[i]
JVM(十五)垃圾回收器概述
摘要:JVM (十五)垃圾回收器概述
1 垃圾回收器概述
2 垃圾回收器分类
3 GC的性能指标
4 垃圾回收器的发展迭代史5 垃圾回收器的组合关系
6 查看默认的垃圾回收器
JVM(十四)垃圾回收的一些额外点
摘要:### JVM(十四)垃圾回收的一些额外点 #### 1 System.gc()的理解 - 在默认情况下,通过`System.gc()`或者`Runtime.getRuntime().gc()`的调用,会显式触发`Full GC`,同时对老年代和新生代进行回收,尝试释放被丢弃对象占用的内存 - `S
JVM(十三)分代收集、增量收集以及分区算法
摘要:### JVM(十三)分代收集、增量收集以及分区算法 #### 1 分代收集算法 前面的所有算法中,没有一种算法能够完全替代其他算法,它们都有自己独特的优势和特点,分代收集算法应运而生: - 分代收集算法对不同生命周期的对象采取不同的收集方式,一般划分为新生代和老年代,以便提高回收效率 > 在J
JVM(十二)垃圾清除阶段算法
摘要:### JVM(十二)垃圾清除阶段算法 - 垃圾清除阶段是指,当成功区分出内存区域中的存活对象和死亡对象之后,GC接下来的任务就是**执行垃圾回收,释放掉无用对象所占用的内存空间,以便有足够的可用内存空间为新对象分配内存**。 - 目前在JVM中比较常见的三种垃圾收集算法是`标记-清除算法(Mark
JVM(十一)垃圾回收概述和垃圾标记阶段的算法
摘要:### JVM(十一)垃圾回收概述和垃圾标记阶段的算法 #### 1 Java垃圾回收概述 - **什么是垃圾?** - 垃圾是在**程序运行过程中不被任何指针指向的对象**,这个对象就是需要被回收的垃圾 - **为什么要进行垃圾回收?** - 如果不及时对内存中的垃圾进行清理,那么这些垃圾对象所占
JVM(十)StringTable
摘要:### JVM(十)StringTable #### 1 String的基本特性 - **String即字符串,通过一对引号""表示**,String创建的方式主要有 - String s = "abc"; // 字面量的方式 - String s = new String("abc"); // 类
JVM(九)执行引擎
摘要:### JVM(九)执行引擎 #### 1 执行引擎概述 - 执行引擎是Java虚拟机核心的组成部分之一 - 虚拟机是一个相对于物理机的概念,这两种机器都有代码执行能力,区别在于**物理机的执行引擎是直接建立在处理器、缓存、指令集和操作系统层面上的**,而**虚拟机的执行引擎是由软件自主实现的,因此
JVM(八)对象的实例化内存布局与访问定位
摘要:### JVM(八)对象的实例化内存布局与访问定位 #### 1 对象创建的方式 - **new** - 变形1: - **Class的`newInstance()`**,即反射 > Class的`newInstance`反射的使用较为苛刻,要求只能调用空参的构造器,而且权限必须是public >
JVM(七)方法区
摘要:### JVM(七)方法区 #### 1 方法区 - 方法区和Java堆一样,是各个**线程共享**的内存区域,**用于存储编译后的字节码中的类的机构信息,如运行时常量池、属性方法数据以及方法、构造器的字节码** - 方法区在JVM启动的时候被创建,并且它的实际物理内存空间和Java堆区一样都是可以
【每日一题】[15. 三数之和]
摘要:#### 【每日一题】[15. 三数之和](https://leetcode.cn/problems/3sum/) 给你一个整数数组 nums ,判断是否存在三元组 [nums[i], nums[j], nums[k]] 满足 i != j、i != k 且 j != k ,同时还满足 nums[i