自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 CodTop 热题100

插入、更新或者查询的节点都移动到队列头部,检查连表长度,末尾淘汰最近最久未使用的节点。因为题目要求get和put需要在O(1) 复杂度完成,可以通过map存储每个key跟节点的映射。你不能只是单纯的改变节点内部的值,而是需要实际进行节点交换。// 该操作会使得关键字 2 作废,缓存是 {1=1, 3=3}// 该操作会使得关键字 1 作废,缓存是 {4=4, 3=3}// 缓存是 {1=1, 2=2}解题思路2:使用堆【小顶堆,堆底层存的是最大的k个数,堆顶即为所求】。// 返回 -1 (未找到)

2024-06-17 10:55:21 987

原创 链表问题汇总

目录一、链表0、链表结构定义1、leetcode2: 两数之和2、leetcode19: 删除倒数第N个节点3、leetcode21: 合并两个排序链表4、leetcode23: 合并k个有序连表5、leetcode24: 交换相邻节点6、leetcode25: k个一组反转连表7、leetcode61: 将链表往后旋转k位8、leetcode82: 删除排序链表中所有重复节点【易错】9、leetcode83: 删除排序链表中的重复节点【重复节点只保留一个】10、leetcode86: 分割链表【=x的在

2024-06-14 23:51:15 649

原创 Redis详解

渐进式hash是指rehash的过程不是一次完成的,而是分多次、渐进式完成的。如果保存在Redis中的键值对只有几个几十个,那么 rehash 操作可以瞬间完成,但是如果键值对有几百万,几千万甚至几亿,那么要一次性的进行 rehash,势必会造成Redis一段时间内不能进行别的操作。所以Redis采用渐进式 rehash。这样在进行渐进式rehash期间,字典的删除查找更新等操作可能会在两个哈希表上进行,第一个哈希表没有找到,就会去第二个哈希表上进行查找。但是进行 增加操作,一定是在新的哈希表上进行的。

2024-06-05 11:19:22 529

原创 Kafka详解

consumer 提交offset的时候,kafka Offset manager会首先追加一条新的conmit消息到 _consumer_offset topic中,然后更新对应的缓存,读offset时从缓存中读取,而不是直接读取 _consumer_offset topic。如查找368801的offset消息。同一个Topic的每个分区中的数据是不重复的,partition的表现形式是一个一个文件夹。文件,每个 .log文件 的大小是一样的,但是里面存储的消息条数可能不相同(可能消息的大小不一致)。

2024-05-25 20:31:37 5101

原创 Java知识点

一个栈帧中分配多少内存基本上是在类结构确定下来时就已知的,因此这几个区域的内存分配和回收都具备确定性,在这几个区域内就不需要过多考虑回收的问题,因为方法结束或者线程结束时,内存自然就跟随着回收了。java的线程是映射到操作系统线程上的,阻塞或唤醒一个线程,都需要操作系统来帮忙完成,这就需要从用户态切到核心态,因此状态转换需要耗费很多的处理器时间。sleep是线程的方法,跟锁没半毛钱关系,wait,notify,notifyall 都是Object对象的方法,是一起使用的,用于锁机制。

2024-05-18 22:19:09 725 1

原创 Mysql知识点汇总

以下图为例:ReadView中活跃事务ID是1和3,undo日志中最新提交的事务ID是4,线程2查询,按照可见性算法计算,2>1 (最小的事务ID) && 2

2024-05-18 16:10:46 667

原创 Java二叉树笔试题总结

1、前序遍历,中序遍历,后序遍历;层次遍历;2、求树的结点数;3、求树的叶子数;4、求树的深度;5、求二叉树第 k 层的结点个数;6、判断两棵二叉树是否结构相同;7、求二叉树的镜像;8、求两个结点的最低公共祖先结点;9、求任意两结点距离;10、找出二叉树中某个结点的所有祖先结点;11、不使用递归和栈遍历二叉树;12、二叉树前序中序推后序;13、判断二叉树是不是完全二叉树;...

2019-06-18 20:16:43 1387

转载 java集合的小抄

http://calvin1978.blogcn.com/articles/collection.html

2019-06-18 15:39:44 182

转载 HashMap工作原理详解

https://yikun.github.io/2015/04/01/Java-HashMap工作原理及实现/

2019-06-18 15:25:44 268

转载 一致性哈希算法

http://www.zsythink.net/archives/1182

2019-06-18 15:24:41 169

原创 SQL语法

假设现在有三张表:student 表含有 student_id(主键), name, age, sex.。score表 student_id(主键), course_id, score。course 表 course_id(主键), name。在同一个Sql语句中,where> group by > having 出...

