自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++基础面试问题之const(非常重要!!!很考验基础!!!尤其是校招生,没有工程经验,尤其需要关注!!!)

小结:对于加了const关键字的变量,其定义时必须初始化,无论是const还是非const变量都可以对其进行初始化;而对于初始化了的const变量,不能再被赋值。考虑一个如下函数对它进行如下调用小结:可以看到,用int,const int,const int& ,auto类型的都能接收到,那在函数返回值前加const还有什么意义呢?在这里const是用于说明getNum返回的是一个const int,也就是函数的设计者希望不要改变函数的返回值,作为调用者,最好应该使用const int& 接收。看一下接

2024-04-09 10:27:30 372

原创 C++内存管理

从C++的内存分区谈起,简单比较堆和栈的区别;然后是内存分配和释放相关的new/delete,malloc/free的比较;再然后是内存的不合理分配或释放可能造成的问题(野指针,悬浮指针,内存泄漏等),以及为了避免这些问题的常用解决方案,也就是内存管理方面的手段(智能指针);最后是一些重要但是与计算机体系结构相关的问题,如内存对齐、乱序执行等。

2024-03-10 16:31:53 835

原创 C++基础

指针本身命名变量,有地址,可变,可以为空值;引用是变量的别名,必须初始化,从一而终不可变,不存在指向空值的引用。

2024-03-06 22:22:36 853

原创 Redis持久化(一)-------AOF

服务层的binlog也是通过追加的方式记录日志,称之为逻辑日志。引擎层根据选择的存储引擎不同,日志也是不同的,以InnoDB来说,有undo日志和redo日志,undo日志主要用来作数据回滚的,而redo日志支持故障恢复,称之为物理日志,redo日志和binlog配合(涉及到两阶段提交)可以实现持久化。重写机制的妙处在于,尽管某个键值对被多条写命令反复修改,最终也只需要根据这个「键值对」当前的最新状态,然后用一条命令去记录键值对,代替之前记录这个键值对的多条命令,这样就减少了 AOF 文件中的命令数量。

2024-01-20 16:08:29 1454

原创 MySQL事务隔离中的规则---以可重复读为例

然后事务A执行查询语句,版本[id=1,k=3,row trx_id=101]对事务A不可见,因为101等于高水位,对事务A而言是未开始的事务,版本[id=1,k=2,row trx_id=102]对A不可见,因为102大于高水位,版本[id=1,k=1,row trx_id=90]对A可见,因为90小于低水位,所以查出来k=1;事务A到事务C的事务ID分别为100, 101, 102,事务C最先执行update语句创建了一个版本[id=1,k=2,row trx_id=102],自动提交;

2024-01-15 20:55:06 1844

原创 单例模式的C++实现

逻辑上,双检查锁是没问题的,一旦m_instance不为空,多线程都可以访问它,但可惜的是编译器优化会reorder,也就是汇编代码的顺序和高级语言代码顺序不是完全一致的,比如,new的过程会先分配内存,再执行类的构造函数,假设在分配完内存后,进行了线程切换,此时m_instance不是nullptr,但m_instance代表的对象可能还没有构造好就被使用了。,在其它语言中,如Java中不用这么复杂,给m_instance加个volatile关键字就行了,VC下也可以,但不是跨平台的。

2024-01-15 16:46:00 1641

原创 Redis常用数据结构

因此,我们需要借助 Redis 对这些 Session 信息进行统一的存储和管理,这样无论请求发送到那台服务器,服务器都会去同一个 Redis 获取相关的 Session 信息,这样就解决了分布式系统下 Session 存储的问题。例如用户一的 Session 信息被存储在服务器一,但第二次访问时用户一被分配到服务器二,这个时候服务器并没有用户一的 Session 信息,就会出现需要重复登录的问题,问题在于分布式系统每次会把请求随机分配到不同的服务器。应用场景:排序场景,比如排行榜、电话和姓名排序等。

2024-01-12 20:47:58 893

原创 URL,HTTP请求包和响应包结构

【代码】URL,HTTP请求包和响应包结构。

2023-12-18 14:05:46 431

转载 第四章 Go内存管理(一):内存分配原理

数组中每个元素代表了一种class类型的span列表,每种class类型都有两组span列表,第一组列表中所表示的对象中包含了指针,第二组列表中所表示的对象不含有指针,这么做是为了提高GC扫描性能,对于不包含指针的span列表,没必要去扫描。有了管理内存的基本单位span,还要有个数据结构来管理span,这个数据结构叫mcentral,各线程需要内存时从mcentral管理的span中申请内存,为了避免多线程申请内存时不断的加锁,Golang为每个线程分配了span的缓存,这个缓存即是cache。

