- 博客(53)
- 收藏
- 关注
原创 Qt开机自启绕过桌面
当前ubuntu版本自带的图形服务有WaylandEnable(这是最Ubuntu 17.10版本带的额外的图形服务),若有其他的图形服务也需禁用。该模式可通过修改相关配置文件禁用,但是由于该功能是系统层面的,删除相关文件或禁用后依然可能通过其它行为进入该模式。ps:若不禁用,用户可在登录界面,不选择选择指定的图形服务(X.Org),而是其它的图形服务。ps:该目录(xsessions)是系统启动桌面时,会自动调用内会话配置文件的目录。ps:不拷贝其实也行,但是就想改回原来的桌面启动可能就会麻烦点!
2024-04-28 14:21:28
512
原创 服务器架构演进史
在进行后端的学习过程中,有时由于个人的学习广度的局限导致无法从全局理解一些概念,服务端的架构的演进历史,同时列举出每个演进阶段会遇到的相关技术,让对架构的演进有一个整体的认知。并帮助读者与本人提高在学习路上的能见度。
2024-01-12 19:07:29
1296
原创 Builder建造者模式(对象创建)
将一个复杂对象的构建与其表示相分离,使得同样的构建过程(稳定)可以创建不同的表示(变化)。——《设计模式》GoF
2024-01-02 23:03:09
672
原创 Abstract Factory抽象工厂模式(对象创建)
提供一个接口,让该接口负责创建一系列”相关或者相互依赖的对象“,无需指定它们具体的类。——《设计模式》GoF
2023-12-30 14:08:39
699
原创 Factory Method工厂模式(对象创建)
定义一个用于创建对象的接口,让子类决定实例化哪一个类。Factory Method使得一个类的实例化延迟(目的:解耦,手段:虚函数)到子类。 ——《设计模式》GoF
2023-12-29 21:27:35
636
原创 Decorator装饰模式(单一责任)
动态(组合)地给一个对象增加一些额外的职责。就增加功能而言,Decorator模式比生成子类(继承)更为灵活(消除重复代码 & 减少子类个数)。 ——《设计模式》GoF
2023-12-26 16:08:59
493
原创 Observer观察者模式(组件协作)
定义对象间的一种一对多(变化)的依赖关系,以便当一个对象(Subject)的状态发生改变时,所有依赖于它的对象都得到通知并自动更新。——《 设计模式》 GoF
2023-12-25 17:41:42
607
原创 Strateg策略模式(组件协作)
定义一系列算法,把它们一个个封装起来,并且使它们可互相替换(变化)。该模式使得算法可独立于使用它的客户程序(稳定)而变化(扩展,子类化)。——《设计模式》 GoF
2023-12-24 16:22:58
1088
原创 数据库如何储存和管理数据的?
众所周知,数据库就是一个将各类数据,以表格的形式存储的,但是看似如此简单的功能它是真的简单吗?我们和直接使用简单的Excel建立的表格有区别吗?如果有在哪里?
2023-10-17 16:36:20
292
原创 简单认识OSI(计算机网络分层)七层模型
学校上课讲的太笼统啥也不是,自己学的太玄学似懂非懂突然在看到了一篇公众文文章。文章从初始到现在,步步为营的遇到一个解决一个前人的问题,有了细致入微的讲述,把之前学的死东西都连起来了。
2023-05-29 23:13:02
2411
原创 单例模式——懒汉与饿汉
设计模式是在不断编程中前人所总结的“兵书”,将可能面对的大部分编程需求归纳总结为固定的模式,而单例模式则是最常见的设计模式之一。
2023-05-22 18:14:20
445
原创 可重入函数 VS 线程安全
在多线程的初步学习中,有两个概念时常被一起提到,是否可重入与线程是否安全,由于这两者有一定的关联性,就有部分的同学将其混为一谈。
2023-05-17 11:02:31
389
原创 多线程的最最简单的基本了解
在学习完常规的语法后,我们将进入下一步的学习,而多线程则是被大多数人认为的下一步的学习目标,因为在有了基础的语法大框架后我们都有了对编程的一个基本的认知,而多线程则是开始有了一定的深度。
2023-05-17 10:13:09
531
原创 lambda表达式
一般来说函数是承担着需求实现的重要内聚的组件,而函数内部的回调函数又达到解耦的作用,在对于后期的维护修改和他人的阅读都起到了积极的作用。
2023-05-07 16:07:16
578
原创 左值引用与右值引用
(左值)引用作为指针的非完全替代品,不仅降低了用户的编写难度,又由于其直接作为别名的特点,不用申请新空间去保存由于赋值、函数返回等引起的不必要的拷贝中产生的临时变量,而提升了效率。
2023-05-05 16:59:52
822
原创 (IPC)进程间通信的常用的两种方式——管道、共享内存
众所周知,不同的进程之间,在正常情况下,由于其拥有独立的PCB、上下文等原因,每个进程都是独立且互不干扰,这不仅保证了进程的安全,也降低了OS对于进程的管理成本。但是通常情况下,一个需求或项目将会被多个进程分解成小板块的并发或串行进行,以达到提高效率、降低管理成本、提高开发速度的目的,这就带来的问题是原来进程间的互不干扰,反而成为了进程间的墙壁,但是直接打开墙壁又是不可取的,所以进程通信就由此而生了!
2023-04-20 19:59:46
1151
原创 解析hash(散列)数据结构
在学习完后,我们来到了这里hash,首先我们要有一个基础的认知——哈希和map与set的的差别区别:前者内部的元素没有序,而后者有序,其它的都相同,这里我们可以通过STL标准库对应的unordered_map和unordered_set的两个名字就能看出,那。
2023-04-11 16:53:52
1413
原创 平衡搜索二叉树之红黑树(拒绝死记硬背,拥抱理解记忆)
在了解完平衡搜索二叉树的优势和应用后,我们学习了AVL树这种方案来实现它,但在前人们的不断使用和开辟,另一种更优的方案横空出世——红黑树。
2023-03-21 19:30:11
2217
3
原创 平衡搜索二叉树之AVL树解析
树这个神奇的结构,由于其带有数学中指数增长的性质,再给予其一些特殊的性质后,被广泛应用于存储和搜索等苦力活,今天我们来学习用来搜索二叉树中的AVL树是如何实现高效的搜索功能的。
2023-03-14 23:16:33
943
原创 多态与虚(函数)表
续接上回(继承),我们了解了继承是如何通过虚基表,来解决派生类和父类有相同的成员变量的情况,但是类和对象中可不只有成员变量,如果成员函数也有同名,更或者如果我们想在访问不同情况(类)但是相同函数名时,根据不同类满足不同需求。就如:我们去买票,根据不同年龄给出不一样的优惠,他们都是游客的类,不同的年龄由游客派生出不同年龄游客的类,但是我们只有一个“卖票”这一个接口,那如何实现呢
2023-03-09 10:21:03
503
原创 库到底是个啥?为啥要链接,链接库的本质又是个啥?
当你勤勤恳恳完成需求后,要交付你的成果时,你突然发现了一个问题,如果直接把源代码给乙方,他就可以直接进入你的代码,然后狠狠的学习再“借鉴”,甚至修改,你的头发的产物就被别人盗取了。这该如何是好?
2023-03-04 16:54:19
1813
1
原创 随笔水文——打开文件后会发生什么???
文件操作,这个熟悉而又陌生的词汇。在我们在图形化的电脑上,不断的双击打开很多不同的文件,且不关闭,你是否会好奇,OS它是如何打开管理这些不同的文件呢?在不同的代码语言中,都会有文件操作的库函数来提供使用,它们的功能相仿,会不会有什么联系呢?
2023-02-25 18:37:38
294
原创 类中承上启下的角色——继承
在面向对象编程时,我们通常将我们的需求实例化相关的类对象,在碰到需要处理大量相同的对象或相似的操作时,我们引入了类、函数和模板等标准化的功能,虽然我们可以通过模板等手段来提高上述功能编写时的泛型,但是还有一些其它的情况。
2023-02-12 23:12:24
263
原创 适配器与仿函数
在学习完类和对象后,我们已经初步感受到了面向对象的魅力了,经可能的将所有过程将其实例化、对象化再提供相应的、泛型的接口来统一的使用与管理,这次我们来进一步的体会这句话的含义。
2023-02-09 16:20:12
196
原创 谈谈链表与数组的区别
在学习完list和vector这两个运用最广泛的容器后我们发现这两个容器有许多相似的用法,甚至在大多时候(有时候不行,后文会提到)这2个容器能直接相互替换,此时我们可能会有些疑问,这么多重复的内容为啥不能把这2个容器相互借鉴一下,直接把搞成一个容器呢?
2023-01-23 19:43:19
932
原创 浅浅认识的环境变量
在写代码时,我们都会写一个叫main()的主函数来作为我们程序的入口,也是提供给OS运行的接口,但在有些时候不同的环境下,相同的程序会有不同的结果,如:普通用户 和 ROOT用户在运行一些高危操作时,往往只有后者才能运行、在Linux下,pwd(查看当前路径)命令下,总会得到当前的正确路径,这些都是如何实现的呢 ?
2023-01-07 23:43:32
344
原创 为啥有时迭代器用一下它就需要更新一下呢(迭代器失效)?
为了规范STL中不同容器的统一的 访问方式,这里大佬们设计了 迭代器 来去替代C语言中指针的地位(在部分容器和部分平台上甚至直接就是指针的重命名中),所以迭代器的行为和指针的行为十分相似,但更加强大。但有时这个灵活的小东西,在你删一个或者插入一个元素后,再用时它居然报错了,而且你看了后也没有语法错误,这个东西是被好几代大佬不断优化,所以一定是自己哪里写错了,那这是怎么回事呢?
2023-01-02 19:59:42
440
原创 STL—— string
C语言中,字符串是以'\0'结尾的一些字符的集合,为了操作方便,C标准库中提供了一些str系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。而string作为常见的char数组的面向对象的设计也就出呼之欲出了。
2022-12-04 09:40:54
632
原创 C++中的标准化工厂—— 模板
众所周知,C++是基于C语言的编写,所以它也继承了众多C的特性(当然也包括部分缺点),且基于它们进行改良和优化,这篇文章要讲的是模板,这算的上是C++基于C的一个“懒人利器”
2022-11-08 23:16:08
497
1
原创 C++与C的内存管理优化和再封装
C/C++的内存管理是一个老生常谈的问题,无论是才学不久的初学者,还是码了不少代码的老手对于这个方面的知识的探究都是必不可少的,这个这个知识是作为一根线,将代码的实现、编译器的运行、还是电脑对于内存的使用和保存等众多的计算机相关知识链接在一起,虽然这可能不会让你的代码能力提升一个台阶,但是这可以让你对于内存对于代码的运行有一个更好的认知,更加可以让你明白部分编译未错(语法错误),但运行崩溃的原因。
2022-11-04 13:34:49
578
原创 Linux上的文件权限管理
不同于平常使用的window操作系统,在Linux系统下,常常会有很多人共同使用一台机器(当然window也可以,但是不常用),这就引发了一些问题,在同一台机器上存在不同的用户的信息,如果他们的信息能相互访问、修改、运行、甚至删除,很明显这是一种很危险的行为。 这时候有人就捣鼓出了权限的方法来管理同一台机器上的信息管理。
2022-10-25 16:54:29
1260
原创 类——构造函数之初始化列表
在我们已经基本了解了类的由来,和其六大基本默认函数后,此时我们再回过头来看,其中的构造函数。在前文已经说过构造函数的作用为初始化成员变量,但是真的就这么简单了吗?如果成员变量为常变量(const)那还能构造成功吗?在构造函数体内部,我们直接可以用类的成员变量来赋值,但是在调用构造函数前是没有这个类对象的,既然都没有这个类对象,哪前面我们直接用来赋值的类中的成员变量是哪里来的?
2022-10-23 13:21:22
5866
1
原创 类和对象之六大基础函数
续接前文,C++的类和对象,是基于C语言结构体(struct)的优化和功能扩充,今天我们介绍的中的六大基本函数,这六位大爷对应着其C++编写者对于在C语言的结构体使用时常用功能的封装,例如:初始化、销毁等,对于使用者来说绝对是一大利器,但对于初学者来说,它细而繁多且看似没有逻辑的规则让人头脑捉急。
2022-10-15 14:59:16
1946
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人