HashMap从零分析源码


HashMap全解 1. HashCode为什么选择31作为乘数 HashCode是32位的有符号数 public int hashCode() { int h = hash; if (h == 0 && value.length > 0) { char val[]

ArrayList源码分析


ArrayList源码分析和队列(数组为基础的数据结构) 数组是一个经常使用的数组结构,存储形式一般分为顺序存储和链式存储,区别在于顺序存储占用一块连续内存空间,而链表是由一个个点组成。 这里我们详细分析一下ArrayList,及List的一个实现类,也是实际过程中使用较多。 ArrayList采用

大营销分布式系统--从零开始实现数据库分库分表组件


大营销分布式系统--从零开始实现数据库分库分表组件 随着业务的发展,营销系统的数据量和访问量会不断增加。单个数据库和表会成为系统的瓶颈,导致查询速度变慢、系统响应延迟增加,甚至可能引发数据库的崩溃。所以如何提高数据库的读写性能和扩展能力来处理不断增加的数据库请求和数据量成为一个问题。单个数据库和表物

大营销分布式系统--用户奖品记录列表优化


大营销分布式系统--用户奖品记录列表优化 作为大营销系统的用户奖品记录表,主要由两个场景会被使用,第一个场景即用户在抽奖结束之后查询自己获得的奖品,第二个场景即任务扫描机制对用户奖品表中还未发放的奖品进行定期发放(系统端、全表扫描)。 本文主要讨论在用户查询奖品的性能优化。 用户奖品表:(Id, U

Leetcode421周赛 (Mod处理)

算法 

Leetcode421周赛 (Mod处理) 第一题思路没错,但做太久了。第二题做完快没时间了,选了第二题类似的第四做(结果最后几个样例过不了, 第三题结束之后发现更加简单一点。本周很多题都是涉及到MoD处理。 第一题 3334. 数组的最大因子得分 简单来说就是分别求lcm和gcd的前缀和,后缀和,

Leetcode第420周赛

算法 

Leetcode第420周赛 第一题 3324. 出现在屏幕上的字符串序列 认真读题发现就是对于字符串的每一个字符依次从'a'增加到相同为止 class Solution { public List<String> stringSequence(String target) {

Leetcode第419周赛 溢出导致第三题GG

算法 

Leetcode第419周赛 溢出导致第三题GG 第一题 计算子数组的 x-sum I 老规矩,第一题直接暴力,截取每一个子数组,然后对子数组的字符存储,然后排序,只能过第一题。本质上这题应该是和滑动窗口有关。 class Solution { public int[] findXSum(i

Leetcode第418周赛

算法 

Leetcode第418周赛 第一题 连接二进制表示可形成的最大数值 因为数组的个数有限,直接将数字转为二进制字符串,通过数组的自定义排序方法进行排序(根据题意是拼接而不是二进制相加),最后将排序后的结果依次拼接,转为10进制。 class Solution { public int max

记录一次A100集群的存储崩溃


记录一次A100集群的存储崩溃 集群架构:整个A100集群由4台8卡A100、一台CPU服务器、一个存储阵列(大概200T)组成。存储阵列是通过一个万兆交换机连接到这个Node00管理节点。其它计算设备都是走的管理节点的映射。 前两天新到一台服务器,准备并入这个集群里面。 供应商需要安装一个软件进行

IB网卡驱动安装及其IP配置


IB网卡驱动安装及其IP配置 正常流程 服务器配置网络,由于机房不能连接外网只能通过内部网络做代理。 设置http代理 export http_proxy=http://x.x.x.x:x export https_proxy=http://x.x.x.x:x 设置apt代理 sudo nano