- 博客(40)
- 收藏
- 关注
原创 LRU CaChe(内存替换算法)
LRU是Least Recently Used的缩写,意思是最近最少使用,它是一种Cache替换算法。 什么是Cache?狭义的Cache指的是位于CPU和主存间的快速RAM,通常它不像系统主存那样使用DRAM技术,而使用昂贵但较快速的SRAM技术。广义上的Cache指的是位于速度相差较大的两种硬件之间,用于协调两者数据传输速度差异的结构。除了CPU与主存之间有Cache,内存与硬盘之间也有Cache,乃至在硬盘与网络之间也有某种意义上的Cache── 称为Internet临时文件夹或网络内容缓存等。
2024-07-16 11:00:00
1571
原创 布隆过滤器
布隆过滤器是由布隆(Burton Howard Bloom)在1970年提出的 一种紧凑型的、比较巧妙的概率型数据结构,特点是高效地插入和查询,可以用来告诉你“某样东西一定不存在或者可能存在”,它是用多个哈希函数,将一个数据映射到位图结构中。此种方式不仅可以提升查询效率,也可以节省大量的内存空间。
2024-07-15 21:34:17
1127
原创 位图——哈希思想的应用
所谓位图,就是用每一个比特位来存放某种状态(0或1),是一种哈希思想的应用,适用于海量数据,整数,数据无重复的场景。通常是用来判断某个数据存不存在的。(注意比特位访问的顺序,下图是使用byte[]数组来充当位图,它的第一位是第一个byte的第一个比特位也就是byte[0]最右边的比特位
2024-07-15 21:30:47
1072
原创 图解红黑树插入操作
红黑树,是一种二叉搜索树,但在每个结点上增加一个存储位表示结点的颜色,可以是Red或Black。 通过对任何 一条从根到叶子的路径上各个结点着色方式的限制,红黑树确保没有一条路径会比其他路径长出俩倍,因而是接近 平衡的。
2024-07-11 16:10:46
742
原创 递归、搜索与回溯算法 2024.7.4-24.7.9
文章包括专题介绍、递归、二叉树中的深搜、穷举&暴搜&深搜&回溯&剪枝、综合练习、FloodFill算法、记忆化搜索。
2024-07-09 12:46:13
1162
原创 动态规划精品课 2024.6.26-24.7.3
十种动态规划常见题型(含题目链接)斐波那契数列模型、路径问题、简单多状态dp问题、子数组、子序列、回文串、两个数组的dp问题、01背包、完全背包、二维费用的背包问题。还有一些递归解法的题目可以转化成dp问题。
2024-07-03 18:00:24
1263
原创 贪心算法精品课 2024.6.21-24.6.25
29道力扣贪心贪心算法题目:柠檬水找零、将数组和减半的最少操作次数、最大数、摆动序列、最长递增子序列、递增的三元子序列、最长连续递增序列、买卖股票的最佳时机、买卖股票的最佳时机 II、K 次取反后最大化的数组和、按身高排序、优势洗牌、最长回文串、增减字符串匹配、分发饼干、最优除法、跳跃游戏 II、跳跃游戏、加油站、单调递增的数字等题目。942. 增减字符串匹配455. 分发饼干553. 最优除法45. 跳跃游戏 II55. 跳跃游戏、加油站
2024-06-25 21:42:13
1054
原创 优选算法刷题笔记 2024.6.10-24.6.20
包含十八中常见算法。双指针、滑动窗口、前缀和、位运算、模拟、分治、链表、哈希表、字符串、栈、队列、BFS、最短路径、多源最短路径、拓扑排序
2024-06-20 18:30:35
692
原创 如何理解泛型擦除机制的兼容性
通过擦除机制,Java泛型的引入没有强迫开发者或用户升级他们的JVM环境就可以使用泛型带来的优势,同时保持了与之前版本的代码的兼容性。这种设计使得开发者可以逐步采用新特性,而不必担心既有应用和库的兼容性问题。这是Java语言设计中非常精妙的一部分,它极大地帮助了Java在工业界的长期发展和应用。
2024-04-19 13:07:30
427
原创 利用私有构造器或者枚举类型强化Singleton属性
effective java读书笔记:第二章第三目,主要是介绍了使用枚举类型强化Singleton属性
2024-04-03 21:04:25
405
原创 Redis主从复制
本文介绍redis集群的主从模式,主从复制主要有三种复制方式:全量复制、部分复制、实时复制。另外还简单介绍了集群的拓扑结构。
2024-04-02 01:26:51
886
1
原创 Redis事务
redis中的事务并不像MySQL那样复杂,因为是单线程所以不牵扯到事务的隔离。本文介绍了MULTI、EXEC、DISCARD 、WATCH以及UNWATCH命令。更高级的redis事务可以使用lua脚本完成。
2024-03-30 19:57:27
565
原创 当构造器参数较多时考虑用生成器
Effective Java第二章第二目:生成器当类的属性较多时,构造方法的写法就会很臃肿,本文由易到难介绍了三种方法:重叠构造器、JavaBeen模式、生成器模式。主要以代码示例为主,读者可自行体会。
2024-03-30 01:29:09
214
原创 Redis渐进式遍历与数据库管理
本文介绍了渐进式遍历以及redis的数据库渐进式遍历:防止遍历操执行的时间过长造成阻塞,遍历的时候存在key的增删改查所以遍历结果存在一些漏查重查。redis数据库:一共提供了16个数据库编号0-15,每个数据库都相互独立
2024-03-25 13:26:47
401
原创 Redis中特殊场景的数据类型(Streams、Geospatial indexes、Bitmaps、Bitfields、HyperLogLog)
Redis中特殊场景的数据类型(Streams、Geospatial indexes、Bitmaps、Bitfields、HyperLogLog)介绍了这些数据结构的使用场景和相关命令。
2024-03-25 12:44:28
1044
原创 Redis中zset数据类型的相关命令、编码方式和应用场景
Redis中zset数据类型的相关命令、编码方式和应用场景相关命令:zadd,zrange,zcard,zcount,zpopmax,zpopmin,zscore,zrem,zincrby,,集合运算编码方式:ziplist、skiplist应用场景:排行榜系统
2024-03-24 14:53:22
1294
1
原创 Redis中set数据类型的相关命令、编码方式和应用场景
本文介绍了redis中set数据类型的相关命令、编码方式以及应用场景;相关命令:sadd、smembers、sismember、scard、spop、smove、srem、交集、并集、差集;编码方式:intset、hashtable;应用场景:保存标签、共同好友、统计UV;
2024-03-23 09:00:00
632
原创 Redis中list数据类型的相关命令、编码方式和应用场景
Redis中list数据类型的相关命令:rpush、lpush、rpushx、lpushx、linsert、lrange、lindex、llen、lpop、rpop、lrem编码方式:quicklist(ziplist、limkedlist)应用场景:消息队列,存储博文列表进行分页查询
2024-03-22 11:19:21
876
1
原创 Redis中hash数据类型的相关命令、编码方式和应用场景
本文介绍了Redis中hash数据类型的相关名,我们不仅要关注命令的用法,还要关注这些命令的时间复杂度,已经错误使用所带来的隐患,不同数据类型的命令有着类似的使用规律,在学习了String数据类型的相关命令后,在上手hash的命令就简单很多了。除此之外,还减少了hash类型的实际编码方式ziplist以及hashtable,和常见的应用场景缓存结构化的数据。
2024-03-21 00:01:00
685
1
原创 Redis中String数据类型的编码方式 & String的应用场景
Redis中String数据类型的实际编码方式有三种int、embstr和raw,redis会自适应的选择其中之一。另外文章还列举了一些使用string数据类型的场景:计数、存储session信息、手机验证码。
2024-03-20 22:58:24
589
1
原创 Redis中String数据类型的相关命令
Redis不仅有可以搭配任意数据类型使用的全局命令,还有针对不同数据类型使用的命令,本文介绍的是String数据类型相关操作的Redis命令。
2024-03-19 17:53:22
990
1
原创 Redis的单线程模型,以及Redis为什么这么快!!!
Redis的单线程模型保证了redis不会出现线程安全问题但也会有一定的弊端;redis速度快的四大原因,经典面试题;浅谈IO多路复用机制;
2024-03-19 12:07:41
206
1
原创 Redis的数据类型和编码方式
Redis的数据类型和编码方式。Redis对所支持的数据类型做了自适应的优化,同一种数据类型可能采用不同数据结构来实现Redis会自动识别该用哪一种数据结构来实现该数据类型,也就是实际的编码方式。
2024-03-19 11:24:41
404
1
原创 Redis通用命令 & key的过期删除策略
Redis全局命令(set/get/keys/exists/del/expire/pexpire/ttl/type)Redis中key的删除策略
2024-03-18 16:17:16
1491
原创 认识Redis是什么?能干什么?Redis特性以及应用场景
官网进行了详细的自我介绍Redis是一个在内存中存储数据的中间件,用作数据库,用作数据缓存,在分布式系统中大展拳脚。
2024-03-17 23:29:29
778
1
原创 Ubuntu安装Redis并启动
简单介绍Ubuntu安装redis和一些相关命令,安装/启动/停止/重启/查看状态/产看进程/连接服务等命令以及修改配置文件
2024-03-17 20:24:05
578
1
原创 本地Java项目如何移动位置!
新建的项目放错位置了,我想要把demo项目移动到javacode文件夹,该怎么办呢!PS:如果是maven项目,第一次移动还需要重建项目,根据页面提示操作即可!PS:千万不敢直接移动文件夹!
2023-11-02 09:59:39
176
1
原创 计算机系统基础
test.c 预处理得到test.itest.i编译得到汇编代码test.c通过汇编命令gcc -c test.s -o test.o生成可重定位的目标代码,test.o是一个二进制文件(机器指令表示的文件),想要看这个文件需要对其进行反汇编 objdump -d test.oC 语言是一种高级编程语言,它使用人类可读的语法和结构来编写程序。但计算机不能直接理解 C 语言代码,需要将其编译成机器指令才能在计算机上运行。编译器是将 C 语言代码转换为机器指令的软件。
2023-06-25 19:54:02
431
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人