一贴搞定,百度&滴滴&华为面经
由于没有当场记录下面试题目,有点遗忘。所以就不按一二三面这种顺序写了,而是一股脑地铺陈直叙,大家见谅。
- 百度(三面完成)
Title:Java开发
1. Java中有什么数据类型?
2. Java中的int和Integer有什么异同?你觉得int a = 128和Integer a = new Integer(128)一样吗?
3. Java的集合类了解吗,把你了解的讲一讲?
4. 讲讲HashMap的线程安全如何实现(ConcurrentHashMap的底层实现原理,JDK1.7和JDK1.8在实现上的差别)
5. 多线程了解吗,Java中多线程的有哪些实现方式(Thread, Runnable, Callable)
6. 假如你自行实现了一个线程类实现了Runnable接口,对于它的实例对象直接调用run()方法和start()方法有什么不同?
7. 讲讲Java里的线程池和其特点
8. 在什么情况下使用线程池?多线程的底层实际是如何调度的?
9. 在Java里多线程并发的安全问题一般怎么去处理?(synchronized和lock)
10. synchronized关键字和lock各自是怎么实现的
11. 讲讲你实习的时候做了什么
12. 数据库的底层实现有了解吗?
13. 假如mysql中有一张以亿为单位的表,查询时已经到达了单表单机的极限,你会怎么去处理和优化?
14. 如果有一个文本类型的字段,你要频繁对其进行查询,例如通过限定userName来搜出user的其他信息,在分布式环境下怎么做?
15. elasticsearch的架构和搜索优化
16. 设计一个高并发的秒杀系统
17. 快排的原理,为什么平均是O(N * lgN),有看过各大语言的标准库里排序算法的写法吗?
18. 智力题一道
19. 以后想做什么方向 & 手里有什么offer?
后两轮的最后我都问了问Java在百度里的生态和地位(毕竟著名的c++和php大厂),答复是Java在百度内部主要是做跟交易&金融相关的后端系统、大数据生态、JVM相关的项目。
面试官也表示,基本他组里的人都会Java和c++,平时都是根据项目需求来混着写。所以Java进来,必须会承担Java的项目,也需要学c++。
- 滴滴(三面完成)
Title:CTO线研发工程师
1. Java集合类了解吗,讲一讲。
2. ConcurrentHashMap
3. volatile关键字有什么用(包括底层原理)
4. 实习时做了什么
5. Hadoop的架构和组件
6. 堆排序的原理,描述过程,为什么是O(N * lgN)的时间复杂度
7. Redis的数据一致性问题(分布式多节点环境 & 单机环境)
8. Redis的主从同步底层实现
9. 个人项目相关(问了挺多,避免过于暴露身份就一笔带过了)
10. 多种计算模型的优缺点(Hadoop、Spark、Flink)
11. Flink里的watermark和exactly-once语义如何实现
12. Spark里的一些概念(partition、container、stage等等吧)
13. 数据库索引了解吗,B+树的特性和建树过程。
14. 个人技术生涯规划(短期 & 中期)
滴滴三轮刚下来,给我印象挺不错,很踏实,有遇到普通型面试官、耐心探讨型面试官、技术导师型面试官。
感觉滴滴内部的技术机会很多,很多方向都需要从低级到高级的工程师,技术层次完美介于BA的成熟技术架构和各种新兴独角兽之间。
可能因为做过的东西应该不是太多同学做过,所以面试的过程里大概有60%甚至70%的时间都在抠暑假实习和个人项目,所以我的面经不太具有代表性。
- 华为(一面完成)
Title:大数据研发工程师
1. 讲讲Hadoop的架构和组件
2. 讲讲Redis的架构和组件
3. Redis在主从同步的时候还能接收并执行client的命令吗?怎么实现
4. 问实习和个人项目
5. 如何快速地将一个二进制数的第k到第k+n位全置为1?
6. 未来想做什么方向?
华为一向玄学就不担心了。
真心希望百度和滴滴能挺过去 = = 希望接到hr的电话。但是看了牛客上其他同学的滴滴面经里的难度,感觉我要被放弃了。
另外难得经过九九八十一次笔试后终于过了一次头条的笔试,过两天周末还得刚一波头条那种疯狂手撕算法面,面完头条我再来更新一波头条跪经好了😊
#面经##百度##滴滴##华为##Java工程师#