- 博客(19)
- 收藏
- 关注
原创 Redis持久化机制
always:每次写操作后立即刷新到磁盘,数据安全性最高,但性能最差。everysec:每秒刷新一次到磁盘,性能和数据安全性平衡。no:依赖操作系统的刷新机制,性能最好,但数据安全性最低。默认是everysec。AOF的重写机制。
2025-03-13 02:40:36
764
原创 STL——string剖析
引用计数:用来记录资源使用者的个数。在构造时,将资源的计数给成1,每增加一个对象使用该资源,就给 计数增加1,当某个对象被销毁时,先给该计数减1,然后再检查是否需要释放资源,如果计数为1,说明该 对象时资源的最后一个使用者,将该资源释放;这里参数就不展开讲了,了解了前面的函数,其实会对字符串参数有个大概的了解,如果要指定位置,通常用下标和迭代器,指定字符串长度有len,指定字符有c,指定字符的个数有n,指定C风格字符串有s,指定string类型有str,这里的i1、i2和前面的first和last差不多。
2024-12-11 15:42:38
739
原创 Linux——gcc编译过程详解与ACM时间和进度条的制作
但是这样就会引申出一个问题,我们在链接阶段,实际上就是将.o文件链接到一起,可以每次我们修改代码,并不一定所有的源代码文件都会修改,那么那些没有修改过的源文件最终预编译编译汇编形成的.o文件和之前完全一样,这样链接时就会造成很多不必要的开销。所以,当编译器在进行编译时,如果检查到源代码文件的修改时间比.o文件的修改时间要早,那么就会重新编译源代码文件形成新的.o文件,反之则不会重新编译,使用修改过的.o文件和没修改的.o文件链接生成可执行文件,大大节省了时间。
2024-11-11 19:45:23
1067
原创 Linux——Shell的运行原理和Linux文件权限
这是一个注释1. 什么是shell2. 为什么要有shell3. shell的运行原理。
2024-11-05 09:45:21
1045
1
原创 Linux——Linux基础指令
比 more 更强大的分页器,支持前后翻页和搜索。1:移动文件或目录(前提是目标文件或目录不存在)。:重命名文件或目录(前提是目标文件或目录存在)。::显示系统上当前登录的用户及其相关信息。:显示网络连接、路由表和网络接口统计信息。:统计文件的行数、字数和字节数。:显示当前工作目录的完整路径。:列出目录中的文件和子目录。:显示或设置系统日期和时间。:在目录层次结构中搜索文件。:显示系统中正在运行的进程。:配置或显示网络接口信息。:显示当前用户的用户名。:更新现有文件的时间戳。:查找可执行文件的位置。
2024-11-05 09:35:32
906
原创 深剖STL——哈希表(内含unordered_map和unordered_set模拟实现)
哈希(Hash)是指将任意长度的输入通过哈希函数(Hash Function)转换为固定长度的输出的过程。哈希函数可以将输入数据映射为较短的固定长度的值,通常用一串数字和字母来表示,这串值就被称为哈希值或者哈希码。输入相同的数据经过哈希函数得到的哈希值是唯一确定的。即使输入数据只有微小的改动,得到的哈希值也会发生很大的变化。无法从哈希值中逆向推导出原始的输入数据。
2024-03-26 16:47:49
1867
原创 Linux篇——文件操作与文件fd
File是C语言封装的一个结构体,里面包含了文件的一些属性,其中就有我们之前提到的fd,还有哪些属性,这里不做描述。
2024-03-23 12:50:31
2253
2
原创 Linux篇——初识进程
C语言写的库函数,对系统调用接口进行包装,降低了操作系统的使用成本,不需要用户关心在哪个操作系统下,只需要根据需求使用对应的接口(库函数),就可以对操作系统进行操作,这就是为什么C语言具有跨平台性,可移植性。,引入了内存插入到输入设备和运算器的中间,输入设备输入的数据,都要先预加载到内存当中,再由内存加载到运算器当中,运算器对数据进行处理完后,再存储到内存中,由内存加载到输出设备上。内存的引入,使得计算机的效率问题取决于内存效率为主,变成了软件问题,取决于操作系统写的好不好,能不能高效的利用内存。
2024-03-22 00:26:57
646
1
原创 算术表达式的前缀、中缀、后缀表达式
比如 + * 2 + 4 5 6,我们找到最后一个操作符+,令最近的两个操作数当它的操作数,也就是4+5,表达式求出值是9,那么我们接下来计算的时候就要把4+5整体当成一个等同于9的操作数,接着下一个操作符是*,取最近两个操作数,也就是4+5,2,(4+5) *2=18,该表达式也要看做一个操作数,下一个操作符是+,取最近两个操作符,即(4+5) *2,6,也就是(4+5) *2+6=108,因此这个前缀表达式的值是108。将前缀表达式反转,+ * 2 + 4 5 6就是我们最后求得的前缀表达式。
2024-03-19 22:24:15
1444
1
原创 数据结构:Queue队列
队列:数据结构线性表的一种,它与栈不同,栈是先进后出,而队列是先进先出,在队尾入列,在队头出列。队头(head):队列中出队列的一端队尾(tail):队列中插入队列的一端。
2023-09-11 23:03:01
328
1
原创 C语言实现单链表的增删查改(数据结构基础)
👀👀本文录入《C语言》专栏,是数据结构的基础链表的一种😊😊其他专栏:《java》,《C++》😘😘内容省流:用C语言学习单链表的增删查改。
2023-08-02 21:23:42
1140
4
原创 C语言实现顺序表
1.2 SeqList.c1.3 test.c二、顺序表的实现2.1 顺序表创建一个顺序表结构体,成员包含顺序表地址、长度、大小,用于创建顺序表变量。 将顺序表变量的地址传参,通过指针接收对顺序表的顺序表数组初始化为空,长度为0,大小为0。同样传地址,要先断言指针是否为空,不然会出异常。然后判断顺序表大小是否为0,为0则代表顺序表中没有有效元素,打印提示,并返回函数,如果大于0,则有元素,从下标0开始,打印size个顺序表元素,并用空格相隔。当我们结束程序
2023-07-26 23:47:19
2531
16
原创 算法复杂度《C++篇》
一、算法是什么本文录入《C++》专栏,本专栏根据博主自身所积累的学习经历,针对大学生初学者。其他专栏:《java》,《C语言》内容省流:对函数算法复杂度的详解,C++入门必学一、算法是什么算法就是一个定义良好的计算过程,他取一个或一组的值作为输入,并产生一个或一组值作为输出。简单来说算法就是一系列的计算过程,是程序员抽象出来的,并将输入结果转化为输出结果。二、算法复杂度对于一个问题,例如求1+2+3+...+100的值,看起来很简单,但它有各种各样的解决方法,有的人会硬算,用循环相加得到。
2023-07-26 00:10:44
466
7
原创 C语言动态内存分布函数
这时我们可以用到动态内存开辟的函数malloc,我们使用malloc是在堆区上申请一个动态内存空间,malloc函数的返回值是返回这个空间的地址,根据这个地址,我们可以找到这块动态内存空间。3.当我们将动态内存的空间释放掉后,如果我们在释放之前将它赋给了指针,再释放掉这块空间后,这个指针将会变成野指针,所以我们在释放掉空间后,一定要将这个指针置空。realloc函数可以将我们动态申请的空间做灵活的调整,有时我们申请的空间过大,我们可以使用realloc函数使其变小,申请过小,我们可以使其变大。
2023-07-19 23:11:07
222
原创 包、import语句以及jar包的创建
我创建一个包名叫com.com,那么它的class字节码文件就必须放在"\com\com"的路径下,而源文件可以随意存放,假设该包的绝对路径为"C:\src\com\com",有一种简单的方式,就是把源文件放在"C:\com\com"的路径下,再来编译源文件。同上1.,也是遵循"包和源文件左对齐,父录一致"的规范,例如一个源文件"Trc.java",一个有包名类"test1.com.Ts",则他们的父录都得是"C:\src"(同上)。注:在包的名字前,要有关键字"package(包)","
2023-04-08 21:33:14
750
1
原创 Java类、构造方法、对象、对象引用
上文我们介绍了类,类中的变量以及方法可以看做是该类的基本属性,但是类是一个面向对象的一种数据类型,创建对象,其实就是以类为模版,创建一个实例分配类中的基本属性,用对象来引用类中的变量和方法。实际上,上面的写法并不是对对象的声明,而是对对象引用声明,对象引用相似于C语言的指针,是指向于对象,如果只是声明对象,对象引用并不知道要引用哪个对象,就像绳子不知道绑哪个气球。但如果只是创建了对象并分配给了变量而没有赋值给对象引用,虽然对象存在,但是对象引用无法引用该对象,直到给该引用赋值了一个对象。
2023-04-06 18:10:30
172
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人