自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【半夜学习MySQL】表的内连接与外连接(含左外连接、右外连接详谈)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-15 23:38:17 426

原创 【半夜学习MySQL】复合查询(含多表查询、自连接、单行/多行子查询、多列子查询、合并查询等详解)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-15 20:22:32 953

原创 【半夜学习MySQL】内置函数(含日期、字符串、数学等函数常用用法介绍及示例详解)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-15 16:38:17 752

原创 【半夜学习MySQL】表的增删改查操作[下篇](含update、delete、truncate、插入查询结果、聚合函数、group by与having子句详谈)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-15 13:53:50 971

原创 【半夜学习MySQL】表的增删改查操作[上篇](含单行与多行数据插入、全列与指定列插入、select中的where子句与order by子句、limit用法详谈)

我们平时常说的数据库表的CURD指的就是:Create(创建)、Retrieve(读取)、Update(更新)、Delete(删除)。对于上述四种操作,将分为两篇文章介绍,本文将先行介绍Create(创建)和Retrieve(读取)操作。

2024-05-13 19:46:33 596

原创 【半夜学习MySQL】表的约束(含主键、唯一键、外键、zerofill、列描述、默认值、空属性详解)

上一篇文章中介绍了数据类型,数据类型已经对字段做出一定的约束。但是数据类型的约束很单一,需要一些额外的约束,更好的保证数据的合法性,让我们未来插入数据库表中的数据是复合预期的,保证数据在业务逻辑角度的正确性。本文将介绍表的其他约束,如null/not null、default、comment、zerofill、primary key、auto_increment、unique key等约束本质是通过技术手段,倒逼程序员,插入正确的数据,反过来,站在mysql的视角,凡是插入进来的数据,都是符合数据约束的。

2024-05-12 23:08:08 1169

原创 【半夜学习MySQL】数据库中的数据类型(含数值类型、文本二进制类型、时间类型、String类型详谈)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-11 13:01:43 843

原创 【半夜学习MySQL】表结构的操作(含表的创建、修改、删除操作,及如何查看表结构)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-10 18:37:14 921

原创 【半夜学习MySQL】库的操作(含库的创建、删除、修改、备份操作/查看mysql连接情况/字符集和校验规则详谈)

🏠关于专栏:半夜学习MySQL专栏用于记录MySQL数据相关内容。🎯每天努力一点点,技术变化看得见。

2024-05-10 11:57:08 1128

原创 【半夜学习MySQL】数据库概念详解&&探索数据库到底是如何存储的?

在计算机中,文件就足以存储数据了,为什么还要使用文件呢?由于文件有如下缺点,故需要使用数据库存储数据:●文件没有提供安全机制,数据安全没有保障;●文件查找数据时需要逐一遍历,效率过低,不利于数据的查询;且文件需要用户自定义数据存储格式等,不利于数据管理;●文件存在数据上限,不利于存储海量数据;●文件在程序中控制不方便;例如:C语言中需要打开关闭文件,移动文件读写指针等,操作十分繁琐。为了解决上述问题,用于管理数据的数据库就应运而生了,它能更有效地管理数据。磁盘内存。

2024-05-09 20:59:02 1027

原创 【从浅学到熟知Linux】线程概念与线程控制(含线程优缺点、pthread_create/pthread_exit/pthread_join等pthread线程库函数使用详解)

首先我们一起回顾一下之前学习的进程:在之前学习的单进程程序中,整个进程执行过程中只有一个执行流。【例子】单执行流之打开记事本当我们打开记事本时,进程执行IO操作,从磁盘将对应文件加载到内存,再将数据显式到显示器中,这整个过程只需要一个执行流就够了。【例子】迅雷实现边下载边播放一个程序启动时会创建一个进程,如果既要下载又要播放视频的话,一个执行流就显得力不从心了。也许你会想到,可以创建一个子进程,一个进程进行下载,一个进程执行播放视频的操作不就可以了吗?

2024-05-02 22:44:15 912

原创 【从浅学到熟知Linux】信号机制下篇=>信号集操作函数,信号捕捉,可重入函数、volatile关键字(含sigprocmask/sigpending、sigaction等详谈)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-05-01 21:34:22 963 1