2019-06-10 13:42:42 634

原创 数据库之锁模块

锁出现的原因是为了处理并发问题。数据库并发需要使用事务来控制,事务并发问题需要数据库锁来控制,所以数据库锁是跟并发控制和事务联系在一起的。 平时会经常看到或者听到数据库锁有“共享锁”,“排它锁”,“互斥锁”,“写锁”,“读锁”,“悲观锁”,“乐观锁”,“行级锁”,“表级锁”,“页级锁”等,同时我们还会常看到“丢失修改“,”不可重复读“,”读脏数据“这三个术语,下面开始介绍:一、事务事务是数据...

2019-06-10 10:58:20 207

原创 数据库索引及其相关问题

一、索引的数据结构数据库索引的数据结构主要有四种1、二叉查找树二叉查找树是对半查找,其时间复杂度为O(logn),但是最坏情况下会变成O(n)(排成线性表时)。2、B树B树出现的原因是为了降低树的深度,减少访问IO次数来优化查询速率。查询速率与二叉查找树一样高效。3、B+树(MySql采用的)B+树是B树的变体,其定义基本与B树相同,除了:a、非叶子节点的字树指针与关键字个数相...

2019-06-10 10:02:21 219

原创 如何设计一个关系型数据库

数据库首先可以划分为两个部分:存储部分(类似文件系统,将数据写入其中) + 程序实例(对存储进行逻辑上的处理)。设计一个关系型数据库主要需要考虑如下模块1、存储管理:数据逻辑关系转换为物理存储关系2、缓存机制:优化执行效率3、SQL解析:将SQL语句进行解析4、日志管理:记录操作5、容灾机制:备份6、权限划分:多用户管理7、索引模块:提高数据查询效率8、锁机制:使数据支持并发设计...

2019-06-09 17:23:59 1752

原创 HTTP常见面试题

HTTP(超文本传输协议)一、HTTP的主要特点1、支持客户/服务器模式2、简单快速3、灵活4、无连接(传输完后断开连接,自1.0版本后改为需要等待一段时间,从1.1版本引入了keep alive长连接)5、无状态(协议对事务处理无记忆,后面处理必须重传)常考面试题1:在浏览器地址栏键入URL,按下回车会经历的流程1、浏览器会根据URL逐层查询DNS(域名系统是互联网的一项服务。它...

2019-06-09 16:36:14 378

原创 TCP与UDP的比较

1、面向连接比较TCP是面向连接的,UDP是无连接的。2、可靠性TCP会通过三次握手和四次挥手来建立连接和断开连接,比较可靠。但是UDP是无连接的,所以相对不可靠3、传输速率TCP需要对数据进行分段,然后进行传输,,UDP不需要对数据进行分段,当要发送数据时,抓取应用的数据,并尽可能快的丢到网上区。UDP传输速率高,适用于视频或者多人在线游戏4、TCP是重量级,TCP报文20字节,UD...

2019-06-09 11:50:48 174

原创 TCP四次挥手

TCP断开连接需要四次挥手断开操作可以由客户端或者服务器触发,通俗的解释为:1、客户端A发送消息说“我要断开连接”2、服务器B接收到A发送的消息回复“好的,我收到消息了,你先等一下,我这儿的文件还没发完”3、当服务器B发送完数据后,会发送“好了,我要发送的数据发完了,我们可以断开连接了,你确认一下”。4、客户端A收到B的消息后会发送断开连接请求。FIN:finish标志,用于释放连接。...

2019-06-08 23:36:36 98

原创 TCP三次握手

TCP三次握手的目的是为了让客户端与服务器建立连接,且TCP是全双工的。通俗解释为:为了确保A、B之间能够建立相互通信的通道,1、客户端A先向服务器B发送消息说“我想建立连接”;2、服务器B收到A发送的连接请求,并回复信息说“我收到了你发过来的请求,我给你发个消息,你看看能不能接收到”;3、客户端A收到了消息需要在向B发送一个确认消息“我能收到你发的消息”。之后就建立了连接的过程,双方可以进行通信...

2019-06-08 23:24:05 166

原创 IOS七层模型

IOS七层协议:从下到上:物理层:传输的是比特流,网卡位于这层。数据链路层:本层传输的是帧;本层主要定义了如何格式化数据,错误检测。交换机位于本层网络层:本层传输的是数据包,路由器位于本层。本层协议是IP协议(Internet Protocol Address),主要功能是路由选择最短路径,将数据包从发送端路由到接收端传输层:协议有TCP(传输控制协议)/UDP(用户数据报协议);主要是...

2019-06-08 23:00:35 8048

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除