百度网盘Golang开发一面凉经
时间线:11.21 于ssob投递,12.1 电话约面,12.04 一面,面试时间45min。这么多天没消息了,估计是凉凉了
百度居然是接受Java转Golang的,最近我也开始准备着学一下Golang相关的技术栈。遇到的面试官很好,询问项目细节和八股问题时也会给出引导。不过此次面试过程中,面试官未开摄像头。整得我很不安,因为不知道对面的神情状态。
此次面试的重点围绕MySQL和Redis进行发问,这两块我学的还是挺充分的,但很多八股还是有点小忘。顺带还问了点消息队列,答的一坨。点评项目在历次面试中必问一人一单和超卖问题的解决思路,以及为什么如此技术选型。很奇怪的是JVM在之前几次面试中基本都不问,不知道是为什么,可能后面的面试中会问到吧?
下面是面试内容:
基础信息、项目与实习意向
- 好的,先自我介绍一下 。
- 之前对Golang有了解吗 ?
- 这中间有没有说去接触一下Golang,简单了解一下 ?
- 行,OK。那针对你做过的项目,然后来先做个简单介绍 。
- 第二个项目可以介绍一下吗 ?
- 行,你这俩项目的话都是你自己做的(后端)吗 ?
- 当时有正常跑起来,有正常线上应用是吗 ?
- 我看你这集群化,你这集群模式下你是怎么做的?你这是服务的集群是吗 ?
- 那Redis集群里,搭建一个你用的是Redis的集群模式,是这意思吧 ?
- 然后用的是哪种主从?然后主从之间是怎么通信的呢 ?
- (关于哨兵模式)具体遇到啥困难 ?
- 现在学习忙吗 ?
- 大四的时候就可以再准备那个论文啥的,是吧 ?
- 你这边主要Java是吧 ?
Java并发与数据结构
- 再聊聊Java并发编程这块,然后线程池那些核心参数,你这边用到过哪些参数
- 你常用的(参数)就行 。
- OK,Java里面的HashMap的底层(原理是什么) ?
- 那红黑树这块有了解吗 ?
- 可以简单聊聊对它(红黑树)的理解 。
- 这个HashMap我刚才说到底层原理,然后它的底层是如何解决哈希冲突的 ?
Redis
- 你这里面用到了这个分布式锁是吧 ?
- 然后它的实现原理,以及你是怎么解决死锁问题的 ?
- OK。行,那关于他这个过期机制你了解哪些 ?
- 讲一下Redis的过期淘汰策略
- 然后那个穿透和击穿有啥区别吗 ?
- 那他俩怎么解决呢?
- 那项目里还有用到Redis的哪些特性?
- 在你理解为什么用Redis,然后Redis为什么快 ?
- OK,那说到数据结构了,然后聊一下你都用过哪些数据结构,或者说Redis它底层的数据结构。(这边我提到了ZSet的底层实现)
- 这个跳表你是怎么理解的,就再具体一点 ?
- 那他这个多层列表是有序的吗 ?
- 非关系型数据库,然后除Redis还有其他的还有接触过程 ?
- 你比如Mongo、Memcached这些有接触没有 ?
消息队列
- OK这个RabbitMQ当时你为什么选型选他呢 ?
- 那他这个是怎么实现?就他的那个消费确认机制是什么样的 ?
- 那是你消费完毕之后,还是说在你消费者收到这个消息之后 ?
- 消费完毕之后,这个需要你去主动去告诉他吗?还是说还有一个监听机制,然后去告诉他 ?
- 他怎么保证这个消息不丢呢 ?
数据库
- 对MySQL了解怎么样 ?
- 什么是聚簇索引 ?
- 索引和数据都在叶子节点上 ?
- OK然后需要回表吗?或者你知道回表吗 ?
- 所以聚簇索引需要回表吗 ?
- 需我需要回表的是哪一个 ?
- 刚才咱们也简单聊到了他用的B+树,那这个B+树作为索引,它的优势有哪些 ?
- OK他时间复杂度大概是多少 ?
- 然后这个隔离级别有哪些 ?
- (关于事务隔离级别)这两个现在遇到过吗?或者说你开启过,自己尝试过这种情况 吗?
- 那也就是说,那个可重复读的话,它只能通过加行级锁解决幻读是吧 ?
- 这个跟存储引擎有关吗 ?
- 对,其实但是InnoDB它有一个间隙锁是可以用它去解决(幻读)。了解过听说过吗 ?
Go语言考察
- 行,简单先说说你对Go的理解 。
- 话说你有没有做做过简单的对比 ?
- 你是刚准备面试是吗?刚开始准备是吧,我这是第一个吗?
算法题
- 行,然后算法怎么样 ?
- 能看到吗?(算法题:无重复字符的最长串 lc03,讲了一下思路然后8min搞定。仍然无济于事,前面八股和项目答的太烂了)
反问
- 部门的主要业务(国外出海网盘的安全反作弊业务)
- 面试表现的改进
面经总结回顾 文章被收录于专栏
本专栏用于记录我的日常实习、暑期实习和秋招中面经的记录、反思和总结
