百度Java面经(OC)
10.28 今天下午接到的电话,我早以为自己凉了...
第一次写面经,没录音,当天二面完把楼主人面傻了,能想起来多少写多少吧。
一面
内容挺简单的
- 自我介绍
- 算法:合并有序数组,写完后要求改成加锁的版本。
- 算法:实现一个队列,提供add和pop方法。
- 谈谈synchronize和锁升级,要求说出monitorenter和monitorexit
- 谈谈volatile
- 谈谈hashmap
- redis缓存穿透
- 线程状态
*** 一个同网段的机器会发生什么
10. GC分区,为什么要分区
二面
能追问到计算机底层的东西都会追问到一些底层知识,我是真的被问傻了,很多都记不起来了。不过面试官虽然严肃但是人很好,追问到你不会的时候会鼓励你说没关系,我只是想看看你能深入了解到哪一步,最后也过了。
- 自我介绍
- 项目
- 谈谈PostgreSQL和MySQL的区别(和项目有关,估计是这个问题觉得我对数据库内容比较熟就没再问过数据库)
- 设计模式六大原则,谈谈对面向对象的理解
- 场景:根据上一问说的设计一个微信朋友圈,说说怎么设计
- 进程间通信方式,谈谈消息队列
- 谈谈信号量,信号量是适用于线程还是适用于进程,如何保证它对两个进程是可见的。
- 场景:生产者消费者,说一说一个无阻塞的消费者生产者怎么实现。(我没大搞懂,面试官说比如生产者生产出来并登记的时候有时候需要加锁阻塞,怎么让这个行为不阻塞)
- 看过Spring源码么?谈一谈AOP,谈到了字节码。
- 从字节码角度谈一谈,内部类和静态类的本质区别是什么?
- JVM内存谈一谈?int存放在哪里,string存放在哪里,方法信息存放在哪里,栈溢出是个什么情况
- 谈一谈内存溢出和内存泄漏,内存泄漏的场景,除了threadlocal?
- java支持变长参数么。
- 谈一谈多态,重载,重写,方法签名。
- 然后是从这开始就比较逐渐深入了,大家要是想参考的话建议自己上网搜资料学习一下,因为我答不上来的问题我都有些记不清...问我了不了解socket,我说bind,listen,accept?然后围绕这一话题,谈了围绕数据到达网卡之后会发生什么,网卡怎么通知有数据,硬中断,软中断,如何自己实现软中断,blablabla...
- 谈谈你对非阻塞的理解,文件描述符知道么?谈谈select,poll,epoll。没深入问下去,但楼主没答好,lt和et很久没复习忘记了
- 接上问开始问IO,谈一谈读取数据的时候会发生什么,然后大概谈了DMA引擎一类的东西,中间依旧穿插了一些和中断有关的问题,还有Java中断和操作系统中断
- 转到操作系统,谈一谈用户态和核心态,然后是一个我忘了的答不上来的问题,然后扯了几句0级特权
然后估计时间也差不多了,就没很深入的问其他的了
19. 谈谈你知道的排序算法,谈谈你知道的查找算法
20.你觉得你哪门课学的比较好?我答了计网,不过也没问我什么特别的问题。
21.你觉得你哪种算法掌握的最好?想了想我觉得bfs有关的都不太难,然后面试官说那写道二叉树层序遍历吧(感谢放水)
三面
不知道是我网络有问题还是面试官有,有段时间断断续续的,感觉有点凉,因为感觉面试官有点想快点结束的意思,之前看别人会有技术问题,但我遇到的不多,不知道是不是网络的原因。
1.项目
2.收获
3.骄傲的事情,后悔的事情
4.人文方面的爱好,成果