Java后台面经,百度+贝壳

我又来贡献面经了

贝壳的题目大多比较基础回忆不起来了,有印象深刻的话会写在里面,主要写写百度的面经

一面

  1. Java的基础数据类型有哪些?String是吗?与封装类的区别?

  2. Java中的继承和多态是什么意思?

  3. 抽象类和接口的区别?

  4. JVM内存划分?每个分块的用途?

  5. JVM垃圾回收机制?

  6. Java中子类的变量初始化的顺序?然后扯了一会类加载器

  7. Java中的4种访问权限?

  8. Java中提供的线程池?聊了一下线程池参数

  9. synchronized和lock的区别?扯了一下区别然后扯了一下底层实现

  10. 共享锁和排他锁?

  11. 手撕了一个顺序查找。。。(这都什么啊。。然后又手撕了一个算法,具体题目忘掉了。。
    问了下二分查找的适用范围

  12. (贝壳)手撕快排,多种排序的复杂度比较

  13. 线程的几种状态?

二面

问了部分和一面相同的题,一样的就不写了

  1. CMS收集器的回收过程

  2. MySQL索引的实现?引擎的区别?写了两个SQL语句

  3. Redis单线程吗?为什么这么设计?

  4. Redis的事务怎么处理的?怎么保证事务之间互不影响?

  5. (贝壳)讲一下Redis中的scan命令

  6. (贝壳+百度)讲一下Redis的哨兵机制

  7. (贝壳)讲到了高可用,讲一下Raft协议?
    (震惊,99%的本科生都不知道的协议,真相竟然是?UC:明天来编辑部上班)

  8. 还是Redis,Redis怎么做持久化?两种持久化的区别?

  9. Redis的发布和订阅机制?

  10. Java的lock的底层实现?(AQS那一套)

  11. Mybatis怎么使用事务?(不会。。

  12. Spring的事务?@Transaction(然鹅我没用过也不会

  13. Spring两大特性?AOP和IOC

  14. AOP是怎么实现的?两种动态***的应用场景?

  15. (贝壳+百度)手撕算法,百度第一题忘了。。

  16. 严格升序的序列种找两个数的和等于指定值(双指针

  17. 数组中每个位置的值等于当前位置的下标在整个数组中出现的次数,求任意n位的整个数组
    比如n=7,(0,1,2,3,4,5,6)->(4,2,1,0,1,0,0,0)
    0出现了4次,1出现了2次,2出现了1次,4出现了1次,得到数组
    (没写出来。。)

  18. 给出一个数组,求数组中每一位右边离当前位置最近的比当前位置上的数大的数,要求O(N)复杂度(单调栈)

  19. 给出一个二维数组,只有0和1,要求把1所在的行和列都置为1,要求空间复杂度为 O(1)(理扣原题)

  20. 给两个鸡蛋,有一栋无限高的楼,要求给出一种思路,使得可以知道鸡蛋最低在几层落下会碎,且试验次数最少(最坑爹的是面试官说不能假设楼高度是N?这什么操作?算法导论原题(然而我不记得了))

贝壳只有两面技术面

百度三面

面试官看了看我的简历

“Spark还有Ruby啊,会的挺多,既然你啥都会点咱们就不局限于Java了”

(吐血

聊了聊美团实习的项目,聊到了Spark,然后说到了Spark相对于MapReduce的改进,然后

“Spark熟吗”

“不是很熟,只是单纯的会用API”(企图糊弄过去)

“那你这个需求怎么做的”

“blablabla”

“那咱们就从MapReduce开始改进出一个Spark的架构吧”

(吐血*2

因为是架构设计,基本上是三面面试官在带着我做设计

问题归纳:

  1. Spark相对于MR的改进具体是什么?

  2. 整个集群中的机器有哪些角色?怎么分配任务?怎么保证负载均衡?怎么保证任务执行完成?任务执行失败怎么处理?怎么保证任务处理的高性能?

  3. 怎么在整个集群的文件系统上执行一条SQL?针对SQL的函数分场景怎么设计成分布式运行的?(感觉有点像HiveSQL,但实际上我基本忘了。。

“RPC和HTTP的区别?”

blablabla

“那多个RPC请求进来,服务器怎么处理并发呢?”

“开线程呗”(糊弄中

中间略过5分钟

“那咱们来设计一个线程池吧”

(吐血*3

给的大条件是操作系统只提供了创建线程和线程的Join操作,线程跑完任务会自动销毁。

先设计一个线程数固定的线程池

问题归纳:

  1. 怎么保证任务被单个线程占用了?任务怎么派发下去?怎么保证空闲的线程可以一直拿到任务?

  2. 用什么方法可以把这个线程池停下来?

  3. 扩展成不限数量的线程池怎么处理?

其实体感上来说,百度三面我觉得是面试体验最好的,面试官思路很清晰,考察的非常灵活,对于设计中的可行处和漏洞都可以立马指出来,能感觉到是一个非常有经验的架构师,交流过程受益良多。

总之就是这样了。(啥?你要题目答案?详询[https://www.baidu.com])

然后第二天早上收到了美团的薪资call,给我开了一个我没法拒绝的条件(滑稽

秋招结束了!

#面经##百度##贝壳找房##Java工程师##秋招#
全部评论
楼主好棒棒~ 是专硕还是本科大佬呢?~
1 回复 分享
发布于 2018-10-17 12:33
恭喜大佬喜提美团ssp offer
1 回复 分享
发布于 2018-10-16 11:26
楼主估计ssp
1 回复 分享
发布于 2018-10-16 10:52
感谢分享,第17题应该是(0,1,2,3,4,5,6)->(3,2,1,1,0,0,0)
点赞 回复 分享
发布于 2018-11-23 12:12
redis问的可真不少,我去面试的时候撒欢问我多线程,各种场景核心实现类的。。
点赞 回复 分享
发布于 2018-11-11 15:27
请问楼主,面试官总问项目有没有上线,这种在网上学的项目该怎么说呢
点赞 回复 分享
发布于 2018-10-29 08:43
大佬,这些答案你还记得吗
点赞 回复 分享
发布于 2018-10-24 10:56
你项目有Redis他才问的吗
点赞 回复 分享
发布于 2018-10-24 10:31
看了楼主之前帖子,找工作时就做了慕课网和牛客的项目,这样真的可以吗。。。。
点赞 回复 分享
发布于 2018-10-17 12:48
连机组和编译原理都没考到,面试覆盖面不合格🧐
点赞 回复 分享
发布于 2018-10-17 12:44
楼主这是工作几年被问的问题呢?
点赞 回复 分享
发布于 2018-10-16 18:22
|ω・)果然你对美团是真爱
点赞 回复 分享
发布于 2018-10-16 10:48

相关推荐

就只能3个月,但是要求长期全职实习
Swaying:你确实是能长期实习啊,但是你那时候有事也没啥办法嘛
点赞 评论 收藏
分享
虽然大家都在劝退读研,说读研以后也是打工,不如本科直接去打工,但随着现在研究生越来越多,很多企业招聘要求就会变成研究生起招,本科投递简历就会被卡,横向比较时也会因为"本科学历比不上研究生学历"被筛掉,而且你没发现劝退读研的基本都是读完研的人吗?而且进体制、国企等,研究生也比本科生升的快,他们拿着研究生文凭劝你一个本科生,可别当真了
炬火初现:肯定是说本科能有好工作或者满意的可以不读研啊,现在本科能找到好工作的那个不优秀,大学四年赛高中,而且还要和学校斗智斗勇,这种时候自然有的选,要是只是觉得一辈子混口饭吃,大概率也考不上研,或者考上又浑浑噩噩三年,也难说。 而且考研所谓的优势说实话是你用差不多四年的时间成本(考一年,读三年)换过来的,而且还未必读完有今年的就业市场,当然不能随便决定读。 再还要看专业,一些稀奇古怪的专业说实话根本没有办法创造出什么价值,也没钱赚(如果有爱好,可以适当降低报酬标准)。现在非92的研究生说实话也没啥太多所谓优势,难说。 所以任何时候都要具体情况具体分析,不能一概而论。 一点点小看法。欢迎大家友善讨论。
点赞 评论 收藏
分享
评论
9
116
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务