百度后端C++电话一面

本文分享了一次百度后端C++岗位的电话面试经历,涉及知识点包括JSON、XML与protobuf的差异,左值与右值的概念,红黑树、TCP与UDP协议的区别,C++中struct与class的不同,函数重载实现,多线程与线程池原理,以及短网址服务的设计思路等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 
  • Json、XML差异?说全点,能想到的所有差异。然后protobuf不小心被我提出来了,开始扯三个的差异。。。。然后问优缺点、服务端客户端使用及接口更新的影响范围如何缩小
  • 左值,右值区别
  • map用什么?红黑树
    还可以用什么方法实现?(为什么不问我红黑树是什么?已经准备好详细的说。大脑短路答了个,二分搜索。第二个问题就跪了,别人的面经引到什么就谈什么呀。。。)
  • 网络懂么?用的多么?不多,就用过tcp。嗯那就说这个,客户端发送1kb的客户数据,通过tcp与udp发送,两种协议读取时读到的数据有可能是多长?没有深入了解过,感觉都接收1kb
    有没有其他可能?tcp也有可能分包
    假设已经收到了客户数据呢?不知道。。。(当时问了好久也没想出来答案,这是不是考察udp有可能收到其他广播的信息?)
  • struct、class的区别是什么?默认private/public
    还有什么?struct支持C语言解析
    还有什么?不知道
  • 函数重载是怎么实现的?name mangling
    那参考了哪些信息?函数名、参数及类型、参数顺序
    还有什么?没想到还需要什么信息
    那是否考虑返回值类型?不清楚,但我想重载函数使用不会根据返回值而判定,所以我认为可能没考虑
  • 信号槽的原理?这里回答提到了多线程
  • 如果有多线程任务怎么办?理解错了,回答提到了线程池
    线程池怎么实现?XXXXX,说的是回调方式,用bind、function
    除了回调还有什么方法?(没想到)
  • 假如现在有多个任务安排给线程池,分别从吞吐量、响应时间两种方面进行任务安排,分别如何安排?(完全理解错误,答了好几次,都不在点上,现在知道应该是task scheduler)
  • 多线程与多进程的CPU调度差异?没学过
  • hash知道么?怂了,不知道
  • hashmap冲突怎么办?不知道l?? ?list与vector区别
  • LRU算法知道么?没听过
  • map是线程安全的么?不是
    如果多个进程同时访问map,如何保证安全?我说的建立镜像供多线程使用
    问那能保证多个线程的操作顺序不变么?不能
    那如果有大量线程访问都要建立一个映像?是的,没想到其他合适的方法
  • 还问了项目中提到的心跳包、守护进程怎么实现的?如果守护进程崩溃了怎么办?
  • 换了个问题,短网址服务怎么做?通过用redis做存储,做长短网址映射
    然后问了redis突然崩溃怎么办?持久化,两种方式RDB/AOF
    这两种分别怎么实现的?不知道(细节模糊了)
    回到短网址服务,如何做映射?md5
    没这么长的短网址,要缩减为短的,有很多这样的算法,那如果两个网址缩短后一样怎么办?再加一个id做标志位
    那如果有1万个网址一样,怎么办,id从1到1万?不知道

Techie亮博客,转载请注明:Coologic » 百度后端C++电话一面

Coologic 博客域名已更改,已从 www.techieliang.com 改为 www.coologic.cn,上述链接地址受到影响,若需查看源文请手动修改,多有不便,敬请谅解。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值