原创 【从浅学到熟知Linux】信号机制上篇=>信号的概念与产生方式(含signal/raise/abort函数使用示例、core dump核心转储、软件与硬件异常信号详解)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-28 22:11:14 817

原创 【从浅学到熟知Linux】进程间通信之消息队列(含消息队列的特点,msgget/msgsnd/msgrcv/msgtrl接口使用详解、消息队列实现Client&Server)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-26 20:21:08 1475

原创 【从浅学到熟知Linux】进程间通信之共享内存(含共享内存挂接原理、ftok/shmget/shmat/shmdt/shmctl详解、共享内存实现Client&Server)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-24 21:14:21 929

原创 【从浅学到熟知Linux】进程间通信之命名管道(含mkfifo命令及函数调用示例、读写阻塞及ONOBLOCK详解、匿名与命名管道区别、命名管道实现Client&Server)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-23 20:59:56 838

原创 【从浅学到熟知Linux】进程间通信之匿名管道方式(进程间通信方式汇总、匿名管道的创建、匿名管道实现进程池详解)

什么是通信?所谓通信,就是要实现两个或多个进程实现数据层面的交互。而在操作系统中,为了保持进程的独立性,不允许其他进程访问某个进程的地址空间。正因为进程独立性的存在,导致进程的通信成本比较高。(因为A进程无法直接将通信数据写入B进程的地址空间中,而需要通过在两进程外部创建某个空间来实现进程的通信,故成本较高)。为什么进程需要通信呢?①数据传输:一个进程需要将它的数据发送给另一个进程;②资源共享:多个进程之间共享同样的数据,当前进程需要将共享数据发送给需要该数据的进程;

2024-04-22 22:23:06 748

原创 【从浅学到熟知Linux】基础IO第四弹=>动静态库(含第三方动静态的使用、自制动静态库、关于动静态库加载调用原理)

在Linux系统中,静态库以.a后缀结尾。我们可以进入/lib64目录下,使用查找当前目录下的静态库。↓↓↓静态库的名称需要去掉前面的lib及后缀.a。如下图所示,该静态库的名称为util↓↓↓程序在编译链接的时候把静态库库的代码链接到可执行文件中,程序运行的时候不再需要静态库。例如,我们需要使用libutil.a中的代码,在编译链接的时候,就将该库中的代码拷贝到待生成程序的代码中。

2024-04-21 22:46:41 994

原创 【从浅学到熟知Linux】基础IO第三弹=>文件系统介绍、软链接与硬链接(含磁盘结构、文件系统存储原理、软硬链接的创建、原理及应用详解)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-20 23:14:38 1916

原创 【从浅学到熟知Linux】基础IO第二弹=>输入输出重定向及其原理、用户级缓冲区、如何理解一切皆文件(含dup2系统调用详解)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-18 21:21:21 853

原创 【从浅学到熟知Linux】基础IO第一弹=>C语言文件操作接口、文件系统调用、文件描述符概念及分配规则

当我们没有指名open打开文件的路径时,则open将在当前路径下创建文件↓↓↓int main()close(fd);sleep(60);return 0;将程序运行起来后,我们可以使用查看运行该程序的进程pid,进入/proc/进程pid目录,可以看到两个链接文件cwd和exe。其中,cwd是程序的工作路径,也就是我们常说的当前路径,而exe是可自行程序的保存位置。当程序运行起来后,默认的工作路径在执行该程序时,bash所处的路径。

2024-04-17 22:15:25 970

原创 【从浅学到熟知Linux】进程控制下篇=>进程程序替换与简易Shell实现(含替换原理、execve、execvp等接口详解)

父进程创建子进程的目的只有一个:让子进程帮助父进程完成某些任务。如果要让子进程执行与父进程不同的代码有两种方式↓↓↓通过if分支判断语句决定父子进程各自的执行代码int main()if(id < 0)//进程创建错误exit(1);else if(id == 0)//子进程while(cnt)\n");cnt--;exit(0);else//父进程return 0;通过进程程序替换,让子进程执行与父进程完全不同代码。

2024-04-16 19:43:36 1032

