自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【MySQL】索引和事务重点知识汇总

本节内容: 索引的作用, 付出的代价, 索引背后的数据结构与事务的作用, 特性, 隔离性等重点知识汇总

2022-12-21 09:00:00 1609 24

原创 【网络原理】UDP和TCP协议重点知识汇总

网络原理之TCP/UDP协议重点知识汇总,积累了很久;很想对大家有帮助!!

2022-11-03 17:38:07 2345 18

原创 详解sizeof、strlen、指针和数组等组合题

生活不易,博主吐血整理!!本部分属于指针、数组、sizeof和strlen组合在一起的高级玩法,助你轻松拿下!

2022-07-02 20:24:59 699 27

原创 大小端字节序和整型提升

⛳前言+目录:大小端字节序 和整型提升 是C语言中重要的知识点,其中的很多细节对初学C语言的小伙伴来说不是很友好,因此我总结了 大小端字节序 和 整型提升 的易错点,给你全面的介绍,一举掌握大小端字节序和整型提升⛵🚤🚢如果对您有帮助的话,不要忘记点赞+关注哦,蟹蟹目录📣前言+目录:📣大小端字节序:概念:整型提升:边做边学,提高更快🌵练习1:🌵练习2:🌵练习3:📣结语:...

2022-05-25 08:05:03 455 20

原创 虎头虎脑的sizeof、strlen、数组长度、数组中元素个数和字符串长度

对于C语言的初学者,常常被sizeof、strlen、数组长度、数组中元素个数和字符串长度这些涉及数组的概念的题弄得摸不着啊头脑,今天我将以往所遇到的相关问题,提取精华,整理了出来,查阅资料,给你最全面的介绍,下次看到不再发慌,一笑而过保熟的总结:🔥sizeof、strlen 总结:sizeof 是操作符,计算变量(类型)所占内存空间的大小,单位是字节,不关注内存中存放的内容int num=10; num的类型是intpri...

2022-05-03 08:03:55 2836 50

原创 【C语言初学必看】猜数字游戏背后的知识

前言:猜数字游戏是非常适合初学者学习的代码,其中包含的函数、循环和逻辑方式等知识点。这既能起到对以往知识的复习,也可以学习到一种不同的逻辑思考方式。有一些知识点可能曾经闻所未闻的,不要像多数人一样放弃,如果不走出舒适圈就不可能进步。难题摆在这里,唯一可以改变现状的只有你自己,加油。以下是猜数字游戏的所有代码://要求写一个猜数字游戏//1.自动产生一个1-100之间的随机数字//2.猜数字// a.猜对了,就恭喜你,游戏结束// b.猜错了,会告诉你...

2022-04-06 14:26:15 5244 9

原创 【事务】事务的特性、并行事务有什么问题、事务的隔离级别等重点知识汇总

假设有 A 和 B 这两个事务同时在处理,事务 A 先开始从数据库中读取小林的余额数据,然后再执行更新操作,如果此时事务 A 还没有提交事务,而此时正好事务 B 也从数据库中读取小林的余额数据,那么事务 B 读取到的余额数据是刚才事务 A 更新后的数据,即使没有提交事务。假设有 A 和 B 这两个事务同时在处理,事务 A 先开始从数据库查询账户余额大于 100 万的记录,发现共有 5 条,然后事务 B 也按相同的搜索条件也是查询出了 5 条记录。在事务开始之前和事务结束以后,数据库的完整性没有被破坏。

2023-09-28 20:10:48 386

原创 【索引】常见的索引、B+树结构、什么时候需要使用索引、优化索引方法、索引主要的数据结构、聚簇索引、二级索引、创建合适的索引等重点知识汇总

但它的好处是它并不需要扫全表,因为索引是有序的,即便有重复值,也是在一个非常小的范围内扫描。,由于每次插入主键的索引值都是随机的,因此每次插入新的数据时,就可能会插入到现有数据页中间的某个位置,这将不得不移动其它数据来满足新数据的插入,甚至需要从一个页面复制数据到另外一个页面,我们通常将这种情况称为。而树的高度决定于磁盘 I/O 操作的次数,因为树是存储在磁盘中的,访问每个节点,都对应一次磁盘 I/O 操作,也就是说树的高度就等于每次查询数据时磁盘 IO 操作的次数,所以树的高度越高,就会影响查询性能。

