自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

技术研究记录

目前,我在职业上的目标是成为一名优秀的软件工程师(2-sigma),一直在计算机互联网领域进行积累,广泛阅读学习,希望能成为一个有趣的人,喜欢羽毛球,游泳,慢跑,骑行,音乐,电影和纪录片。现在我在南昌大学(211)数学与计算机学院攻读硕士研究生。

  • 博客(22)
  • 收藏
  • 关注

原创 程序员的自我修养:大脑有效放松的方式

正确的脑放松方式应促进身心和谐,而错误的脑放松方式可能导致大脑过度负荷或被动消耗能量。

2024-08-19 21:28:58 404

原创 技术研究:Tomcat是如何打破双亲委派机制的实现应用程序的类库相互隔离

我们知道类加载的时候要确保唯一性的,但是总不能要求同一个类库在 Web 容器中只有一份吧?所以 Tomcat 就需要保证每个应用程序的类库都是相互隔离并独立的,这也是它为什么打破双亲委派机制的主要目的。

2024-08-18 17:39:05 158

原创 技术研究:Redis 实现消息队列

消息队列应用的三大需求是:1、消息保序;2、重复消息处理;3、消息可靠性保证。对应处理方案是:1、消息数据有序存取;2、消息数据具有全局唯一编号;3、消息数据在未消费完宕机恢复时继续消费,消费完成后被删除。

2024-08-13 18:22:26 786

原创 技术研究:Redis 数据结构与 I/O 模型

Redis之所以“快”,一方面因为它是内存数据库,所有操作都在内存上完成,内存的访问速度本来就快。另一方面则是因为高效的数据结构,使得操作键值效率较高。

2024-08-13 17:06:48 645

原创 经典算法题总结:数组常用技巧(双指针,二分查找和位运算)篇

所谓左右指针,就是两个指针相向而行或者相背而行;而所谓快慢指针,就是两个指针同向而行,一快一慢。

2024-08-12 17:33:03 553

原创 经典算法题总结:回溯,动态规划篇

动态规划(Dynamic Programming,简称DP)是一种通过将复杂问题分解为更小的子问题来解决问题的算法设计方法。与分治法类似,动态规划也将问题分解,但不同的是,动态规划适用于那些子问题重叠的情况,即同一子问题会被多次计算。通过记忆化技术(Memoization)或自底向上(Bottom-Up)的方式,动态规划可以显著减少计算量。

2024-08-11 14:58:43 719

原创 经典算法题总结:十大排序算法,外部排序和Google排序简介

快速排序(Quick Sort)是一种常用的高效的排序算法,它是一种基于比较的排序算法,利用了分治(自顶向下)的思想。快速排序的主要思想是选择一个基准元素,将数组分成两个子数组,一个子数组的所有元素都小于基准元素,另一个子数组的所有元素都大于基准元素,然后递归地对这两个子数组进行排序,最后将它们合并起来。

2024-08-10 18:34:49 605

原创 经典算法题总结:哈希表,栈,队列,堆篇

哈希表这种 key,value 的集合结构可以在算法中实现记录的功能,并实现 O(1) 复杂度的查找。

2024-08-10 18:14:45 306

原创 经典算法题总结:链表篇

链表的题目注意画图辅助思考防止断链;如果需要构造新的链表使用伪头结点(dummyHead)可以简化操作;双指针(快慢指针,左右指针)。

2024-08-10 18:00:46 653

原创 经典算法题总结:二叉树篇

无论使用哪种思维模式,你都需要思考:如果单独抽出一个二叉树节点,它需要做什么事情?需要在什么时候(前/中/后序位置)做?其他的节点不用你操心,递归函数会帮你在所有节点上执行相同的操作。

2024-08-10 17:35:25 762

原创 技术研究:MySQL 底层为什么要采用 B+ 树?讨论其他数据结构的可行性

MySQL 采用 B+ 树作为其主要的数据结构,而不是其他常见的数据结构如 B 树、哈希表或跳表。这样,当相近的数据紧接着被访问时,可以直接从缓存中读取,无需进行额外的磁盘 I/O 操作。B+ 树的所有数据都存储在叶子节点上,且所有叶子节点之间通过链表相连。综合考虑查询效率、磁盘 I/O 次数和范围查询性能,B+ 树在数据库系统中的表现优于其他数据结构。B+ 树具有更高的阶数(每个节点包含更多的子节点),这使得树的高度较低。较低的树高意味着在进行数据检索时,访问磁盘的次数减少,从而显著提高了检索效率。

2024-08-05 20:11:45 525

原创 HTTP/3 协议机制概述

