前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【百度】四面面试题总结分享

【百度】四面面试题总结分享

作者头像
烂猪皮
发布2020-11-30 10:56:11
8590
发布2020-11-30 10:56:11
举报
文章被收录于专栏:JAVA烂猪皮JAVA烂猪皮

一面

  • redis和etcd的区别
  1. 从数据结构方面来讲 Redis支持多种数据类型(string,set,list,hash,zset)
  2. 从读写性能上来讲,Redis读写性能优异,并且提供了RDB、AOF持久化,而etcd v3的底层采用boltdb做存储,value直接持久化
  3. 从使用场景上来看,etcd更适用于服务发现,配置管理,而Redis更适用于非强一致性的需求,比如说是队列,缓存,分布式Session
  4. 两者都是KV存储,但是etcd通过Raft算法保证了各个节点间的数据和事务的一致性,更强调各个节点间的通信;Redis则时更像是内存式的缓存,因此来说读写能力很强。
  5. Redis是c开发的,etcd是go开发的,他是源于k8s的兴起作为一个服务发现。
  6. etcd v3只能通过gRPC访问,而redis可以通过http访问,因此etcd的客户端开发工作量高很多。
  • etcd的Raft算法介绍一下
  • ping指令的实现,涉及到哪些协议
  • linux的用户态和内核态,什么时候切换到内核态
  • 为什么说线程的切换比协程要慢
  • redis、etcd 分布式锁的实现
  • redis string类型的底层实现
  • 和c语言string的区别
  1. 获取字符串长度只需要O(1)的时间复杂度,程序仅需要访问SDS的len属性即可
  2. c语言会产生缓冲区溢出,在Redis中如果需要对SDS进行修改时,API回显检查SDS的空间是否满足修改所需要的要求,如果不满足的话,API会自动将SDS的空间拓展到执行修改所需要的大小,然后才执行实际的修改操作
  3. 减少修改字符串时带来的内存重分配次数,SDS通过free属性记录未使用的字节,通过未使用空间,SDS实现了空间预分配和惰性空间释放两种优化策略。是的修改字符串长度N次最多需要执行N次的内存重分配。
  4. c字符串只能保存文本数据,SDS可以保存文本或者二进制数据

二面

二面基本是场景设计题,具体忘了,有一说一百度面试体验很好,和面试官一起探讨解决的办法

之后有一道智力题吧,有10个元素存到长度为12的数组中,有两个元素重复,找出这两个元素

比如a+b通过把元素累加在进行减法运算可以得到a+b

通过累乘再进行除法运算可以得到a*b的值

考虑到假如元素溢出,那么可已通过平方累加得到a^2+b^2的值

根据关系式可以求得a,b的值

三面

  • go和java的区别 可以从多个角度来讲 比如面向对象来说,多态继承等等 从运行速度来讲,go的并发模型 channel和goroutine 从包管理来讲,go mod 包括之前的dep等等
  • go的gmp调度原理
  • cpu的上下文切换问题
  • channel有无缓冲槽的区别 主要还是从同步和异步来讲
  • redis的zset实现
  • 负载均衡实现 几道算法题 现场手写的 堆排的一道问题,string化整型,链表反转

四面

手写了两道算法,单链表的中间节点 一道dp题目 百度的算法题目都是easy到meduim级别的

然后对项目问的比较细,比如在实现的虚拟链路中keepalive是怎么实现的啊,有什么可以优化的点吗

怎么查找程序的性能瓶颈等等

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-11-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA烂猪皮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一面
  • 二面
  • 三面
  • 四面
相关产品与服务
云数据库 Redis
腾讯云数据库 Redis(TencentDB for Redis)是腾讯云打造的兼容 Redis 协议的缓存和存储服务。丰富的数据结构能帮助您完成不同类型的业务场景开发。支持主从热备,提供自动容灾切换、数据备份、故障迁移、实例监控、在线扩容、数据回档等全套的数据库服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档