2023-09-28 20:05:08 1208

原创 【数据库】存储引擎InnoDB、MyISAM、关系型数据库和非关系型数据库、如何执行一条SQL等重点知识汇总

需要注意的是,MySQL执行查询的效率不仅受查询本身的复杂性和优化程度影响,还受到数据库服务器的硬件性能、表的设计、索引的使用、数据量等因素的影响。因此,SQL查询性能优化是数据库管理和应用程序开发中的重要任务之一,可以通过合理的索引设计、查询改写、缓存策略等手段来提高数据库性能。在这个过程中,MySQL数据库引擎会负责将SQL语句翻译成物理操作,与存储引擎进行交互,并执行相关的I/O操作以读取和写入数据。适合: 插入不频繁,查询非常频繁,如果执行大量的SELECT,MyISAM是更好的选择, 没有事务。

2023-09-28 20:02:27 840

原创 【MySQL】SQL优化、char、varchar、外键约束、排查慢sql等重点知识汇总

在治理慢查的过程中,SQL语句的使用问题是导致慢SQL的主要因素,因此本文主要从SQL优化角度出发,对慢SQL的常见原因和特征进行分析,介绍慢SQL的优化过程以及一些有效的调优技巧和工具,希望能够提供一些有用的方法和策略,帮助大家更好地应对慢SQL问题,并最终实现提升系统性能和优化用户体验的目标。假设你有两个表,一个是学生表,另一个是课程表,这两个表之间有一个关系,即一个学生可以选修多门课程,而一门课程也可以被多个学生选修。在合适的情况下,使用JOIN来关联表,而不是使用子查询。使用索引来限定数据范围。

2023-09-28 20:00:50 447

原创 【三次握手、四次挥手】TCP建立连接和断开连接的过程、为什么需要三次握手,为什么需要四次挥手、TCP的可靠传输如何保证、为什么需要等待2MSL等重点知识汇总

可见,序列号在 TCP 连接中占据着非常重要的作用,所以当客户端发送携带「初始序列号」的 SYN 报文的时候,需要服务端回一个 ACK 应答报文,表示客户端的 SYN 报文已被服务端成功接收,那当服务端发送「初始序列号」给客户端的时候,依然也要得到客户端的应答回应,,服务器如果收到乱序的包,也给客户端回复 ACK,比如收到乱序的包 6,7,8,9 时,服务器全都发 ACK = 5,这样客户端就知道5丢失了,当客户端收到三个相同的 ACK 报文时,会在超时之前,重传丢失的报文段,而不需要等到计时器超时。

2023-09-28 09:38:44 931 2

原创 【TCP/UDP】MSS和MTU、UDP报文、TCP报文、如何实现TCP的长连接、TCP的粘包问题如何解决等重点知识汇总

这时,接收方的程序如果不知道发送方发送的消息的长度,也就是不知道消息的边界时,是无法读出一个有效的用户消息的,因为用户消息被拆分成多个 TCP 报文后,并不能像 UDP 那样,一个 UDP 报文就能代表一个完整的用户消息。数据分段:首先,数据报文被分割成多个16位的字(或者称为16位字,即两个字节),如果数据长度不是16位的整数倍,最后一个字节将被扩展为16位。求和:将这些16位字依次相加,形成一个32位的中间和,如果中间和的高16位不为0,将其加到低16位上,得到最终的16位和。

2023-09-28 09:35:47 1626

原创 【HTTPS】HTTPS解决了什么问题、HTTPS的加密过程和方式、SSL/TLS、中间人攻击等重点知识汇总

SSL 和 TLS 都是用于加密通信的安全协议,用于保护在计算机网络上进行的数据传输的安全性和隐私性。SSL/TLS协议使用非对称加密和对称加密相结合的方式来实现通信的加密和身份验证。

2023-09-28 09:30:42 1093

原创 【HTTP版本】HTTP/1.0、HTTP/1.1、HTTP/2.0、HTTP/3.0等重点知识汇总