原创 【从浅学到熟知Linux】进程控制上篇=>进程创建、进程终止与进程等待(含_exit与exit的区别、fork函数详解、wait与waitpid详解)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-15 13:59:35 724

原创 【从浅学到熟知Linux】程序地址空间分布与进程地址空间详谈(含虚拟地址到物理地址的映射)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程等内容。🎯每天努力一点点,技术变化看得见。

2024-04-14 16:42:07 1054

原创 【从浅学到熟知Linux】环境变量详谈(含使用程序获取环境变量的3种方法、如何查看环境变量)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程及数据库等内容。🎯每天努力一点点,技术变化看得见。

2024-04-13 22:16:29 2831

原创 【Super数据结构】二叉搜索树与二叉树的非递归遍历(含前/中/后序)

🏠关于此专栏:Super数据结构专栏将使用C/C++语言介绍顺序表、链表、栈、队列等数据结构,每篇博文会使用尽可能多的代码片段+图片的方式。🚪归属专栏:Super数据结构🎯每日努力一点点,技术累计看得见。

2024-04-12 21:31:13 874

原创 【从浅学到熟知Linux】进程状态与进程优先级(含进程R/S/T/t/D/X/Z状态介绍、僵尸进程、孤儿进程、使用top及renice调整进程优先级)

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程及数据库等内容。🎯每天努力一点点,技术变化看得见。

2024-04-10 16:24:47 1062

原创 【Super数据结构】堆结构的建立与调整&&堆的应用(含堆排序/topK问题)

🏠关于此专栏:Super数据结构专栏将使用C/C++语言介绍顺序表、链表、栈、队列等数据结构,每篇博文会使用尽可能多的代码片段+图片的方式。🚪归属专栏:Super数据结构🎯每日努力一点点,技术累计看得见。

2024-04-09 23:14:33 937

原创 【Super数据结构】二叉树的概念、操作大集合!(含深度/广度优先遍历/求深度/前序+中序构建二叉树/后序+中序构建二叉树等)

🏠关于此专栏:Super数据结构专栏将使用C/C++语言介绍顺序表、链表、栈、队列等数据结构,每篇博文会使用尽可能多的代码片段+图片的方式。🚪归属专栏:Super数据结构🎯每日努力一点点,技术累计看得见。

2024-04-08 21:04:43 823

原创 【浅尝C++】多态机制=>重载重写隐藏的区别/抽象类/单继承与多继承的虚函数表/多态原理及虚函数表内存存储详谈

多态是在不同继承关系的类对象,去调用同一函数,产生了不同的行为。例如:下图中Student类继承了Person类。两个对象在调用同一个函数takeBus时,一个执行的是Person中的getTickets,一个执行的是Student中的getTicket。这就是调用同一个函数takeBus,却产生了不同的行为。必须通过基类的指针或者引用调用虚函数被调用的函数必须是虚函数,且派生类必须对基类的虚函数进行重写在讲述这两个条件之前,我们先来聊聊什么是虚函数↓↓↓下图说明了重载、重写、隐藏之间的不同之处。

2024-04-06 23:24:02 1031

原创 【浅尝C++】继承机制=>虚基表/菱形虚继承/继承的概念、定义/基类与派生类对象赋值转换/派生类的默认成员函数等详解

我们生活中也有继承的例子,例如:小明继承了孙老师傅做拉面的手艺。继承就是一种延续、复用的方式。C++为了提高代码的可复用性,引入了继承机制,概念如下↓↓↓继承机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。继承呈现了面向对象程序设计的层次结构,体现了由简单到复杂的认知过程。以前我们接触的复用都是函数复用,继承是类设计层次的复用。下图演示的继承的格式,其中Person是父类,也称作基类;Student是子类,也称作派生类。

2024-04-05 23:59:41 1091

原创 【从浅学到熟知Linux】冯诺依曼体系结构及进程概念详谈!

🏠关于专栏:Linux的浅学到熟知专栏用于记录Linux系统编程、网络编程及数据库等内容。🎯每天努力一点点,技术变化看得见。

2024-04-04 21:10:25 1186

原创 【浅尝C++】STL第四弹=>容器适配器底层实现原理/deque底层原理/stack、queue、priority介绍、常用接口示例及模拟实现

stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中,其删除只能从容器的一端进行元素的插入与提取操作。stack是作为容器适配器被实现的,容器适配器即是对特定类封装作为其底层的容器,并提供一组特定的成员函数来访问其元素,将特定类作为其底层的,元素特定容器的尾部(即栈顶)被压入和弹出。stack的底层容器可以是任何标准的容器类模板或者一些其他特定的容器类,这些容器类应该支持以下操作:操作描述empty判空back获取尾部元素push_back尾部插入元素。

2024-04-03 21:25:35 788

原创 【浅尝C++】STL第三弹=>list常用接口使用示例/list底层结构探索/list模拟实现代码详解

list是可以在常数范围内在任意位置进行插入和删除的序列式容器,并且该容器可以前后双向迭代。list的底层是双向链表结构,双向链表中每个元素存储在互不相关的独立节点中,在节点中通过指针指向其前一个元素和后一个元素。list与forward_list非常相似:最主要的不同在于forward_list是单链表,只能朝前迭代,已让其更简单高效。与其他的序列式容器相比(array,vector,deque),list通常在任意位置进行插入、移除元素的执行效率更好。

2024-04-02 21:26:52 2306

原创 【浅尝C++】STL第二弹=>迭代器失效详解/vector常用接口使用示例/vector底层结构探索/vector模拟实现代码详解

vector就是一个可以自动扩大容量的数组,它与顺序表具有相同的性质,如适合随机访问、尾部插入删除效率高。关于顺序表的特点,可以查阅该篇文章→数据结构线性表(含顺序表及链表)介绍vector是表示可变大小数组的序列容器。就像数组一样,vector也采用的连续存储空间来存储元素。也就是意味着可以采用下标对vector的元素进行访问,和数组一样高效。但是又不像数组,它的大小是可以动态改变的,而且它的大小会被容器自动处理。本质讲,vector使用动态分配数组来存储它的元素。

2024-04-01 21:31:23 781

原创 【浅尝C++】STL第一弹=>STL简介/string常用接口使用示例/string模拟实现代码详解

STL(standard template libaray-标准模板库):是C++标准库的重要组成部分,不仅是一个可复用的组件库,而且是一个包罗数据结构与算法的软件框架。也就是说,我们可以通过调用STL提供的各种类、函数接口来使用常见的数据结构与算法,大大提高了代码的编写效率。

2024-03-31 20:12:56 733

原创 【浅尝C++】使用模板实现泛型编程第二弹=>非类型模板参数/模板特化/模板分离编译详解

【优点】模板复用了代码,节省资源,更快的迭代开发,C++的标准模板库(STL)因此而产生增强了代码的灵活性【缺陷】模板会导致代码膨胀问题,也会导致编译时间变长出现模板编译错误时,错误信息非常凌乱,不易定位错误🎈欢迎进入浅尝C++专栏,查看更多文章。如果上述内容有任何问题,欢迎在下方留言区指正b( ̄▽ ̄)d。

2024-03-29 19:33:46 834

原创 【浅尝C++】使用模板实现泛型编程第一弹=>函数模板/类模板/模板匹配原则/函数模板原理

class 类模板名//类内成员定义。

2024-03-28 19:27:08 926

原创 【浅尝C++】C/C++内存管理(含程序地址空间验证代码、new/operator new/malloc/delete/operator delete/free的区别与联系)

class Apublic:A()~A()cout << "C语言申请和释放单个内置类型" << endl;free(p1);cout << "C语言申请和释放多个内置类型" << endl;free(p2);cout << "C++语言申请和释放单个内置类型" << endl;delete p1;cout << "C++语言申请和释放多个内置类型" << endl;delete p2;

2024-03-27 20:52:21 1062 1

原创 【浅尝C++】类和对象第三弹=>static成员/友元/内部类/匿名对象

🏠专栏介绍:浅尝C++专栏是用于记录C++语法基础、STL及内存剖析等。🚩一些备注:之前的文章有点杂乱,这里将前面的知识点重新组织了,避免了过多冗余的废话。🎯每日努力一点点,技术变化看得见。

2024-03-26 20:53:03 1013

空空如也

空空如也

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

TA关注的人

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