自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 UDP 与 TCP 调用接口的差异:面试高频问题解析与实战总结

协议特点适用场景TCP面向连接、可靠、顺序、流式Web服务、大文件传输UDP无连接、不保证可靠和顺序、报文式DNS、音视频流、游戏、IoT、广播TCP 多了一整套连接管理接口(listen/accept),适合需要可靠性和状态跟踪的场景;UDP 接口简洁,但开发者需额外处理可靠性逻辑;面试时建议从接口流程图和代码对比角度进行讲解,配合典型场景举例,能快速展示掌握深度。如果你也有从封装库转向裸 socket 编程的需求,或者想强化网络编程基础,理解这些基础接口的区别会对你帮助巨大。

2025-06-07 19:51:07 770

原创 理解 C++ 多态:概念、实现方式与实战示例

public:// 纯虚函数多态是 C++ 强大而灵活的特性之一,合理运用它可以构建出高内聚、低耦合的系统结构。理解多态不仅对写出优雅代码有帮助,也是掌握设计模式、架构模式的基础。建议配合设计模式中的“策略模式”、“工厂模式”等进一步实践。

2025-05-28 23:08:52 649

原创 double怎么在c/c++中输出保留输出最小精度为一位

在C++中,使用std::cout输出double类型时,可以通过<iomanip>头文件中的std::fixed和来控制小数位数的输出。

2025-05-28 15:59:59 405

原创 HTTP 与 HTTPS

HTTP:传输效率高,但无加密,存在安全隐患。HTTPS:传输安全,适合处理敏感信息,已成为主流。如果你是开发者,在所有生产环境中,强烈建议默认使用 HTTPS,这已经是 Web 安全的基础要求。HTTPS 解决了 HTTP 的哪些问题?HTTPS 是为了解决 HTTP 在安全方面的重大缺陷而提出的。下面我们系统讲解 HTTPS 解决了 HTTP 的哪些核心问题。HTTPS = HTTP + TLS/SSL,加密 + 认证 + 完整性保护,从根本上解决了 HTTP 无法提供的安全性保障。

2025-05-25 23:58:25 2355 4

原创 多线程交叉完成打印-条件变量加互斥锁

【代码】多线程交叉完成打印-条件变量加互斥锁。

2025-05-20 18:12:43 114

原创 Quic如何实现udp可靠传输

QUIC 使用MAX_DATA和帧,让接收方“显式告诉”发送方它还能接受多少数据,从而实现精细的流控。特性TCPQUIC支持多路复用下的流控❌ 需应用层实现✅ 原生支持 per-stream 流控流控信息粒度每个连接一组窗口每个流都有单独窗口流控窗口通告方式被动通告(ACK + 窗口值)主动通告(MAX_* 帧)动态扩展有,但实现不易简洁灵活,用户态易扩展项目TCP + TLSQUIC + UDP握手延迟至少 1~2 RTT最快 0-RTT,首次仅需 1 RTT加密。

2025-05-15 15:41:23 932

原创 常见 RPC 协议类别对比

编码方式:Protobuf传输协议:HTTP/2特点:自动生成代码(强接口约束)支持双向流通信、拦截器高性能(压缩+二进制)✅适用场景:微服务、高性能内网通信、移动/边缘服务维度gRPCThriftDubboMQ RPC自定义 Socket性能⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐易用性⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐可读性⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐跨语言支持⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐⭐推荐用途微服务、移动端开放 API、前端分布式后端。

2025-05-14 16:34:50 1088

原创 深入理解 TCP:重传机制、滑动窗口、流量控制与拥塞控制

本文深入探讨了TCP协议中确保可靠数据传输的四大关键机制:重传机制、滑动窗口、流量控制和拥塞控制。重传机制通过超时重传、快速重传和选择性确认(SACK)等方法应对数据丢失;滑动窗口机制通过动态调整发送窗口大小,实现高效的数据传输;流量控制机制通过接收方通告窗口(rwnd)防止发送方发送速度过快,保护接收方不被压垮;拥塞控制机制通过慢启动、拥塞避免和快速恢复等策略,动态调节发送速率,避免网络拥塞。这四大机制相互协作,共同保证了TCP协议在网络传输中的稳定性、高效性和公平性。

2025-05-11 00:13:16 1804

原创 为什么tcp不能两次握手