同时 HTTP 由于是工作在应用层,则它。

2023-09-28 09:29:10 677

原创 【HTTP】URL结构、HTTP请求和响应的报文格式、HTTP请求的方法、常见的状态码、GET和POST有什么区别、Cookie、Session等重点知识汇总

目录URL格式HTTP请求和响应报文的字段?HTTP请求方法常见的状态码GET 和 POST 的区别Cookie 和 Session?:是用来分割URL的主体部分(通常是路径)和查询字符串(query string)查询字符串是一组键值对的参数query string:是键值对的结构,&分割键值对,=分割键和值Content-Type: 数据类型(text/html等)。Content-Length: 正文的长度。Host: 客户端告知服务器,所请求的资源是在哪个主机的哪个端口上。User-Agent: 声

2023-09-28 09:25:55 599

原创 【网络模型】OSI七层网络模型、TCP/IP网络模型、键入网址到页面显示的过程、DNS是什么等重点知识汇总

回车之后浏览器做的第一步工作是解析 URL,从而生成发送给 Web 服务器的请求信息。解析之后,浏览器确定了 Web 服务器和文件名,接下来就是根据这些信息来生成 HTTP 请求消息了。接下来,需要委托操作系统将消息发送给 Web 服务器。但在发送之前,还有一项工作需要完成,那就是。

2023-09-28 09:23:02 690

原创 【IO多路复用】IO机制、select、poll、epoll、边缘触发、水平触发等重点知识汇总

比较传统的方式是使用多进程/线程模型,每来一个客户端连接,就分配一个进程/线程,然后后续的读写都在对应的进程/线程,这种方式处理 100 个客户端没问题,但是当客户端增大到 10000 个时,10000 个进程/线程的调度、上下文切换以及它们占用的内存,都会成为瓶颈。最基础的 TCP 的 Socket 编程,它是阻塞 I/O 模型,基本上只能一对一通信,那为了服务更多的客户端,我们需要改进网络 I/O 模型。:应用程序在进行IO操作时,会立即返回,无论IO操作是否完成,应用程序都可以进行其他操作。

2023-09-27 11:26:25 309

原创 【调度算法】进程调度算法、内存页面置换算法、LRU算法、LFU算法、磁盘调度算法等重点知识汇总

这种算法也叫做电梯算法,比如电梯保持按一个方向移动,直到在那个方向上没有请求为止,然后改变方向。磁头先响应左边的请求,直到到达最左端( 0 磁道)后,才开始反向移动,响应右边的请求。扫描调度算法性能较好,不会产生饥饿现象,但是存在这样的问题,中间部分的磁道会比较占便宜,中间部分相比其他部分响应的频率会比较多,也就是说每个磁道的响应频率存在差异。

2023-09-27 11:23:11 1021 2

原创 【锁】volatile、死锁、互斥锁、自旋锁、读写锁、乐观锁、悲观锁、常见的线程锁等重点知识汇总

线程 A 和 线程 B 获取资源的顺序要一样,当线程 A 是先尝试获取资源 1,然后尝试获取资源 2 的时候,线程 B 同样也是先尝试获取资源 1,然后尝试获取资源 2。也就是说,线程 A 和 线程 B 总是以。

2023-09-27 11:18:39 247

原创 【QandA C++】进程、线程、协程、进程间通信的方式、线程同步机制、守护线程、僵尸进程、孤儿进程、线程切换的资源等重点知识汇总

创建一个进程实际上就是先将进程的代码和数据加载到内存上,接着操作系统对该进程进行描述形成对应的PCB(PCB是对进程控制块的统称),Linux下描述进程控制块的结构体叫做task_struct。Socket 实际上不仅用于不同的主机进程间通信,还可以用于本地主机进程间通信,可根据创建 Socket 的类型不同,分为三种常见的通信方式,一个是基于 TCP 协议的通信方式,一个是基于 UDP 协议的通信方式,一个是本地进程间通信方式。每个进程都有自己的内存空间,独立于其他进程,使其能够互相隔离。

2023-09-27 11:16:51 352

原创 【QandA C++】并发和并行、软链接、硬链接、用户态和内核态、异常和中断、信号和信号量等重点知识汇总

