4月份后端面经分享

372 阅读5分钟

自我介绍一下,我是18年本科毕业的,专业是机械设计制造及其自动化,19年10月份裸辞学习python开发,20年5月份入职上家公司从事python开发,今年4月份准备离职,重新找工作。

4月份陆续面了几个公司吧,想去大厂的,结果都挂了。主要原因还是算法题写不出来吧,不知道为什么,一现场写题脑子就抽抽了……

这里主要列一些我想起来的技术问题。一些非技术问题,比如如何学习的、项目中遇到过什么困难,这里就不列举了。

字节跳动-后端工程师(一面挂)

  • Redis为什么快

  • Redis中zset底层实现,zset各种操作的时间复杂度

  • kafka为什么快?kafka在设计上如何保证消息被消费一次且仅消费一次

  • InnoDB底层结构,B+树特点,哪些情况不走索引,!=会不会走索引。一个表,表结构是用户id、登录时间、登出时间,这个登录时间和登出时间适不适合建索引

  • ElasticSearch存储一条数据的过程

  • 算法:

    1.某个有重复元素的排序数组,求某个值第一次出现的下标,时间复杂度要求O(logn)

    2.合并区间,力扣56

一点资讯-后端开发(三面过)

  • B+树特点,手算3层B+树可以存储多少条数据,为什么B+树非叶子节点只存索引指针?

  • InnoDB如何解决幻读的

  • C语言string类型为什么不是二进制安全的,Redis string类型为什么是安全的

  • 缓存击穿、穿透、雪崩概念及解决办法

  • 数据库与缓存一致性

  • 分布式锁

  • Redis string和hash区别

  • 使用Redis实现排行榜功能,细节

  • Kafka如何保证消息不重复、不丢失

  • 编写shell脚本,统计一段时间的访问ip,然后统计访问量前10的ip

  • top k问题

  • HTTPS握手过程

  • Java线程与Goroutine区别

  • GMP模型

  • 设计一个高并发系统,需要从哪些方面去考虑

  • 你知道的排序算法的时间复杂度极限?有比O(nlogn)更快的算法吗?

  • 简单的算法

    1.手写快排

老虎证券-Python开发(二面无音讯,这个我感觉是答得最好的,不知道为啥……)

  • 写个单例模式,代码会有什么问题,那如何保证线程安全?

  • 写个装饰器,如果是带参数的装饰器

  • B+树特点,叶子节点之间是单向指针还是双向指针,写个双向链表插入一个节点

  • 同源策略是什么,前后端如何解决跨域

  • __init__与__new__区别

  • Java如何实现多态

  • 协程特点,用户态和内核态,哪些情况下会发生用户态到内核态的转变

  • in set()的时间复杂度,为什么

  • 如何保证接口的幂等性

  • 内存中堆栈的区别,python垃圾回收机制

  • 数据库优化方法,哪些情况不走索引,%like优化

  • ES倒排索引

  • InnoDB与MyISAM区别

  • select、poll、epoll原理

  • 算法:

    1.买卖股票。手里有股票时只能卖不能买

    2.给定一个列表,内部元素是字典,将这个列表按字典的某一key的value值正排,如果value相同,按另一个key的value的字典序倒排

    3.判断一个树是否是二叉搜索树,并自己实现测试用例测试

百度-后端研发(三面无音讯,不通知就是挂了吗)

  • mysql搭过主从吗,步骤

  • 什么是事务

  • redis数据淘汰策略

  • redis几种数据结构及应用

  • 有遇到过499错误吗

  • 设计一个登录系统,设计一个秒杀系统

  • cookie和session区别

  • Redis和Memcached区别

  • MongoDB与Elasticsearch区别

  • 日志文件中只有ip,一亿行,在限定内存下统计出出现次数最多的IP

  • 在项目中如何使用kafka,pull和push模式的优劣

  • select、poll、epoll区别

  • mysql有几种索引,什么是聚集索引

  • InnoDB与MyISAM区别,应用场景

  • linux命令中跟网络相关的命令

  • 乐观锁和悲观锁概念,如何在订单表中使用乐观锁

  • 实现一个dict,解决hash冲突的办法,链地址法中链表过长会带来什么问题,如何解决

  • 如果让你设计一个类似百度的搜索系统,你会怎么做,尽量详细

  • 算法:

    1.翻转字符串里的单词,力扣151

木瓜移动-Python开发(二面过)

  • 进程、线程、协程区别,应用场景

  • 一个上传Excel的接口,内部逻辑是收到Excel后解析字段,验证入库。目前偶尔报502错误,如何排查问题与解决

  • 算法:

    1.两个列表,求出在a中且不在b中的元素

    2.一个列表所有元素都出现了2次,只有一个元素出现了一次,找出这个一次的元素

    3.一个列表中某个元素出现次数超过了列表长度一半以上,找出这个元素(以上三题最好找出最优方法)

    4.在一个有环链表找出环的入口

    5.求出二叉树的最大深度