- 博客(25)
- 收藏
- 关注
原创 八股文面试攻略六:分布式和集群
把一次分布式事务拆成两个阶段:投票阶段(准备阶段) + 提交阶段。多个数据库要么都成功提交,要么都失败回滚,不会出现部分成功部分失败。Raft 是一种分布式一致性协议通过Leader 选举、日志复制和日志修复机制,确保在网络分区或部分节点失败时,集群仍能保持强一致性和可靠性。序列化是将对象转换成可存储或可传输的字节流,反序列化是将字节流恢复为对象的过程。它的作用包括:①实现网络传输;②持久化存储;③支持跨语言通信;④实现深拷贝。序列化是分布式系统和 RPC 通信的基础能力。RPC。
2025-11-23 18:23:11
544
原创 八股文面试攻略五:数据库
视图的定义视图是一个虚表,是从一个或几个基本表(或视图)导出的表。它只存放视图的定义,不存放视图对应的数据。当基表中的数据发生变化时,从视图中查询出的数据也会随之改变。特点特点详情虚表视图不存储实际数据,仅存储定义.动态性基表数据变化时,视图数据自动更新。作用简化用户操作。视图可以简化复杂的查询操作。比如,将多表连接查询封装为视图,你只需查询视图即可。从多角度数据查看。视图允许你以不同角度查看同一数据。比如,为不同部门创建不同的视图,展示其关心的数据。增强数据库重构的逻辑性。
2025-11-20 21:06:42
790
原创 八股文面试攻略四:网络篇
半关闭状态:TCP 连接的一端关闭了自己的“发送方向”,但仍然保持“接收方向”畅通。半关闭的用途应用层协议中表示“发送结束,但要继续接收”防止死锁(双方都在等对方写)HTTP/1.0 的请求后关闭写端,等待响应半打开状态:连接的一端已经异常退出(崩溃/网络断开/无正常 FIN),而另一端仍然认为连接是“打开”的。半打开的危害服务端可能为“死连接”保留资源心跳机制检测不到会造成长时间僵尸连接高并发下会导致资源耗尽检测方法心跳检测、keepalive超时机制。
2025-11-19 15:18:54
554
原创 八股文面试攻略三:操作系统
虚拟内存(Virtual Memory)是一种由操作系统与硬件(MMU)共同实现的内存管理机制,它为每个进程提供一个独立、连续的虚拟地址空间,使进程“以为”自己拥有完整内存,而实际物理内存可以按需分配,并且不足时可使用磁盘空间进行扩展。三大核心功能提供更大的“逻辑上”可用内存为每个进程提供独立的虚拟地址空间(隔离性)通过按需调页提高性能虚拟内存是操作系统提供的一种机制,用虚拟地址代替物理地址,为每个进程提供独立的虚拟空间,并通过“按需调页”和“磁盘交换”让程序无需关心物理内存大小。
2025-11-17 16:15:06
459
原创 八股文面试攻略二:设计模式
子类可以替代父类,并保证功能不被破坏。一个对象应该尽可能少地了解其他对象,只与“直接的朋友”通信,不要和陌生对象发生关系。高层模块不应该依赖低层模块;二者都应该依赖抽象。抽象不应该依赖细节;细节应该依赖抽象。这样可以降低耦合,提高系统的稳定性、扩展性和可维护性。工厂模式:将对象的创建延迟到子类,通过工厂来负责创建产品对象,而不是直接 new。应用场景:日志写入、支付方式、数据库连接。抽象模式:抽象工厂用于创建“产品族”的对象,而不是单个产品。一个工厂负责生产一整套相关的产品。
2025-11-17 13:53:37
620
原创 代码调试工具 CMake篇
CMake是一个跨平台的自动化构建系统。它本身不是编译器,而是一个“生成构建文件的工具”。简单来说:CMake读取写的文件配置(CMakeList.txt)。根据当前的操作系统、编译器,生成合适的构建文件。然后可以用这些文件去编译项目。
2025-11-15 18:06:14
928
原创 八股文面试攻略一:C/C++
浅拷贝:拷贝指针,不拷贝指向的内容。共享同一块堆内存深拷贝:开辟一个新内存,将内存放进去。防止数据污染默认构造函数使用浅拷贝零拷贝:在网络传输、文件 IO 中,避免在用户态/内核态之间重复复制数据,通过共享内存、DMA、映射技术直接传输数据。减少数据在内核与用户态之间的复制,提升网络传输与大型文件处理性能。
2025-11-14 17:40:29
777
原创 长川科技面试一面
低耦合的设计意味着各个模块之间的相互依赖性降低,每个模块都应该尽可能独立。这样,当一个模块发生变化时,不会对其他模块产生太大影响,从而提高了系统的可维护性和可扩展性。高内聚则是指模块内部的各个元素都是紧密相关的,共同完成一个明确的功能。一个高内聚的模块应该只负责一项任务,这样不仅使得模块更加清晰,也使得代码更容易理解和维护。通俗说就是多种形态,同一个行为具有多个不同表现形式或形态的能力。分为静态多态和动态多态。静态多态主要通过函数重载、运算符重载实现。动态多态主要通过虚函数表、接口类和抽象类实现。
2025-11-12 14:13:56
376
原创 面试记录统计
当一个线程发生故障,导致整个进程崩溃,所有线程都不能工作。而进程不影响,一个进程崩溃,通常不影响其他进程。因为线程是共享资源,而进程之间是相互隔离的。零拷贝、constexpr匿名函数、inline变量、结构化绑定、enum类型。分为创建型模式、结构型模式、和行为型模式。创建型模式:工厂、单例、建造者、原型。
2025-11-11 11:15:28
176
原创 WebSocket协议
首先我们要了解http协议与https协议。协议其实就是数据块(存储特定格式的数据库)其中https协议就是在http协议的基础上进行加密(SSL/TLS).http是应用层协议由客户端发起的。
2025-10-21 17:53:17
832
原创 Linux代码上传GitHub
本文简要记录了Git上传代码的基本流程:1)通过git init初始化本地仓库;2)使用git add添加文件;3)执行git commit提交变更;4)关联远程仓库git remote add origin;5)最后用git push将代码推送到GitHub。文章提供了具体命令示例,帮助程序员快速回顾Git操作步骤,避免因长时间不用而遗忘关键流程。
2025-10-10 18:24:16
258
原创 Mysql连接池的设计与实现
众所周知,MySQL数据库是一个典型的C/S结构,即:客户端和服务器端。如果我们部署好了MySQL服务器,想要在客户端访问服务器端的数据,在编写程序的时候就可以通过官方提供的C语言的API来实现。
2025-10-10 14:23:24
364
原创 异步日志系统
属于多生产者单消费者场景:多个生产者把日志写入缓冲区,单消费者负责把缓冲区数据写入文件。如果只是一个缓冲区,不光要同步各个生产者,还要同步生产者和消费者。这种可以保证生产者的并发,也就是前端不断写日志到缓冲区的同时,后端可以把缓冲区写入文件。所谓异步日志系统与以往日志系统不同的是:我们通过前后端分离+数据缓冲区,实现一次写多个数据而不是一个一个数据的写,因此在性能上要优于普通日志系统,普通日志系统相当于串行写入,而异步日至属于并行。Logger是桥接模式,详细由内部类Impl提供。下面是网上找到的模块图。
2025-10-08 23:26:39
180
原创 通俗易懂解释muduo框架
muduo主从reactor框架解析:采用I/O多路复用(epoll)和非阻塞IO技术,主reactor接收请求并分发给从reactor处理。主reactor通过轮询分配请求到EventLoop池,从reactor创建TcpConnection并注册事件到epoll,事件就绪后调用对应Channel的回调函数。整个流程包括连接建立、事件注册、循环检测和回调处理等环节,实现了高效的网络通信架构。
2025-10-08 22:37:23
302
原创 软考笔记核心知识点
可行性分析-需求分析-概要设计-详细设计-编码-维护-测试设计概要与详细设计抽象化、自顶向下、逐步求精、信息隐蔽、模块独立(高内聚、低耦合)
2025-09-29 15:45:45
447
原创 C++面试
右值引用:指向右值的引用。右值引用的主要作用支持移动语义和完美转发。避免不必要操作(copy),提供性能。可以延长右值的生命周期。C 语言是过程式编程语言,强调函数和过程调用。单例(全局唯一),工厂模式(对象创建)、观察者模式(时间通知),策略模式(算法封装)。右值引用属于移动语义、优化拷贝。深拷贝会开辟新空间复制内容到新空间,而浅拷贝仅指针指向内存地址。右值:没有生命周期,将亡值。左值:具有生命周期,即有一个具体的内存空间。常量左值,既可以绑定左值又可以绑定右值。按照关键字排序,底层红黑树。
2025-09-26 23:08:54
410
原创 C++多线程高频面试清单
本文摘要:文章系统介绍了多线程编程的核心概念与技术要点。主要内容包括:1)进程与线程的区别及通信方式;2)线程创建与管理(pthread与std::thread对比);3)线程同步工具(互斥锁、条件变量等)及死锁避免;4)C++11内存模型与原子操作;5)高级并发技术(线程池、async等);6)常见陷阱与解决方案(数据竞争、TLS等)。重点阐述了线程生命周期管理、同步机制原理及性能优化策略,并对比了不同实现方式的优缺点,为多线程程序开发提供了实用指导。
2025-09-26 20:47:01
787
原创 桂林长海面试-QT(C++方向)
第一次面试确实有点紧张,一开始感觉他们会问项目,忐忑不安的,因为好多技术不熟练。最后问的有点水了,但是回答的确实 不太行。下次继续努力吧!
2025-09-25 16:31:05
111
原创 高性能内存池实现与设计
本文介绍了内存池的设计原理与实践。内存池通过预先申请大块连续内存供应用使用,减少频繁系统调用和内存碎片。文章详细解析了分层架构(线程缓存、中心缓存、页缓存)的实现方法,包括自由链表管理、原子操作等关键技术。同时探讨了死锁预防策略(互斥条件规避、资源排序等)和内存对齐优化问题。该方案适用于高并发场景,能有效提升内存分配效率,但需注意处理复杂度和大型对象支持的限制。
2025-09-17 21:03:07
1019
原创 手写一个高性能定时器
高性能定时器用于需要精确时间控制的场景,如游戏开发、实时系统、金融交易等。其核心目标是减少延迟、提高精度,并优化资源占用。核心是延时处理的模块
2025-07-16 22:19:30
313
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅
1