总之,信号和信号量是不同的概念,用于不同的目的。信号是一种进程间通信方式,用于通知事件的发生,而信号量是一种同步工具,用于控制对共享资源的访问。,防止他们获取别的程序的内存数据,或者获取外围设备的数据,并发送到网络,CPU划分出两个权限等级 – 用户态和内核态。cpu可以访问内存的所有数据,包括外围设备,例如硬盘,网卡,cpu也可以将自己从一个程序切换到另一个程序。大家都知道,当我们在敲击键盘的同时就会产生中断,当硬盘读写完数据之后也会产生中断,所以,我们需要知道,所以,大家也需要记住的是,

2023-09-27 11:13:28 152

原创 【QandA C++】内存分段和内存分页等重点知识汇总

每个进程都有 4GB 的虚拟地址空间,而显然对于大多数程序来说,其使用到的空间远未达到 4GB,因为会存在部分对应的页表项都是空的,根本没有分配,对于已分配的页表项,如果存在最近一定时间未访问的页表,在物理内存紧张的情况下,操作系统会将页面换出到硬盘,也就是说不会占用物理内存。在前面我们知道了,对于单页表的实现方式,在 32 位和页大小 4KB 的环境下,一个进程的页表需要装下 100 多万个「页表项」,并且每个页表项是占用 4 字节大小的,于是相当于每个页表需占用 4MB 大小的空间。

2023-09-27 11:09:56 230

原创 【QandA C++】内存泄漏、进程地址空间、堆和栈、内存对齐、大小端和判断、虚拟内存等重点知识汇总

栈就像我们去饭馆里吃饭,只管点菜(发出申请)、付钱、和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。栈空间和堆区的大小是由操作系统和编译器决定的,不同系统和编译器可能会有不同的默认值。,不是所有编译器都有默认对齐数,当编译器没有默认对齐数的时候,成员变量的大小就是该成员的对齐数。堆就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。,而数据的低位,保存在内存的低地址中;,而数据的高位,保存在内存的低地址中;

2023-09-26 11:02:09 446 6

原创 【哈希】关于哈希的实现、冲突的解决、扩容等

哈希冲突指的是不同的键经过哈希函数计算后,产生了相同的哈希值,导致它们应该被存储在哈希表中的同一个桶中。由于哈希表的桶数量是有限的,当多个键被映射到同一个桶索引时,就发生了哈希冲突。哈希冲突是不可避免的,因为哈希函数将无限的键空间映射到有限的桶空间中。即使设计良好的哈希函数也无法完全避免冲突的发生,因为键空间远大于桶空间。哈希冲突会影响哈希表的性能和操作效率,特别是在发生冲突的桶中存储大量的键值对时,会导致链表或其他数据结构的长度增加,从而影响插入、删除和查找操作的效率。

2023-09-24 10:35:18 610 1

原创 【QandA C++】sort底层、vector、list、push_back/emplace_back、resize、reserve、迭代器失效、unordered_XXX对比map/set、红黑树

因为插入排序在面对“几近排序”的序列时,表现更好,而快排是通过递归实现的,会为了极小的子序列产生很多的递归调用在区间长度小的时候经常不如插入排序效率高)如果插入节点的父节点也是红色的,需要进行颜色调整和旋转操作,以满足红黑树的性质。,可以选择继承节点(通常是左子树中的最大节点或右子树中的最小节点)来替代要删除的节点,然后删除继承节点。左旋:将一个节点的右子节点提升为该节点的父节点,同时该节点成为左子节点。右旋:将一个节点的左子节点提升为该节点的父节点,同时该节点成为右子节点。

2023-09-24 10:31:16 239

原创 【容器】stack、queue、priority_queue、deque、set、map、unordered_map、unordered_set、multiXXX、unordered_multiXXX

栈是一种具有后进先出特性的数据结构。push():将元素入栈,即将添加到栈顶。pop():移除栈顶的元素,并返回该元素的值。注意,这个操作会改变栈的大小。top():获取栈顶元素的值,但不移除该元素。即查看栈顶元素的值而不弹出它。empty():检查栈是否为空,如果栈为空则返回true,否则返回false。size():获取栈中元素的数量。