TCP 不能采用“两次握手”是因为:服务器无法确认客户端是否“收到并响应了”连接确认,这会导致错误连接、资源浪费,甚至安全问题。确保可靠连接建立;防止因网络延迟导致的“旧连接请求”被误接受;双方都确认对方已准备好通信。

2025-05-10 21:45:55 517

原创 lambda 表达式

特性说明[]捕获外部变量(值/引用/混合)()定义参数列表mutable允许修改值捕获的副本-> type指定返回类型(可省略)可嵌套/递归支持与 STL 高度集成sortfor_eachfind_if等。

2025-05-10 00:10:49 615

原创 值拷贝、浅拷贝和深拷贝

场景建议使用方式原因/说明基本数据类型拷贝值拷贝即可开销小,语义清晰拷贝 STL 容器元素默认拷贝或 moveSTL 容器元素通常支持深拷贝(比如类中含动态分配资源深拷贝避免浅拷贝导致的内存错误大对象不希望复制资源移动语义(C++11+)如, 可使用提高效率遍历对象不希望拷贝遍历避免性能浪费,防止无意修改只需只读访问且无资源冲突浅拷贝或引用都可看具体语义和类内部资源结构值拷贝适用于基本类型;浅拷贝默认由编译器生成,容易出问题;深拷贝需要自己实现,适用于资源敏感型对象;

2025-05-10 00:04:47 436

原创 auto推导类型原则

表达式类型推导结果说明值类型(int, double)相同类型基础类型正常推导引用类型(int&)去掉引用auto默认不会保留引用const 值去掉 constauto默认不会保留顶层 const指针类型保留指针类型推导为int*const 指针保留指针本身的 const,但去掉指向对象的顶层 const。

2025-05-10 00:00:56 317

原创 深入理解C/C++内存管理:从基础到高级优化实践

通过合理运用栈、堆、RAII及内存池技术,开发者可显著提升程序稳定性和性能。智能指针与工具链的配合,更是将内存管理从“手动维护”升级为“自动化防御”,为复杂系统保驾护航。栈由系统自动管理,用于存储函数调用时的局部变量、参数及返回地址。其特点是高效但空间有限(通常1-8MB),遵循后进先出(LIFO)原则。使用Valgrind、AddressSanitizer等工具检测内存泄漏,结合日志分析定位泄漏点。​:栈溢出(如递归过深或超大局部数组)​:无需手动管理,避免野指针;动态分配内存,需手动通过。

2025-05-09 21:41:45 590

原创 stringstream和string类型的区别

和是 C++ 中用途完全不同的两种类型,虽然它们都涉及字符串操作,但设计目标和功能有本质区别。

2025-04-06 18:43:44 307

原创 560. 和为 K 的子数组

此方法通过前缀和和哈希表的巧妙结合,将暴力解法 O(n²) 的时间复杂度优化至 O(n),适用于大规模数据场景。​和可被 K 整除的子数组​(利用同余定理,修正负数取模)​最长连续子数组和为 0​(哈希表记录前缀和首次出现的位置通过本题,可以深入理解空间换时间的优化策略,以及哈希表在统计类问题中的高效性。

2025-03-30 16:17:12 178

转载 select、poll、epoll之间的区别(搜狗面试)

对于第二个缺点,epoll的解决方案不像select或poll一样每次都把current轮流加入fd对应的设备等待队列中,而只在epoll_ctl时把current挂一遍(这一遍必不可少)并为每个fd指定一个回调函数,当设备就绪,唤醒等待队列上的等待者时,就会调用这个回调函数,而这个回调函数会把就绪的fd加入一个就绪链表)。每次注册新的事件到epoll句柄中时(在epoll_ctl中指定EPOLL_CTL_ADD),会把所有的fd拷贝进内核,而不是在epoll_wait的时候重复拷贝。

2025-03-27 09:39:31 50

原创 ​C++ JsonCpp库中Reader与Writer使用详解

通过。

2025-03-25 14:09:10 589

原创 763. 划分字母区间

以示例字符串。

2025-03-24 18:56:10 498

原创 正确理解虚基类

菱形继承是指一个类通过多条路径继承同一个基类,形成类似菱形的继承结构。

2025-03-21 19:41:25 822

原创 64. 最小路径和

dp[i][j]表示从起点(0,0)到网格位置(i,j)的最小路径和。这个定义抓住了问题的本质——将全局最优问题转化为局部最优的累积计算。

2025-03-20 23:22:32 995

原创 基于System V的共享内存函数使用指南

的方式,它通过直接读写物理内存实现数据共享,避免了内核与用户空间的多次数据拷贝。但因其无内置同步机制,需结合。以下以System V共享内存函数为例,结合调试函数。共享内存是进程间通信(IPC)中。

2025-03-17 23:26:59 740

原创 首次在 Linux 环境下使用 Git SSH 认证上传代码的全流程指南

通过 SSH 认证在 Linux 环境下使用 Git,不仅提升了代码传输的安全性,还大幅简化了操作流程。本文从密钥生成到代码推送,覆盖了全流程操作与典型问题的解决方案。

2025-03-15 19:57:04 891 3

原创 C++进程间通信方式全解析:从管道到套接字实战代码示例

通信方式适用场景性能复杂度管道父子进程简单通信中低消息队列异步通信,松散耦合中中共享内存大数据量、实时性要求高高高信号量资源访问控制高中套接字跨网络通信可变高开发建议:优先考虑共享内存+信号量组合处理高性能场景,简单通信可使用管道或信号。

2025-03-12 19:41:39 450

原创 右值引用的定义与核心作用

右值引用的引入是C++对性能优化和资源管理的重要改进。通过区分左值/右值引用,开发者可以精准控制对象的拷贝与移动行为,显著提升程序效率。理解其底层机制(如移动构造、完美转发)是编写现代C++高效代码的关键。

2025-03-11 19:14:58 664

原创 多态的实现原理及其优点

通过上述示例,多态通过分层抽象和类型泛化,显著提升了代码的适应能力和可维护性,是面向对象设计的核心思想之一。假设需要设计一个支持多种图形(圆形、矩形)的绘图工具,要求支持动态扩展新图形类型,且能统一调用绘制方法。符合“开闭原则”(对扩展开放,对修改关闭),例如图形系统可轻松支持未来新增的椭圆、多边形等类型。基类)隔离变化,新增功能时只需扩展子类,无需修改现有代。)处理多种对象,避免大量条件判断(如。动态多态通过抽象层(如。

2025-03-11 18:23:09 331

原创 MySQL用户管理全解析:从基础到最佳实践

有效的用户管理是数据库安全的第一道防线。通过本文介绍的多层级权限控制、密码策略强化和角色管理机制,开发者可以构建起符合企业安全规范的MySQL用户管理体系。建议结合自动化运维工具定期执行用户权限审计,确保权限设置的持续合规性。

2025-03-11 16:38:05 413

原创 MySQL事务深度解析:ACID特性、隔离级别与MVCC机制

​隔离级别选择金融场景优先选择REPEATABLE READ(兼顾性能与一致性)。高并发读场景可使用READ COMMITTED减少锁竞争​长事务规避:MVCC依赖Undo Log保留旧版本,长事务可能导致存储膨胀​锁与MVCC协同:写操作仍需要加锁,但读操作通过MVCC实现无锁化,显著提升吞吐量通过ACID特性、多级隔离策略与MVCC的协同,MySQL在数据一致性与并发性能之间找到了精妙平衡。理解这些机制,有助于开发者根据业务需求合理设计事务逻辑,构建高可靠的数据库系统。

2025-03-11 13:10:29 1145

原创 C++17 string_view关键字

是 C++17 引入的轻量级、非拥有(non-owning)的字符串视图类型,用于高效地观察现有字符串数据,而无需拷贝或管理内存。

2025-03-09 17:18:21 842

原创 ​数据库索引:数据检索的加速引擎

​索引是一种。

2025-03-08 20:47:53 927

原创 MySQL复合查询深度解析:概念、类型与实战指南

复合查询(Compound Query)指通过逻辑组合多个查询条件或操作,实现对多表数据的关联、筛选和计算的查询方式。它突破了单表操作的局限性,是处理关系型数据库的核心技术。技能层级能力体现​初级​使用IN、简单子查询​中级​熟练运用EXISTS、派生表​高级​设计CTE分层查询、优化执行计划​专家级​改写复杂查询为高性能JOIN操作掌握复合查询的精髓,意味着能够将零散数据转化为商业洞见。建议在真实业务场景中反复练习,同时结合EXPLAIN工具进行调优实践。

2025-03-07 15:38:35 882

原创 MySQL内置函数详解:提升数据处理效率的必备工具

避免在WHERE条件中对字段使用函数,可能导致索引失效。复杂函数嵌套可能影响性能,需结合业务场景优化。不同MySQL版本支持的函数可能不同,需参考官方文档确认兼容性通过掌握这些函数,开发者能够更高效地完成数据清洗、报表生成、动态计算等任务,充分发挥MySQL在数据处理中的优势。

2025-03-06 15:55:03 689

原创 MySQL查询语句完全指南:从基础到高阶实战

根据Stack Overflow 2023开发者调查,MySQL以51.1%的使用率蝉联最受欢迎数据库榜首。其查询语句作为数据操作的基石,支撑着全球数百万应用的日常运转。本指南将通过和,带您系统掌握从基础检索到复杂分析的全套技能。

2025-03-05 19:23:40 355 1

原创 数据库表约束全面解析与深度实践指南

数据库约束是数据完整性的第一道防线,需要平衡规范性与灵活性。OLTP系统严格使用约束数仓场景适当放宽分布式系统采用应用层校验定期进行约束有效性审查附录:常用约束查询语句-- 查看约束通过系统化的约束设计,可降低数据异常风险达73%(根据TPC-C基准测试),建立可靠的数据质量保障体系。

2025-03-04 11:28:59 479

原创 数据库数据类型详解:从基础到实战

数据类型是数据库设计的基础,合理选择数据类型可以提高数据库的性能和数据的完整性。在实际开发中,我们需要根据业务需求和数据特性,选择最合适的数据类型。希望本文能帮助你更好地理解和应用数据库数据类型!如果你有任何问题或需要进一步的帮助,请随时留言!😊。

2025-03-03 12:16:31 1053

原创 从卡片柜到数字宇宙:数据库的前世今生与架构解析—— 一篇写给技术新手的数据库全景指南

从打孔卡到云原生,数据库的进化史就是一部人类驾驭信息的史诗。理解其架构不仅能让开发者写出高效SQL,更能洞悉大数据、区块链、元宇宙等技术背后的数据逻辑。正如Linux之父Linus Torvalds所言:“数据是新的代码(Data is the new code)”,而数据库正是承载这份新时代“源代码”的终极容器。在计算机诞生之前,人类用纸质档案、微缩胶片甚至打孔卡管理数据。20世纪50年代,美国人口普查局的一台UNIVAC计算机需要。这种低效催生了数据库的诞生。—— 一篇写给技术新手的数据库全景指南。

2025-03-02 08:45:00 959

原创 数据库操作命令详解:CREATE、ALTER、DROP 的使用与实践

​CREATE:用于构建数据库骨架,需明确字段类型、约束和存储引擎。​ALTER:灵活调整结构,但需关注数据安全与性能影响。​DROP:彻底清理数据,操作前务必确认备份和依赖关系。最佳实践所有 DDL 操作前备份数据。使用事务或工具辅助高风险操作(如 MySQL 的通过注释和文档记录表结构变更历史。掌握这些命令后,您将能游刃有余地设计和管理数据库,支撑业务高效运转!

2025-03-01 20:51:35 1415

原创 437. 路径总和 III

给定一个二叉树的根节点root,和一个整数targetSum,求该二叉树里节点值之和等于targetSum的的数目。不需要从根节点开始,也不需要在叶子节点结束,但是路径方向必须是向下的(只能从父节点到子节点)。

2025-02-28 13:53:47 731

原创 Ubuntu中dpkg命令和apt命令的关系与区别

在 Ubuntu 中,dpkg和apt。

2025-02-27 20:13:26 628

原创 有锁队列VS无锁队列

在有锁队列中,加锁的位置通常是在修改队列的头节点(

2025-02-26 11:04:51 795

原创 GET 和 POST请求方法的区别

安全性 数据暴露在 URL 中,不安全 数据在请求体中,相对安全。GET 和 POST 是 HTTP 协议中最常用的两种请求方法,它们在用途、数据传输方式、安全性等方面有显著区别。数据附加在 URL 后面,格式为?数据暴露在 URL 中,容易被浏览器缓存、记录在历史记录或服务器日志中。请求可以被缓存,适合获取静态资源(如图片、CSS、JS 文件等)。数据在请求体中传输,不会被缓存或记录在 URL 中。

2025-02-25 20:53:47 890

空空如也

空空如也

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

TA关注的人

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