Loading

摘要: MySQL中一个B+树能存储多少数据 MySQL中InnoDB页的大小默认是16k。也可以自己进行设置。(计算机在存储数据的时候,最小存储单元是扇区,一个扇区的大小是 512 字节,而文件系统(例如 XFS/EXT4)最小单元是块,一个块的大小是 4KB。 InnoDB 引擎存储数据的时候,是以页为 阅读全文
posted @ 2024-09-04 22:53 Duancf 阅读(70) 评论(0) 推荐(0) 编辑
摘要: ![image](https://img2024.cnblogs.com/blog/1533409/202409/1533409-20240904220429579-1230290363.png) 阅读全文
posted @ 2024-09-04 22:04 Duancf 阅读(8) 评论(0) 推荐(0) 编辑
摘要: ping 命令之所以不会收到 ICMP 差错报告报文,是因为 ping 命令本身使用的是 ICMP Echo 请求(ICMP Echo Request)和回显应答(ICMP Echo Reply)报文,而 ICMP 差错报告报文(例如目标不可达、时间超时等)只会发送给原始数据包的发送者。 下面详细解 阅读全文
posted @ 2024-09-04 21:01 Duancf 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 什么是双亲委派机制 首先,我们知道,虚拟机在加载类的过程中需要使用类加载器进行加载,而在Java中,类加载器有很多,那么当JVM想要加载一个.class文件的时候,到底应该由哪个类加载器加载呢? 这就不得不提到"双亲委派机制"。 首先,我们需要知道的是,Java语言系统中支持以下4种类加载器: Bo 阅读全文
posted @ 2024-09-04 20:23 Duancf 阅读(12) 评论(0) 推荐(0) 编辑
摘要: Java switch case 语句 switch case 语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支。 switch case 语句语法格式如下: switch(expression){ case value : //语句 break; //可选 case value : 阅读全文
posted @ 2024-09-04 18:43 Duancf 阅读(157) 评论(0) 推荐(0) 编辑
摘要: 用队列实现栈 class MyStack: def __init__(self): self.length = 0 self.queue1 = [] self.queue2 = [] def push(self, x: int) -> None: self.queue1.append(x) self 阅读全文
posted @ 2024-09-04 10:21 Duancf 阅读(2) 评论(0) 推荐(0) 编辑
摘要: http 1.0 无状态,无连接, 无法复用连接,多次的建立断开连接导致性能不好, 队头阻塞,下一个请求必须等待上一个请求返回, http 1.1 长连接 多次请求可以使用同一个TCP连接 请求管道化 下一个请求不必等待上一个请求返回,但是在服务端必须按照顺序返回结果,这样浏览器才能识别这次返回的是 阅读全文
posted @ 2024-09-02 14:36 Duancf 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 两个线程交替打印0-100 import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class Main { public static Reentran 阅读全文
posted @ 2024-09-01 14:15 Duancf 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 多线程循环打印ABC import java.util.concurrent.locks.Condition; import java.util.concurrent.locks.ReentrantLock; public class Main { public static ReentrantLo 阅读全文
posted @ 2024-09-01 14:14 Duancf 阅读(19) 评论(0) 推荐(0) 编辑
摘要: class Node: def __init__(self, key=0, value=0): self.key = key self.value = value self.prev = None self.next = None class LRUCache: def __init__(self, 阅读全文
posted @ 2024-09-01 14:13 Duancf 阅读(10) 评论(0) 推荐(0) 编辑
摘要: class Node: def __init__(self, key=0, val=0, pre=None, next=None, fre=0, tail=None): self.key = key self.val = val self.pre = pre self.next = next sel 阅读全文
posted @ 2024-09-01 14:09 Duancf 阅读(12) 评论(0) 推荐(0) 编辑
摘要: 二分法 二分法的几个位置 比如 0 1 2 3 4 5 6 7 8 9 1 2 3 3 3 3 3 4 5 6 有时候想要寻找小于3的最大数字 有时候想要寻找第一个满足>=3的数字, 有时候想要寻找最后一个满足>=3的数字, 有时候想要寻找小于4的最大数字 nums = [1, 2, 3, 4, 5 阅读全文
posted @ 2024-08-31 11:34 Duancf 阅读(4) 评论(0) 推荐(0) 编辑
摘要: Leetcode 面试题 17.14. 最小K个数 设计一个算法,找出数组中最小的k个数。以任意顺序返回这k个数均可。 给出python实现 class Solution: def smallestK(self, arr: List[int], k: int) -> List[int]: def t 阅读全文
posted @ 2024-08-31 11:34 Duancf 阅读(31) 评论(0) 推荐(0) 编辑
摘要: 检测环 快慢指针法是一种用于检测链表中是否存在环的有效方法,同时也可以找到环的起点。该方法的原理基于两个指针在链表上同时移动,其中一个移动得更快,而另一个移动得更慢。 检测环的存在: 使用两个指针,一个称为快指针(fast),一个称为慢指针(slow)。 在每一步中,快指针向前移动两步,而慢指针只移 阅读全文
posted @ 2024-08-31 11:32 Duancf 阅读(32) 评论(0) 推荐(0) 编辑
摘要: num1 = input() num2 = input() def compare(num1,num2): for i in range(len(num1)): if num1[i]>num2[i]: return 0 elif num1[i]<num2[i]: return 1 return 2 阅读全文
posted @ 2024-08-31 11:30 Duancf 阅读(12) 评论(0) 推荐(0) 编辑
摘要: intset 小整数集合 set 集合容纳的元素都是整数并且元素个数较少时, Redis 会使用 intset 来存储集合元素。 intset 是紧凑的数组结构,同时支持 16 位、 32 位和 64 位整数 struct intset<T> { int32 encoding;//决定整数位宽是 1 阅读全文
posted @ 2024-08-30 22:59 Duancf 阅读(14) 评论(0) 推荐(0) 编辑
摘要: Semaphore是一种同步辅助工具,翻译过来就是信号量,用来实现流量控制,它可以控制同一时间内对资源的访问次数. 无论是Synchroniezd还是ReentrantLock,一次都只允许一个线程访问一个资源,但是Semaphore可以指定多个线程同时访问某一个资源. Semaphore有一个构造 阅读全文
posted @ 2024-08-27 22:56 Duancf 阅读(35) 评论(0) 推荐(0) 编辑
摘要: public interface Strategy { void doWork(); } public class AliPay implements Strategy { @Override public void doWork() { System.out.println("正在使用支付宝支付" 阅读全文
posted @ 2024-08-27 21:02 Duancf 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 注入 Bean 的注解有哪些? Spring 内置的 @Autowired 以及 JDK 内置的 @Resource 和 @Inject 都可以用于注入 Bean。 Annotation Package Source @Autowired org.springframework.bean.facto 阅读全文
posted @ 2024-08-27 13:31 Duancf 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 索引底层数据结构选型 Hash 表 哈希表是键值对的集合,通过键(key)即可快速取出对应的值(value),因此哈希表可以快速检索数据(接近 O(1))。 为何能够通过 key 快速取出 value 呢? 原因在于 哈希算法(也叫散列算法)。通过哈希算法,我们可以快速找到 key 对应的 inde 阅读全文
posted @ 2024-08-25 22:12 Duancf 阅读(9) 评论(0) 推荐(0) 编辑
摘要: Spring 事务是复杂一致性业务必备的知识点,掌握好 Spring 事务可以让我们写出更好地代码。这篇文章我们将介绍 Spring 事务的诞生背景,从而让我们可以更清晰地了解 Spring 事务存在的意义。 接着,我们会介绍如何快速使用 Spring 事务。接着,我们会介绍 Spring 事务的一 阅读全文
posted @ 2024-08-25 20:31 Duancf 阅读(23) 评论(0) 推荐(0) 编辑
摘要: 从阻塞 I/O 到 I/O 多路复用 阻塞 I/O,是指进程发起调用后,会被挂起(阻塞),直到收到数据再返回。如果调用一直不返回,进程就会一直被挂起。因此,当使用阻塞 I/O 时,需要使用多线程来处理多个文件描述符。 多线程切换有一定的开销,因此引入非阻塞 I/O。非阻塞 I/O 不会将进程挂起,调 阅读全文
posted @ 2024-08-25 17:22 Duancf 阅读(19) 评论(0) 推荐(0) 编辑
摘要: Blocking I/O, Nonblocking I/O, And Epoll January 10, 2017 In this post I want to explain exactly what happens when you use nonblocking I/O. In particu 阅读全文
posted @ 2024-08-25 17:10 Duancf 阅读(7) 评论(0) 推荐(0) 编辑
摘要: 虚拟线程(Virtual Thread)是 JDK 而不是 OS 实现的轻量级线程(Lightweight Process,LWP),由 JVM 调度。许多虚拟线程共享同一个操作系统线程,虚拟线程的数量可以远大于操作系统线程的数量。 虚拟线程和平台线程有什么关系? 在引入虚拟线程之前,java.la 阅读全文
posted @ 2024-08-24 20:54 Duancf 阅读(763) 评论(0) 推荐(0) 编辑
摘要: 三次握手 四次挥手 TCPIP模型 全双工 全双工(Full-Duplex)是指在通信中,数据传输能够在两个方向上同时进行,允许双方在同一时间既能发送数据,又能接收数据。这种方式使得通信的双方可以实现同时进行的双向交流,类似于电话通话中的双方可以同时说话和听到对方说话的情况。 半双工 半双工(Hal 阅读全文
posted @ 2024-08-24 20:21 Duancf 阅读(13) 评论(0) 推荐(0) 编辑
摘要: 线程 阅读全文
posted @ 2024-08-24 20:16 Duancf 阅读(2) 评论(0) 推荐(0) 编辑
摘要: 当CPU想要访问一个逻辑地址的时候,我们需要做两个步骤,地址转换和内存访问 地址转换 逻辑地址是程序内部使用的地址,并非真正的物理地址。 从逻辑地址到物理地址的映射,由页表来完成,页表的内容包括,逻辑页号,物理页号,有效位,有效位表示这一页是否在内存中。 页表存放在内存中,如果需要频繁访问页表,需要 阅读全文
posted @ 2024-08-24 19:14 Duancf 阅读(20) 评论(0) 推荐(0) 编辑
摘要: 死锁 死锁是指在并发系统中,两个或多个进程因为互相等待对方释放资源而无法继续执行的状态。 死锁发生的条件通常包括以下四个条件: 互斥条件(Mutual Exclusion):至少有一个资源被标记为只能被一个进程占用,即一次只能有一个进程使用该资源。 请求与保持条件(Hold and Wait):一个 阅读全文
posted @ 2024-08-24 19:01 Duancf 阅读(13) 评论(0) 推荐(0) 编辑
摘要: Redis如何实现消息队列 1、使用List List最为简单和直接,主要通过lpush、rpop存储和读取消息队列的(先进先出) ruby 代码解读复制代码127.0.0.1:6379> lpush mq "firstMsg" #推送消息 firstMsg (integer) 1 127.0.0. 阅读全文
posted @ 2024-08-23 21:59 Duancf 阅读(22) 评论(0) 推荐(0) 编辑
摘要: 什么是分布式一致性 ? 分布式系统通常由异步网络连接的多个节点构成,每个节点有独立的计算和存储,节点之间通过网络通信进行协作。分布式一致性指多个节点对某一变量的取值达成一致,一旦达成一致,则变量的本次取值即被确定。在大量客户端并发请求读/写的情况下,维护数据多副本的一致性无疑非常重要,且富有挑战。因 阅读全文
posted @ 2024-08-23 21:58 Duancf 阅读(21) 评论(0) 推荐(0) 编辑
摘要: Kafka 如何保证消息的消费顺序? 我们在使用消息队列的过程中经常有业务场景需要严格保证消息的消费顺序,比如我们同时发了 2 个消息,这 2 个消息对应的操作分别对应的数据库操作是: 更改用户会员等级。 根据会员等级计算订单价格。 假如这两条消息的消费顺序不一样造成的最终结果就会截然不同。 我们知 阅读全文
posted @ 2024-08-23 21:58 Duancf 阅读(27) 评论(0) 推荐(0) 编辑
摘要: 首先来看线程不安全的转账 public class Bank { private int[] accounts; public Bank() { this.accounts = new int[10]; for (int i = 0; i < 10; i++) { accounts[i] = 100 阅读全文
posted @ 2024-08-22 20:37 Duancf 阅读(25) 评论(0) 推荐(0) 编辑
摘要: 执行一条 select 语句,期间发生了什么? 学习 SQL 的时候,大家肯定第一个先学到的就是 select 查询语句了,比如下面这句查询语句: // 在 product 表中,查询 id = 1 的记录 select * from product where id = 1; 但是有没有想过,My 阅读全文
posted @ 2024-08-22 17:05 Duancf 阅读(86) 评论(0) 推荐(0) 编辑
摘要: 事务传播行为之一 事务传播行为是为了解决业务层方法之间互相调用的事务问题。 当事务方法被另一个事务方法调用时,必须指定事务应该如何传播。例如:方法可能继续在现有事务中运行,也可能开启一个新事务,并在自己的事务中运行。 举个例子:我们在 A 类的aMethod()方法中调用了 B 类的 bMethod 阅读全文
posted @ 2024-08-22 16:31 Duancf 阅读(41) 评论(0) 推荐(0) 编辑
摘要: 在java基础类型中,int类型占四个字节,而每个字节在内存中占8位(8byte),所以可以使用共4X8=32个位数来存储该类型,也就是四个八位的二进制数,所以有了以下说法 在计算机中,它的二级制表示为四个长度为8的二进制数,00000000 00000000 00000000 00000000,不 阅读全文
posted @ 2024-08-20 16:02 Duancf 阅读(152) 评论(0) 推荐(0) 编辑
摘要: https://javabetter.cn/collection/PriorityQueue.html 阅读全文
posted @ 2024-08-19 19:45 Duancf 阅读(2) 评论(0) 推荐(0) 编辑
摘要: Mysql redolog的刷盘时机 mysql正常关闭的时候 redolog buffer写入超过一半的时候 事务提交的时候 0每次提交事务,redolog留在buffer中不写入磁盘 1每次提交事务,redolog写入磁盘 2每次提交事务,redolog写入操作系统的文件缓存页面 后台线程每隔一 阅读全文
posted @ 2024-08-19 19:25 Duancf 阅读(32) 评论(0) 推荐(0) 编辑
摘要: 第一阶段:写入redolog文件,并把redolog的提交状态设置为prepare状态 第二阶段:写入binlog文件,完成之后,把redolog的提交状态设置为commit 为什么两阶段提交能保证一致性 如果第一阶段写redolog的时候崩溃,什么都没写入,这个事务就丢失了 如果第二阶段写入bin 阅读全文
posted @ 2024-08-19 19:02 Duancf 阅读(20) 评论(0) 推荐(0) 编辑
摘要: Set集合有什么特点?如何实现key无重复的? set集合特点:Set集合中的元素是唯一的,不会出现重复的元素。 set实现原理:Set集合通过内部的数据结构(如哈希表、红黑树等)来实现key的无重复。当向Set集合中插入元素时,会先根据元素的hashCode值来确定元素的存储位置,然后再通过equ 阅读全文
posted @ 2024-08-17 22:59 Duancf 阅读(6) 评论(0) 推荐(0) 编辑
摘要: 延迟消息队列 redis数据结构,用什么结构实现延迟消息队列 延迟消息队列是一种消息队列系统,它允许消息的发布者在消息发送时指定消息的投递时间,使消息在未来的某个预定时间点被消费者接收。这种机制对于需要在稍后执行的任务或具有特定延迟需求的应用非常有用。 对于实现延迟消息队列,可以使用有序集合(Sor 阅读全文
posted @ 2024-08-17 22:59 Duancf 阅读(48) 评论(0) 推荐(0) 编辑
点击右上角即可分享
微信分享提示