2023-11-26 21:55:16 79

原创 第四章 Lab4_assembly

执行make fs.img编译它,并在user/call.asm中生成可读的汇编版本。在call.asm中,没有对应的汇编代码来调用。6.在下面的代码中,“y=”之后将打印什么(注:答案不是一个特定的值)?,这个实验过程基本包含了在xv-6下增加文件后,更改声明及编译规则的一般步骤),通过。这次我们不直接看call.asm文件了,汇编代码的可读性是真难受,通过gdb来查看。第二个值是从a2寄存器读出来的,a2寄存器中是什么值打印出来的就是什么值。57616的大小端序是一样的,不用更改。

2023-11-08 16:49:15 79

原创 位运算常用操作

【代码】位运算常用操作。

2023-10-28 18:29:10 59

原创 C++在嵌入式系统程序设计中的使用

C++程序设计第25章笔记。

2023-10-28 16:37:29 374

原创 第二章 实验:实现trace系统调用

MIT 6.S081 实验2:实现trace系统调用

2023-10-23 15:19:34 577

原创 第一章 exec系统调用初探

接受两个参数,其中path指定可执行文件的位置(包括文件名),argv是字符串参数数组。如下例//标准输出会打印hello这个代码片段将调用程序替换为了参数列表为echo hello的/bin/echo程序运行,多数程序忽略参数数组中的第一个元素,它通常是程序名。exec系统调用定义在文件中,下面来看具体代码,大致分为如下几个部分。有很多细节现在无法深究,等到后面章节结束后再回来看。int i, off;begin_op();end_op();return -1;

2023-10-22 21:00:29 268 1

原创 第三章 xv-6内核地址空间

xv-6内核地址空间

2023-10-20 22:31:16 244 1

原创 预处理回文串

用一个二维数组g记录一个字符串中的任意子串是否是回文串。

2023-10-13 13:13:57 40

原创 精讲enable_shared_from_this

enable_shared_from_this是为了解决(两个非共享的shared_ptr指向同一个对象,未增加引用计数导对象被析构两次)。至于它的具体实现后文再说。有如下一个资源类我们用shared_ptr管理它生成的对象,这个资源类的成员函数getPtr的作用是。然后我们执行下面的测试程序。注:在vs2017中是触发了一个异常断点,实际上是重复释放了内存。从结果可知,。为什么会这样?通过创建了一个id=1的Obj对象,并用智能指针obj1管理它(),此时obj1中的引用计数为1;

2023-10-12 14:22:25 217

原创 堆排序模板

【代码】堆排序模板。

2023-09-05 22:14:11 63

原创 左值引用与右值引用

比较左值引用和右值引用

2023-04-28 19:11:30 120

原创 树状数组模版

【代码】树状数组模版。

2023-03-24 21:41:44 60

原创 环检测和拓扑排序

环检测和拓扑排序的DFS实现和BFS实现

2022-11-22 19:31:54 150

原创 通用字符串算法

通用字符串算法

2022-11-03 11:01:26 118

原创 单源最短路径

单源最短路径

2022-10-28 16:13:39 112

原创 单调栈模板

单调栈模板及应用

2022-10-28 12:48:22 191

原创 并查集及相关练习题

并查集介绍与实现

2022-10-26 17:02:32 157

原创 MySQL之运算符

运算符实操笔记

2022-10-22 13:50:45 171

原创 快排(quickSort)模板

快排模板记录

2022-10-19 12:49:08 390

原创 计算小写字母字符串最大达标子串长度

计算小写字母字符串最大达标子串长度。涉及知识点:哈希表,位运算

2022-09-15 19:55:35 149

原创 (三) InnoDB笔记之查询(B+树索引)

InnoDB之查询

2022-08-18 19:24:01 615

原创 (二)InnoDB笔记之数据页结构

InnoDB之数据页结构

2022-08-17 15:50:53 271

原创 (一)InnoDB笔记之记录结构

InnoDB行格式总结

2022-08-16 18:25:44 304

原创 字典树(Trie)小结

一种针对字符串进行维护的数据结构,字典树,顾名思义,是关于“字典”的一棵树。即:它是对于字典的一种存储方式(所以是一种数据结构而不是算法)。这个词典中的每个**“单词”就是从根节点出发一直到某一个目标节点的路径**,路径中每条边的字母连起来就是一个单词。例如:标橙色的节点是“目标节点“,即根节点到这个目标节点的路径上的所有字母构成了一个单词。...

2022-08-06 12:37:19 170 1

空空如也

空空如也

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

TA关注的人

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