HTTP/3是 HTTP 协议的最新版本,其最大的特点是放弃了传统的 TCP 协议,转而采用基于 UDP 的 QUIC 协议。QUIC(Quick UDP Internet Connections)是由 Google 开发的一种低延迟传输协议,旨在提高 Web 传输的性能和可靠性。

2024-08-05 17:17:40 980

原创 技术研究:MySQL InnoDB存储引擎索引数据结构与算法原理和优化概述

主要介绍了MySQL InnoDB存储引擎索引的数据结构与算法原理,以及优化概述。内容分为几个部分:MySQL架构概览、InnoDB存储引擎使用B+树的原因、B+树的Java代码实现及复杂度分析、InnoDB存储引擎中的B+树索引、B+树索引创建策略、慢查询优化实验、哈希表、全文索引、R树实现的空间索引,以及开源精神内涵。

2024-07-08 15:20:46 183 1

原创 网络层为什么要划分不同的自治系统(Autonomous Systems, AS)?

自治系统的划分使得网络拓扑变化的影响被局限在一个AS内部,减少了对整个互联网的影响。这样,网络收敛速度(即网络适应变化并恢复正常状态的速度)得到显著提高,确保了网络的稳定性和可靠性。这样可以将潜在的安全威胁局限在较小的范围内,减少对整个网络的风险。每个AS内部使用IGP进行路由,而在AS之间使用EGP进行路由,这样可以有效减少每个路由器需要处理的路由信息量。通过这种方式,可以提高路由器的效率和性能,减少路由表的规模。各个AS可以独立定义自己的路由策略、协议和安全措施,适应其特定的需求和目标。

2024-05-30 19:52:30 218

原创 TCP中的粘包,拆包问题产生原因及解决方案

粘包和拆包是 TCP 协议在数据传输中常见的问题,因为 TCP 是基于字节流传输的协议,不会维护消息或数据包的边界。

2024-05-23 16:33:19 336

原创 ChatGPT Plus 升级方案,提高编程学习效率

MMLU (Massive Multitask Language Understanding) 基准测试:GPT-3.5:准确率约为 70.1%。GPT-4:准确率约为 86.4%。HumanEval(编程任务基准测试):GPT-3.5:平均得分约为 48%。GPT-4:平均得分约为 67%。

2024-05-23 12:49:22 1110

原创 学习练习项目总结(BBS,shortlink,RPC)

学习的思路是从单体项目(BBS)到微服务分布式项目(shortlink)到自制底层框架项目(RPC),选取的都是 Github 开源项目,有很完善的代码和文档可供学习。

2024-05-22 16:14:52 929

原创 深入理解计算机系统(软硬件协同角度)

计算机是迄今为止最为复杂的一个系统之一,其作用在于按照确定的顺序完成认类预设好的指令,而这些预设好的指令就是我们所熟知的程序。

2024-05-02 22:09:31 1010 1

原创 Fibonacci数列,从递归,动态规划,滚动数组,矩阵快速幂到通项公式

Fibonacci数列是一个无限序列,其前两项为0和1,后续项由前两项相加得到。换句话说,第n个Fibonacci数(记为F(n))等于前两个Fibonacci数之和,即F(n) = F(n-1) + F(n-2),其中n大于等于2。

2024-04-30 17:04:18 270 1

原创 ChatGPT使用技巧总结和原理介绍

指令(Prompt)可以帮助大模型更好地理解用户意图,并输出更准确、有意义的文本内容。

2024-04-30 16:24:05 617

原创 8080 端口冲突 kill 相应进程反复重启问题

通过以下命令可以发现是哪个进程占用了端口,并查看该进程的存储位置,我这里的问题发现是 Zookeeper 在不断地重启,之前并没有自己安装过,想到 Kafka 之前的版本是依赖于 Zookeeper 的,便猜测是 Kafka 的问题,通过 brew list 命令查看了安装的目录发现了 Zookeeper,于是 brew install 命令卸载发现卸载失败 Kafka 有功能依赖,于是先卸载 Kafka,再卸载 Zookeeper 显式成功,问题解决。8080是一个用于显示进程信息的命令。-f。

2024-03-17 13:34:30 450

原创 Mac修改hosts文件加速Github访问

在Gitee上找到了一个项目,其中就有GitHub的IP-域名映射清单:https://gitee.com/klmahuaw/GitHub520,然后,我们将下面的内容复制添加到hosts文件下即可,打开文件 /etc/hosts,并赋予读写权限。

2024-03-05 14:29:55 762

空空如也

空空如也

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

TA关注的人

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