2023-09-24 10:28:09 129

原创 【排序算法】冒泡排序、插入排序、归并排序、希尔排序、选择排序、堆排序、快速排序

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。无论输入数据规模的大小,额外空间的使用量都保持不变,因此空间复杂度是常数级别的 O(1)。需要注意的是,在实际实现中,如果原地排序,可以避免创建临时数组,将临时结果存储在原始数组中,这样可以将空间复杂度优化为O(1)。在最坏情况下,即每次选择的基准元素都是当前子数组中的最大或最小值时,快速排序的递归树将达到最大深度,此时空间复杂度为 O(n)。

2023-09-24 09:19:30 624

原创 【QandA C++】C++11新特性、Lambda表达式、左值引用、右值引用、完美转发、智能指针、move、强制类型转换等重点知识汇总

传统的C++语法中就有引用的语法,而C++11中新增了右值引用的语法特性,为了进行区分,于是将C++11之前的引用就叫做左值引用。但是无论左值引用还是右值引用,

2023-09-24 09:03:29 252

原创 【QandA C++】面向过程、面向对象、多态的原理、虚函数表、虚表指针、虚析构、虚构造、虚函数、纯虚函数等重点知识汇总

有一个父类Animal,它定义了通用的属性和方法,例如名称、年龄和移动方式等。关于多态, 简单地说就是用父类型的指针指向其子类对象, 然后通过父类的指针调用实际子类的成员函数, 这种技术可以让父类的指针有多种形态. 如果调用非虚函数, 则无论实际对象是什么类型的, 都执行父类类型所定义的函数。关于多态, 简单地说就是用父类型的指针指向其子类对象, 然后通过父类的指针调用实际子类的成员函数, 这种技术可以让父类的指针有多种形态. 如果调用非虚函数, 则无论实际对象是什么类型的, 都执行父类类型所定义的函数。

2023-09-24 08:56:20 263 3

原创 【QandA C++】引用、指针、重写、重载、重定义、public、protected、private、友元、深浅拷贝、new、malloc、nullptr、NULL、析构函数等重点知识汇总

重载俩个函数在同一个作用域中函数名相同, 参数列表不同(参数的个数, 参数的类型, 参数的顺序)重载和俩个函数的返回值是否一样无关重写(覆盖)若子类中有一个和父类完全相同的虚函数返回值类型相同, 函数名相同, 参数列表完全相同), 此时叫做子类的虚函数重写了父类的虚函数虚函数重写的俩个特例析构函数的重写(父类和子类的析构函数名字不同), 如果父类的析构函数为虚函数, 此时子类析构函数只要定义;无论是否加 virtual 关键字, 都与父类的析构函数构成重写协变。

2023-09-23 17:21:27 259

原创 【QandA C++】sizeof、strlen、static、extern、typedef、const、#define、内联函数等重点知识汇总

define宏是在预处理阶段展开#define宏仅仅是代码展开,在多个地方进行字符串替换,不会分配内存#define 定义的常量是不带类型的,宏定义是没有类型检查的, 无论是对还是错都是直接替换因此 define 定义的常量不利于类型的检查而define不是语句, 千万不能在句尾加分号const常量有类型检查,而#define定义的常量没有类型检查。编译器可以在编译时检查const常量的类型是否正确,而#define定义的常量只有在运行时才能进行检查。const常量存储在程序的数据段或。

2023-09-23 16:38:32 182

原创 【QandA C++】编程语言对比、代码到可执行程序的过程、静态链接和动态链接、静态库和动态库等重点知识汇总

动态库是程序在运行的时候才去链接相应的动态库代码的,多个程序共享使用库的代码。使用静态库生成可执行程序会占用大量空间,特别是当有多个静态程序同时加载而这些静态程序使用的都是相同的库,这时在内存当中就会存在大量的重复代码。动态库在多个程序间共享,节省了磁盘空间,操作系统采用虚拟内存机制允许物理内存中的一份动态库被要用到该库的所有进程共用,节省了内存和磁盘空间。一旦可执行程序被加载到内存中,CPU开始执行其中的指令。的,生成的可执行程序在运行的时候将不再需要静态库,因此使用静态库生成的可执行程序的大小。

