RZXBXie level
获赞
540
粉丝
208
关注
6
看过 TA
7383
武汉大学
2025
后端
IP属地:湖北
求offer
私信
关注
2024-08-21 01:19
武汉大学 后端
总时长1h45min=========项目、实习========总共10分钟左右,主要问做了什么,怎么做的,有什么收获,遇到了什么问题以及怎么解决的。==========个人背景========、- 自我介绍- 介绍竞赛经历,并挑一个有挑战性的比赛讲讲,包括做了什么事、备赛做了什么等等- 在技术这一块,你比较擅长哪一部分?- 闲聊==========八股文==========- Go的GMP了解吗?- 进程、线程和协程有什么区别?- 追问:协程切换开销比线程小,大概小多少?- 追问:进程切换的开销是什么?- 讲一讲计算机网络七层模型以及常用协议- 想想讲讲TCP的工作原理- 比赛中常用的数据结构有哪些?- 追问:有没有自己实现一些数据结构用到业务中?- 有没有了解默克尔树?- 讲一讲B+树底层的实现原理、应用场景、优缺点- 追问:时间复杂度和空间复杂度是多少?- 讲讲你知道的所有的排序算法,它们的时间复杂度、算法思想是怎样的- 数据库用过哪些?(说了MySQL和Redis)- 追问:讲一讲它们优化的地方或者避坑的地方- 追问:什么时候用Redis?- 追问:介绍一下跳表- 追问:什么时候不能用Redis?- 缓存三兄弟,原理以及解决方式- 讲讲布隆过滤器- 追问:误判的时候如何评估容量以减小误判率?- 讲讲Redis里面的数据类型- 设计模式了解什么?- 追问:讲讲单例模式,饿汉式和懒汉式分别适用于哪些场景?- 追问:讲讲设计模式的原则- 追问:你在开发过程中用到了哪些原则?- 接口设计的原则了解吗?- 使用GORM时,插入0值会保存到数据库中吗?更新时写入0值会存储到数据库中吗?============编程题===========1. SQL题(不会)2. 使用GO语言,设计一个带过期时间的缓存
查看30道真题和解析
0 点赞 评论 收藏
分享
2024-08-22 17:11
已编辑
武汉大学 后端
打x的问题没答上来[] 自我介绍[] 讲一下C++里面的智能指针[] 你提到了RAII的思想,能不能具体讲讲[x] 按照RAII的思想,如果打开一个文件描述符失败了,一般会怎么处理?[] 讲讲C++里面new和malloc的区别[] new具体是怎么分配内存的?[] 你提到了brk和mmap这两种分配方式,能详细讲讲吗?[] 什么时候选择brk,什么时候选择mmap?内存阈值是多少?[] 你提到了使用brk分配内存的时候,free的时候并不会立即归还给系统,为什么要做这样的事?[] 如果用malloc频繁的申请小块的内存,会出现什么问题?[x] 那你知道malloc会怎么管理这些内存碎片吗?具体是怎么做的?(答了会整理碎片,追问具体怎么做的没答上来)[] 你提到了堆内存和共享内存,能讲讲还有哪些内存空间吗?[] 栈区上面的内存是怎么开辟的?[] 那你知道C++对象的最小的占用空间是多少吗?[] 追问:为什么是1个字节?为什么不是0字节?为什么不能大于1个字节?[] 如果一个空对象里面只有一个虚函数,那这个对象的大小是多少?(4字节或8字节)[] 追问:为什么加了一个虚函数后大小就不是一个字节了?(多了个虚表指针)[] 能不能讲讲虚表是怎么做的?(虚函数是怎么实现的?)[] 比如有ABC三个类,A类里面有一个虚函数实现,B类和C类分别继承自A类,B类有自己的虚函数,C类没有。能不能分别讲讲B的对象和C的对象的内存分布情况?[x] 操作系统如何做线程调度的?[] 现在有一个多线程的程序,他们同时去修改一个int类型的全局变量,那这个时候会有线程安全问题吗?[] 追问:为什么会有线程安全问题?比如多个线程同时对i++,会有什么问题?(只加了一次)[] 追问:那应该怎么避免这种情况的发生呢?(单例模式)[] 追问:你提到了全局变量使用单例模式来替代,那具体应该怎么做呢?(静态局部对象)[] 追问:还有其他方法吗?(原子操作、加锁)[] 追问:你知道C++里面提供了哪些原子操作吗?[x] 追问:如果现在修改的不是int变量,而修改的是全局map,还能用原子操作解决并发问题吗?[] 回到多个线程进行i++这个问题,a线程将i加了1,线程b也将i加了1,但是线程b并没有感知到线程a将i加了1,是什么原因导致了这个问题呢?(可能是缓存没同步)[] 追问:你这里的缓存是什么缓存?(CPU缓存)[] 追问:能讲讲CPU的缓存吗?它和内存有什么区别?[] 追问:那你能讲讲如何做才能避免缓存不同步的问题吗?(MESI协议)[] 追问:能讲讲这个协议吗?[] DNS解析的过程是怎样的?[x] 追问:DNS向其他几级服务器查询的时候,用的什么协议?[] TCP的数据包有大小限制吗?(有,大了要分片)[x] 追问:你知道这个限制是多大吗?(回答的1500字节,实际应该是1460字节)[] 追问:比如我一个TCP发送方,在发送的时候一次性不能超过1500字节吗?(一个TCP包不能超过1500字节)[x] 追问:实际上调用send的时候,这个地方会有限制吗?(不了解网络编程)[x] 追问:接收方调用receive的时候,一次接受1500字节吗?(不了解网络编程)[] TCP的servier端调用close关闭连接,这时候client端继续发送数据,会出现什么情况(我回答了正常的四次挥手的过程,但是面试官的不太满意,不了解close是怎么做的)[] MySQL的事务怎么实现的回滚?(undolog)[] 追问:讲讲undolog是个啥?[x] 追问:它记录的是动作还是记录的数据?[] 追问:每次操作都会向undolog中写内容,那如何解决undolog过大的问题?(我回答的效仿redis的AOF重写)算法题如图:
ClockworkC...:鬼鬼 这么多问题吗
查看17道真题和解析
0 点赞 评论 收藏
分享
2024-08-01 20:36
武汉大学 后端
就要上岸了的小辣鸡很...:红黑树和哈希表是两种常见的数据结构,它们各自有不同的特点和适用场景。相比于哈希表,红黑树具有以下优点: 有序性: 红黑树是一种平衡二叉搜索树,能够维持元素的有序性。这使得它非常适合用于需要排序、范围查找和顺序遍历的场景。 哈希表中的元素没有顺序,通常用于快速查找、插入和删除。 性能稳定性: 红黑树的查找、插入和删除操作的时间复杂度是 𝑂 ( log ⁡ 𝑛 ) O(logn),不受数据分布影响。 哈希表的平均查找、插入和删除操作的时间复杂度是 𝑂 ( 1 ) O(1),但在哈希冲突严重时可能退化为 𝑂 ( 𝑛 ) O(n)。 避免哈希冲突: 红黑树不依赖于哈希函数,因此不存在哈希冲突问题。 哈希表需要处理哈希冲突,这可能导致额外的性能开销和复杂性。 内存使用: 红黑树不需要额外的内存来存储哈希函数或处理哈希冲突(如链表或开放地址法),内存使用较为稳定。 哈希表通常需要额外的空间来处理哈希冲突。 灵活性: 红黑树可以方便地实现更多高级操作,例如:查找前驱、后继,按顺序输出所有元素,以及范围查找。 哈希表不直接支持这些操作,通常需要额外的处理。 可预见性: 红黑树的性能相对可预测,因为不依赖于数据的哈希分布。 哈希表的性能可能受哈希函数的质量和数据分布影响。 适用场景 红黑树: 适用于需要保持元素有序的场景,例如数据库索引、排序相关操作和需要快速获取最大最小值等。 哈希表: 适用于快速查找、插入和删除而不关心元素顺序的场景,例如实现字典、集合等。 根据具体需求选择适合的数据结构,可以更好地满足性能和功能要求。
查看1道真题和解析
0 点赞 评论 收藏
分享
2024-06-21 23:49
武汉大学 后端
想踩缝纫机的独行侠:膜拜大佬
查看2道真题和解析
0 点赞 评论 收藏
分享
2024-06-11 09:47
武汉大学 后端
0 点赞 评论 收藏
分享

创作者周榜

更多
关注他的用户也关注了:
牛客网
牛客网在线编程
牛客网题解
牛客企业服务