10.14杭州站小米软件开发面经
结果
加了HR微信,给了口头offer,叫我确定一下意向城市是南京还是上海回复他,之后有人谈薪资。
这里顺便问问大家怎么看?
说上海是只有一个部门(我看了一下好像是小米金融), 南京部门以后会多点
我自己现在在上海读书,一开始考虑的是上海杭州无差别选择,结果突然来了个南京,对南京不是很了解,担心长期的职业发展会不会不如上海(比如不是应届生了想再来上海落户)。
一面
面试官说他是小米应用商店的部门
- 简单的自我介绍一下吧
- docker为什么比虚拟机快(看我简历上有docker的相关经历)
- docker的namespace做了哪些隔离
- 进程的调度算法有哪些?
- 如果让你设计一个进程调度算法,你需要考虑哪些因素
- 进程切换的过程
- 假设是我和面试官两个人开发的一个APP,有客户反馈说连不上服务器,应该怎么办?
- 我从日志记录方面说,能不能通过日志记录定位具体是谁的责任,然后谁的责任谁解决
- 他说还有呢?我就扯到网络协议了,能不能看看TCP3次握手的完成情况来定位问题
- 然后就想不到了
- 讲一下什么是幻读
- 讲一下什么是B 树
- 红黑树的特点
- 如何保护多线程下数据库数据的正确性
- 讲一下什么是乐观锁
- 这里记忆模糊了,可能遗失了一部分题目
- 手写“模拟洗牌”的代码
- 还有什么要问我的?
- 你们的技术栈是啥样的?主语言是啥?面试官提到zookeeper做服务注册发现
- 这里我顺势说了一句,我在实习的时候也做过服务注册与发现的学习
- 为什么不问我JAVA基础和JVM?(答:待会儿会有人问你)
- 你们用的是什么做服务注册和发现?
- 服务注册:registors做docker的服务注册
- 服务发现:简单讲了一下zookeeper\etcd\consul的不同
二面
- 讲一下JVM里面的堆和栈
- String = “小米”是存到JVM的哪里?
- 我有1000个元素要存到hashmap里面,要设置多大的初始空间
- hashmap是哈希桶已使用数量还是所有元素的数量到达hashmap长度乘以负载因子的时候进行扩容
- MyBatis的一级缓存二级缓存是什么
- 这里记忆模糊了,可能遗失了一部分题目
- 手写一个算法,效果是扩展字符串,格式是n(String)扩展n个String相连,例如
- 3(ab) -> ababab
- 3(2(a)) -> aaaaaa
- 3(2(a))b -> aaaaaab
HR面
- 自我感觉如何
- 有没有offer
- 哪里人啊
- 意向工作城市