- 博客(57)
- 收藏
- 关注
原创 【C++】C与C++、C++内存空间、堆与栈
小对象、确定生命周期的临时对象。较慢(系统调用+复杂管理)显示释放或由智能指针管理。大内存块需求(大型数组)多态对象(基类指针操作)需要跨函数保持状态的对象。高地址向低地址方向增长。低地址向高地址方向增长。直接访问(LIFO)随机访问(通过指针)高频创建/销毁的实例。
2025-04-13 21:05:32
194
原创 【C++】右值引用、移动语义与完美转发
左值、右值是C++常见的概念,那么什么是右值引用,移动语义,完美转发呢?本UP带大家了解一下C++校招常问的C++11新特性。
2025-04-10 20:08:00
165
原创 【操作系统】linux常用命令
UP作为一个Linux系统练习两年半的个人练习生,今天地给大家整理一下常用的Linux命令,祝大家在Linux练习之路一帆风顺。
2025-04-06 21:20:40
237
原创 【C++】泛型编程与模板
自动类型推导,必须推导出一致的数据类型T,才可以使用(必须确定出T的数据类型)代表,调用函数时,程序会根据实参的类型取代模板中的虚拟类型,从而实现不同函数。函数模板可以创建能够处理不同数据类型的通用函数。类模板可以创建能够处理不同数据类型的通用类。实现,泛型编程允许编写与类型无关的代码,模板的函数返回类型和形参类型可以通过。进而提高代码的复用性。
2025-03-19 17:37:09
192
原创 【C++】STL库面试常问点
C++标准模板库(Standard Template Libiary)基于泛型编程(模板),实现常见的数据结构和算法,提升代码的复用性和效率。
2025-03-19 17:18:26
472
原创 【网络】URL与DNS
SSL/TLS 握手(HTTPS 场景):客户端发送支持的加密套件列表;服务器选择加密方式并返回证书;客户端验证证书有效性;DNS 解析:浏览器检查本地缓存(浏览器缓存-系统缓存-路由器缓存),若无则向本地DNS服务器递归查询,获取对应IP。建立 TCP 连接(三次握手):客户端发送SYN;服务器发送SYN-ACK包;服务器处理请求:解析请求路径和参数;生成动态HTML内容;发送 HTTP 请求:客户端向服务器发送对应的url的GET请求。接收 HTTP 响应:浏览器解析服务器状态响应码。
2025-03-09 14:19:00
340
原创 【网络】HTTP协议、HTTPS协议
HTTP(超文本传输协议):工作在OSI顶层应用层,用于客户端(浏览器)与服务器之间的通信,B/S模式无状态:每次请求独立,服务器不保存客户端状态(通过Cookie/Session扩展状态管理)。基于TCP:默认端口80(HTTP)、443(HTTPS),保证可靠传输。请求-响应模型:客户端发起请求,服务器返回响应。
2025-03-08 21:26:19
1578
原创 【网络】多路IO复用
select:(优点:简单,易用,跨平台;缺点:受最大FD限制,每次调用须全量拷贝文件描述符到内核空间)epoll:(优点:高效、支持大规模连接;缺点:使用红黑树+链表,内存消耗高且仅适用Linux系统)poll:(优点:不受FD限制;缺点:每次调用须全量拷贝文件描述符至内核空间,遍历整个。函数会返回发生事件的文件描述符列表,避免了遍历所有文件描述符的开销。函数注册文件描述符和对应的事件,当事件发生时,数组来确定哪些文件描述符发生了事件)Linux 特有的 I/O 复用机制。
2025-03-08 20:06:27
990
原创 【网络】TCP常考知识点详解
首部包括固定部分(20字节)和可选选项(最多40字节),总长度最大为60字节。计算包括伪首部(源/目的IP、协议类型、TCP长度)、TCP首部和数据,确保数据完整性。上层协议(如HTTP、FTP)传递的数据,长度由MSS和窗口大小共同决定。期望收到的下一个字节的序号,表示接收方已正确接收之前的所有数据。表示当前报文段数据部分的第一个字节的序号,确保数据按序传输。:计算往返时间(RTT)和防止序列号回绕(PAWS机制)。接收方的可用缓冲区大小,用于流量控制(滑动窗口机制)。指示首部长度(以4字节为单位)。
2025-03-08 14:13:27
650
原创 【C++】面试常问八股
打破循环引用(双向链表、树结构中的父子节点)、缓存系统(缓存持有weak_ptr,外部使用shared_ptr)、不要求延长对象生命周期。释放结构化元素时优先释放子内存:结构体或类中包含动态内存的指针成员时,直接释放父对象会导致子内存无法访问,从而泄露。指针赋值前避免孤立内存:指针被重新赋值前,若未释放原指向的内存,该内存将无法被访问或释放,导致泄漏。override关键字(C++11):显式标记派生类覆盖基类虚函数,避免隐藏(hide)错误。(避免内存泄漏):基类虚构函数必须声明为虚函数,避免派生类。
2025-02-25 22:16:27
420
原创 【C++】vector数组_栈_队列
定义是 C++ 标准模板库(STL)中的一个容器类模板,用于表示一个动态数组。它可以在运行时动态地改变大小.特点动态大小:与普通数组不同,vector的大小可以在运行时动态地扩展或缩减.随机访问:支持随机访问,可以通过索引直接访问任何元素,访问时间是常数时间复杂度(O(1)).自动扩容:当添加的元素超过当前容量时,vector会自动扩容以容纳新元素.元素连续存储:所有元素在内存中是连续存储的,这使得它在进行随机访问时效率较高,但插入和删除操作(尤其是非尾部操作)可能会导致元素的移动,从而影响性能.
2025-01-08 17:19:29
134
原创 【C++】多态
这样,当类的对象在创建时便拥有了这个指针,且这个只针对值会自动被设置为指向该类的虚表。:子类中函数名和父类中函数名相同,子类对应函数会屏蔽父类同名函数。(编译时多态):函数重载(运算符重载),编译时可以确定的多态。关系,子类重写父类虚函数,并且父类指针调用子类重写的虚函数;C++实现多态的前提条件,存在。发生在基类和子类中,并且。才能确定具体调用哪一。
2025-01-07 09:56:01
331
原创 【C++】const关键字_运算符重载_继承
在成员函数的末尾加上`const`,该成员函数不会修改对象的状态(即不会修改对象的任何成员变量)• `const`修饰返回值,可以防止返回值被修改。通常用于返回对象时,防止返回的对象被修改。• `const`修饰函数参数,可以防止函数内部修改参数的值,这对于引用和指针参数特别有用。关键字用于指定变量的值在初始化后不能被修改。它主要用于提高代码的安全性和可读性。• `const`在指针前:指针指向的数据是常量,不能被修改。• `const`在指针后:指针本身是常量,不能指向其他地址。
2025-01-06 17:32:12
295
原创 【网络】ARP表、MAC表、路由表
动态MAC是通过交换机学习得到的,在经过一定时间(默认300S)内如果未学习到对应地址,则会被老化机制(内存空间有限)删除,动态MAC可以被静态MAC地址覆盖。缺点:不够灵活,不适用于网络拓扑变化较大的网络。静态ARP由网络管理员手动配置和维护的IP-MAC映射关系,不会被老化机制删除,更加稳定,可以通过将网关设备进行静态ARP绑定,防止ARP欺骗攻击。动态ARP是由设备通过ARP学习自动生成和维护的IP-MAC映射关系,可以被老化和自动更新,也可以被静态ARP覆盖,适用于拓扑结构复杂的网络。
2025-01-03 17:54:57
844
原创 C++_static关键字
静态成员不能在定义时对变量进行初始化(即不能在构造函数列表进行初始化),一定要在类外进行初始化(因为静态成员不属于某个对象,而是属于类)(const修饰的成员变量除外,可以直接在类内进行初始化)一般来说,函数的作用域和全局变量一致,为整个程序,但是用static关键字修饰函数的时候,其作用域变为定义它的源文件,不能在其他文件被调用,用extern调用也不行。static const int 和static const char 类型可以在类内初始化。静态全局变量的存储区域为。
2024-12-31 19:49:37
523
原创 C++引用
C++中的引用是一种特殊的类型,它是一个(或者叫作“引用名”),用来。一旦引用被初始化为一个变量,它就不能被改变指向另一个变量。引用必须在声明时被初始化,并且之后引用名和它所指向的变量名可以互换使用。引用是C++中一个非常强大的特性,它提供了,同时保持代码的简洁性和可读性。
2024-12-30 17:50:35
1184
原创 SQL注入_简记
SQL 注入(SQL Injection)是一种恶意的网络安全攻击技术,攻击者通过在用户输入或其他数据源向应用程序发送的数据中注入恶意的 SQL 语句,从而欺骗数据库执行非预期的操作。以下是关于SQL注入的知识点简记脑图。
2024-12-29 14:57:23
190
原创 UML——统一建模语言
序言:是统一建模语言的简称,它是一种由一整套图表组成的标准化建模语言。UML用于帮助系统开发人员阐明,展示,构建和记录软件系统的产出。UML代表了一系列在大型而复杂系统建模中被证明是成功的做法,是开发面向对象软件和软件开发过程中非常重要的一部分。UML主要使用图形符号来表示软件项目的设计,使用UML可以帮助项目团队沟通、探索潜在的设计和验证软件的架构设计。
2024-09-22 20:50:17
551
原创 MySQL-数据库设计、反射、注解
在1NF的基础上,要求非主键字段的值必须完全依赖主键(不能部分依赖)在2NF的基础上,要求非主键字段的值不能传递依赖。数据库表中的字段都是单一属性,不可再分。
2024-09-02 16:22:03
362
原创 Mysql数据库-JDBC
JDBC(Java DataBase Connectivity) ,Java数据库连接 一种用于数据库访问的应用程序API,由一组用Java语言编写的类和接口组成。可以用统一的语法对多种关系数据库进行访问,而不用担心其数据库操作语言的差异。
2024-08-30 12:46:27
311
原创 MySQL数据库(2)——DML、视图、函数
在查询某个字段或某张表时,我们可以给这个字段或这张表取一个别名,这种查询就叫别名查询,一旦 字段/表 有了别名,原字段名/表名直接失效。主要关键字:insert delete update select。如果一定要使用,需要使用着重号(也叫反引号``)来进行着重标明。用于添加、删除、更新和查询数据库记录,并检查数据完整性。某些场景下,我们希望查询出来的数据是不重复的,可以使用。时,需要用到一个关键字叫。,但这个关键字在书写时。
2024-08-27 15:23:21
735
原创 MySQL数据库(1)
它不仅指狭义上的数字,还可以是具有一定意义的文字、字母、数字符号的组合、图形、图像、视频、音频等,也是客观事物的属性、数量、位置及其相互关系的抽象表示。”、“阴、雨、下降、气温”、“学生的档案记录、货物的运输情况”等都是数据。它是可识别的、抽象的符号。(1)数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。(2)数据库是数据管理的新方法和技术,它能更合适的组织数据、更方便的维护数据、更严密的控制数据和更有效的利用数据。
2024-08-26 08:46:42
283
原创 JavaSE基础(13)——多线程
②实现 Runnable接口,重写Runnable接口中的run()方法。同时执行两个Java程序,是启动了两个java虚拟机,不是多线程执行。①继承Thread类,重写Thread类中的run()方法。进程:程序的一次运行过程,计算机资源分配的基本的单位,只要启动java虚拟机就会自动启动一个线程,叫做主线程。并行:多个CPU同时执行多个任务。(采用时间片轮转调度算法)完成特定功能的指令集合。程序内部的一条执行路径。
2024-08-24 19:54:09
331
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人