百度-移动软件开发-三面面经
背景:一开始投递的Java后端开发,笔试完调剂到移动软件开发,所以面试过程中没多问项目里的东西
一面(9.12-37min)
-
自我介绍
-
你为什么项目都是后端开发(一开始投递的后端开发,调剂到移动软件开发)
-
对移动端开发感兴趣吗?
-
如何保证一个变量的原子性
-
讲一下ThreadLocal
-
HashMap底层数据结构
-
HashMap扰动函数
-
ConcurrentHashMap
-
ConcurrentHashMap是不是绝对并发安全的
- 编程题:反转m到n之间的链表(头插法,思路对但是编译一直不全部通过,最后说你要是能写出来就二面,最后又给了两分钟,发现是中间不小心改变了m的值导致一直有错,后来用temp来记录m顺利通过)
- 最后追问你对移动端感兴趣么?
二面(9.12-55min)
-
自我介绍
-
算法题:先说一下LRU是什么?如何设计?然后开始写代码(顺利通过)
-
数据链路层
-
ping内部流程
-
TCP慢启动
-
TCP三次握手
-
TCP可靠传输
-
说一下可变大小的滑动窗口协议
-
Https连接流程
-
说一下DNS解析过程
-
DNS解析在网络不好的情况下怎么办
-
DNS解析请求的服务器单机并且响应速度慢怎么办
-
问了一个 什么攻击(确实不知道,记不清面试官说的是什么攻击了)
-
操作系统是什么
-
并行和并发
-
页面调度算法有哪些
-
进程调度算法(说了5个就给打断了)
-
知不知道公平调度算法
- NIO和AIO
- 安卓和IOS你偏向哪一个
- 最后提了一嘴他们组有个十分优秀的小伙子从安卓转IOS,也不错
三面(9.12-56min)
算是hr面,但是面试官应该也是搞技术的(面试官说话十分温柔),一开始问了一些常规的hr都问的问题,最后问了一些项目的相关问题。
-
项目架构的搭建怎么做的?
-
项目那一部分是你所设计的大概说一下
-
知道那些设计模式
-
观察者模式用到那些设计原则
- 反问:因为我是一开始投递的后端开发,就让面试官给讲一下开发过程中后端和移动端的区别,安卓和ios的区别。面试官进行了详细的说明