2023-09-23 16:23:49 254 2

原创 Docker是什么, 为什么这么火

容器管理引擎,但是在创建容器时,不再使用模板去安装生 成,而是通过镜像技术(把一个操作系统用户空间所需要使用到的组件事先编排好, 并整体打包成一个文件,,那么这个房间我们可以使用了,朋友也开了一间豪华大床房,虽然豪华大 床房一样,当时我们携带的物品,我们的洗漱时间,睡觉时间都不一样,这个就是容器。需要的所有信息设计一套软件格式,把所有的依赖搞进去,并打上版本标签, 这样不会换一个服务器各种问题,所以。容器的销毁,也就是我们一周后旅游结束了,搬出了酒店,酒店把我们的房间恢复了 镜像原来的样子。

2023-08-16 18:03:58 218

原创 虚拟化和容器化

三年一班的小明和三年二班的小明,虽说他们名字是一样的,但是所在班级不一样, 那么,在全年级排行榜上面,即使出现两个名字一样的小明,也会通过各自的学号来 区 分。在一台计算机上 同时运行多个逻辑计算机,每个逻辑计算机可运行不同的操作系统,并且应用程序都 可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率。就是在应用层与函数库层之间建立一个抽象层,对下通过不同的版本适应不 同的操作系统函数库,对上提供统一的运行环境交给程序和开发者,使开发者能够调 用不同操作系统的函数库。一次构建,随处执行。

2023-08-15 19:28:50 2862 6

原创 容器技术发展和编排技术演进之路

隔离以 后,该进程无法访问到外面的文件,因此这个被隔离出来的新环境像监狱一样,被命 名为。提供了一整套的解决方案,不仅解决了容器化问题,而且解决了分发问题, 很快被各大厂商选择变成了云基础设施,厂商围绕。入了一整套管理容 器的生态系统,这包括高效、分层的容器镜像模型、全局和本地的容器注册库、清晰 的。容器不是一个新概念或者新技术,很早就有了,只是近几年遇到了云计算,整个技术被彻底引爆了。的概念,对当前的主流开发模式产生深远的影响。模式为核心,基本实现了进程相关资源的隔离操 作,没有更大的应用场景发展有限。

2023-08-15 17:36:13 736 5

原创 【MySQL】数据库基础和SQL分类

存储引擎的选择要根据具体的业务需求和数据特点进行,不同的存储引擎有不同的特性和适用场景。数据库是按照数据结构来组织、存储和管理数据的仓库,是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。数据库的使用优于简单的文件存储,因为它提供了更好的安全性、数据查询和管理的功能,并更容易控制和存储海量数据。存储引擎是数据库管理系统如何存储数据、如何为存储的数据建立索引、如何更新数据、如何查询数据等技术的实现方法。MySQL中的存储引擎是插件式的存储引擎,它可以支持多种存储引擎。

2023-08-01 18:30:06 475

原创 内存“银行”

本项目实现的是一个高并发的内存池,它的原型是Google的一个开源项目tcmalloc,tcmalloc全称Thread-Caching Malloc,即线程缓存的malloc,实现了高效的多线程内存管理,用于替换系统的内存分配相关函数malloc和free。

2023-08-01 11:50:58 204 1

原创 API 文档搜索引擎

实现搜索引擎项目的所有代码和要点汇总, 很想对你有帮助!

2023-02-22 15:34:08 2761 20

原创 【Spring】Spring对IoC的实现和依赖注入专题

本章内容: 依赖注入的俩种方式, set注入专题包括简单类型,数组,list,map,set,properties注入和特殊字符注入等重点知识汇总, 很想对你有帮助!

2023-02-06 19:43:28 1151 11

原创 【Spring】OCP,DIP原则,IoC思想和依赖注入DI重点知识汇总

本章内容: OCP原则, 依赖倒置DIP原则, 控制反转IoC思想, 依赖注入DI, 第一个spring程序的注意细节.

2023-02-05 20:06:35 1133 4

空空如也

空空如也

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

TA关注的人

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