- 博客(73)
- 收藏
- 关注
原创 【MySQL】表的增删查改
在数据库管理中,CRUD(Create, Read, Update, Delete)是一组基本的操作,用于管理表中的数据。Create:创建新的记录或表。Read:检索表中的数据。Update:修改表中现有记录的数据。Delete:从表中移除记录。本文将对这四种操作进行详细介绍。
2024-08-21 23:28:12
1694
原创 【MySQL】表的约束
本文着重于介绍MySQL中表的常用约束:null、default、comment、zerofill、primary key、auto_increment、unique、foreign key。介绍其概念、用法和注意事项,并用示例说明。
2024-08-20 16:37:40
1527
原创 【MySQL】数据库基础(数据类型)
本文详细介绍了MySQL中各种数据类型的分类和特性,包括数值类型、字符串类型、时间和日期类型以及枚举和集合类型。具体内容包括:数据类型分类概述。数值类型:tinyint类型、bit类型、float类型和decimal类型,分别用于存储整数、位值、浮点数和固定精度的小数。字符串类型:char类型和varchar类型,分别用于存储固定长度和可变长度的字符串。时间和日期类型,用于存储日期和时间信息。枚举和集合类型:enum类型和set类型,用于存储有限个值的集合。
2024-08-18 17:27:35
1490
原创 【MySQL】数据库基础(库的操作)
MySQL常用的库相关操作:创建、操控、修改、删除、备份和恢复,了解字符集和校验规则,查看数据库连接情况。
2024-08-18 00:10:58
1435
原创 【C++11】线程库
主要介绍C++11中线程库的引入和使用,以及原子性操作库(atomic)和mutex库:四种互斥量和lock_guard、 unique_lock的使用
2024-07-11 10:04:46
780
原创 【Linux】线程(轻量级进程)
线程概念、特性、优点、缺点、异常、用途,进程和线程的对比、线程控制、包含线程的编译链接、创建线程、获得线程自身的ID、线程终止、线程等待、线程分离、线程ID及进程地址空间布局、重谈文件系统(地址空间、页表、物理内存)、Linux线程互斥、进程线程间的互斥相关背景概念、互斥量mutex、互斥量的接口、互斥量的实现原理探究、可重入和线程安全的概念、可重入和线程安全的各种情况、死锁、Linux线程同步、条件变量、同步概念与竞态条件,条件变量函数,生产者消费者模型,基于BlockingQueue的生产者消费者模型
2024-07-07 19:01:06
907
1
原创 【Linux】进程信号
本文介绍了信号的概念、查看信号列表、信号处理常见方式,信号的产生方式:通过终端按键产生、通过系统调用产生、由软件条件产生、由异常产生。信号的保存和捕捉处理,以及信号其它概念的补充:可重入函数、SIGCHLD信号
2024-06-16 11:15:18
1138
原创 【Linux】进程间通信
本文主要介绍进程间通信的管道方式和system V 方式。详细介绍了匿名管道和命名管道的原理和使用。又介绍了system V共享内存的原理和各种函数的使用,为了更深入地了解其数据结构,而对system V消息队列和信号量概述,通过对比回顾共享内存数据结构。管道:包括匿名管道(pipe)和命名管道(FIFO)。匿名管道只能用于具有亲缘关系的进程间通信,而命名管道可以用于不具有亲缘关系的进程间通信。System V进程间通信:包括System V消息队列、System V共享内存、
2024-06-05 21:28:57
919
原创 【C++】异常
本文主要介绍C++异常的引入、使用、异常的抛出和匹配原则、函数调用链中异常栈展开匹配原则、异常的重新抛出、异常安全、异常规范、C++标准库的异常体系以及异常的优缺点
2024-06-03 17:01:22
916
原创 【C++】C++11新特性:新的类功能、可变参数模板、STL容器中的empalce相关接口函数、lambda表达式、包装器(function、bind)
本文继续讲解C++11新特性:新的类功能、可变参数模板、STL容器中的empalce相关接口函数、lambda表达式、包装器(function、bind)
2024-06-01 16:44:03
727
原创 【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发
本文通过大量的示例描述C++11的部分新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发
2024-05-30 14:37:20
1306
原创 【Linux】动静态库
前面在学习使用gcc/g++时,简要介绍了动静态库,现在在学习完文件系统之后再来深入学习动静态库。本文讲解了使用动静态库时的用法,常见问题如何解决,以及问题背后的原理。研究动态库加载到内存的步骤,以及可执行程序如何使用动态库,并通过例子加深理解。
2024-05-27 21:12:54
1157
2
原创 【C++】位图/布隆过滤器+海量数据处理
位图和布隆过滤器在处理海量数据时都发挥着重要的作用。位图可以用于快速判断数据是否存在,实现高效的去重、索引等功能;布隆过滤器可以用于快速判断数据是否存在于一个集合中,实现高效的去重、索引和缓存等功能。它们都可以在处理海量数据时节省大量的空间,提高查询速度。
2024-05-23 21:37:56
812
1
原创 【C++】哈希和unordered系列容器
哈希在计算机科学中广泛应用于快速访问数据。C++11引入了一组新的容器类型:unordered系列关联式容器,它们提供了一种不同于传统关联式容器(如map和set)的存储和访问方式。unordered系列容器基于哈希表实现,它们通常在查找、插入和删除操作上提供平均时间复杂度为O(1)的性能。本文主要讲解该容器的底层结构——哈希的概念和实现
2024-05-22 11:24:42
963
原创 【Linux】文件系统和软硬链接
我们之前对文件的学习都是内存级别的,那么在文件没有被进程打开之前,这个文件是什么样的状态?本篇将站在磁盘的底层数据结构角度告诉你文件在磁盘中是如何存放的,以及磁盘的文件系统如何实现文件的创建、删除等操作,讲解磁盘文件系统具体的运行方式。
2024-05-16 16:56:55
802
原创 【Linux】文件描述符和重定向
本文回顾C的文件操作知识,引入了在Linux中的文件打开和操作的底层是如何实现的,介绍了open和write系统调用、标志位传参,详细介绍文件描述符fd的概念和使用,以及其他函数调用它时的操作,例如重定向操作。最后补充了标准错误的知识点,有助于更深入的理解重定向。
2024-05-13 20:25:39
887
原创 【Linux】进程程序替换
如果我们想让子进程执行新的程序、执行全新的代码和访问全新的数据,不在和父进程有瓜葛,该怎么做呢?进程程序替换!本文主要介绍了程序替换的概念、原理和步骤方法,介绍了exec系列函数的使用。
2024-05-10 08:44:29
858
原创 【Linux】进程控制
本文回顾了进程创建,并进行更深入的理解,学习进程终止的概念、操作和原因,对退出状态码和错误码进行介绍;接着又介绍进程等待,什么是进程等待、为什么要进程等待、如何进行进程等待,进而详细介绍了wait和waitpid的用法和原理。
2024-05-09 08:43:08
1114
原创 【Linux】进程地址空间
地址空间是指一个实体(如进程、设备或内存段)可以访问的内存地址的总数。对地址空间的的操作需要先描述在组织。在Linux内核中描述进程的地址空间(或虚拟内存管理器)的结构体称作mm_struct,用于管理进程的地址空间。每个进程都有一个mm_struct实例,它包含了进程内存管理相关的所有信息。
2024-05-06 14:19:59
945
原创 【Linux】命令行参数和环境变量
环境变量是什么,常见的环境变量有哪些,环境变量的用途,如何用指令操作环境变量,环境变量表,对环境变量的进一步理解,
2024-05-05 09:40:40
843
原创 【数据结构】红黑树
红黑树(Red-Black Tree)是一种自平衡的二叉搜索树,它在每个节点上增加了一个额外的属性,即颜色,可以是红色或黑色。通过满足一定的约束条件,红黑树能够保持较佳的平衡性,从而保证基本的操作(插入、删除、查找)的时间复杂度为 O(log n)。红黑树常见的应用包括标准库中的关联容器(例如C++中的std::map和std::set)、数据库的索引结构、以及在操作系统中的进程调度等方面。
2024-04-16 17:17:01
957
原创 【C++】AVL树详解
AVL树是一种高效的自平衡二叉搜索树,在计算机科学领域得到广泛应用。本文主要介绍了AVL树的概念、节点定义、AVL树的实现以及验证,其中包括对平衡因子的解释,研究在插入节点时,如何通过旋转来调节平衡因子来保持AVL树的特性。
2024-02-29 21:10:59
1338
原创 【C++】map和set——树形结构的关联式容器
本文主要讲述了C++中序列式容器和关联式容器的概念,着重讲解关联式容器中的键值对pair、树形结构的关联式容器set、map、multiset、multimap的使用。
2024-02-29 14:25:12
1201
原创 【C++】多态
本篇主要介绍了c++中多态的概念、实现和原理,介绍了虚函数、重写、重定义的概念和注意事项,引入了抽象类、接口/实现继承、虚函数表、动态绑定的概念,介绍了多继承关系中的虚函数表。本篇细节干货较多,希望对大家有所帮助。
2023-12-10 17:28:31
1006
原创 【Linux】make/Makefile --- 自动化构建项目的工具
本篇主要介绍了make/Makefile的简单使用和语法规则,进而介绍了其实现的原理。介绍了make/makefile如何识别文件新旧、.PHONY修饰的伪目标的含义和用法,make/makefile的推导能力,最后介绍了一些Makefile的语法技巧和使用注意事项
2023-12-09 11:45:23
1280
原创 【Linux】gcc/g++与动静态库
本篇主要介绍了Linux中gcc和g++两款编译器的使用和注意事项,解释了gcc实现程序的翻译过程,后面又引入函数库的概念:动静态库、动静态链接。
2023-12-08 19:16:19
1407
原创 【Linux】vim-多模式的文本编辑器
本篇主要介绍了vim的概念和使用,正常、插入、底行三种模式之间的切换和各个模式的常用命令。接着引入了视图模式的批量化注释和vim的简单配置。
2023-11-25 17:23:04
2761
1
原创 【Linux】yum -- 软件包管理器
本篇文章引入了软件包的概念,介绍了yum是什么,在Linux中如何使用yum来搜索、安装、卸载软件以及为什么选择yum,最后介绍了虚拟机和云服务器的用户如何更新yum源。
2023-11-24 21:51:42
1312
原创 【Linux】Linux权限管理
本篇文章主要介绍了Linux中权限的概念,引入了用户的类型、创建切换和删除的使用,详细地介绍了文件的类型、基本权限、以及文件访问相关的操作,对初学者有较大帮助
2023-11-24 16:28:04
2987
原创 【Linux】Shell命令以及运行原理
本篇文章介绍了Linux狭义和广义的概念,引入了Shell的概念,介绍了为什么要有shell以及Shell的功能和工作原理。
2023-11-23 09:52:46
219
原创 【C++】继承(二)
本篇内容介绍了继承体系中友元和静态成员的使用,介绍了单继承和多继承,进而引入了菱形继承的概念,讨论了菱形继承存在的问题和解决方法:虚拟继承。最后扩展地介绍了继承和组合,通过问答的方式说明了两者的不同和使用场景。
2023-11-21 20:34:19
202
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人