某东,某度,某团,某大厂Java开发岗面经

首先要说一下,LZ0offer菜鸡一枚,Java开发岗,非大佬。秋招以来就面过题上4家,特此总结一篇,供各位战友参考。

另外忠告19届的老弟老妹们,现在可以开始准备春招(暑期实习)和明年秋招了。经验真的很重要。

目前看来每家都要先自我介绍,自动省略,悉知。
【某东】
由于经济原因,去不了北京,给campus@jd.com发了邮件,转到了电话面。
面试官非常nice,前一天下午5点打电话约了电面,预留了准备时间。
一面:
自我介绍,说自己的项目。整个项目是做什么的,自己做了哪些工作。
发挥比较好,说的过程逻辑清晰,讲了20分钟,小哥就说可以了,给过。
二面:
好像必须现场面。没有钱我能怎么办?
【卒】

【某大厂】
一面:
讲项目,有个地方问我角度怎么求,答曰反三角函数。面试官表示这是小学生就会的题(???),于是怼了我两个工程问题:
①n个点,求点的中心。(思路跟面试官不在一个点上,被怼成不如初中生)
②也没答上,就不说了,被怼到小学生都不如。
问基础:
①写了个sql语句(就是个A,B表连接...)
②C和Java哪个熟?答:java
问:一个类有一个virtual函数,一个int型成员,sizeof返回多少?
答:这不是C  吗?
回:两个都差不多。
答:8,4 4(虚表)。
③重写、重载是怎么弄的?答:重写动态绑定,重载静态绑定。
问完了,你有什么要问我的?
答:?????
面试官:回去等消息吧,两周之内HR会联系你。
我:...怎么这么久?
面试官:我们是大厂,人多。
溜了溜了。
【卒】

【某度】
一面:
①翻转链表。先用空间复杂度O(N)的解了,面试官表示不可以,要O(1)。菜鸡刷题少,没写出来。
②求TopK。由于第一题没答上,第二题想用最优解,快排的思路,但是选择的key要筛中位数。(选第一个随机性太大,最坏情况复杂度高)。
答:5个数一组,分别求中位数。得到的一组中位数再求中位数,用这个值来做key,一趟快排。
看结果,key的位置<k在右边找,递归。
问:中位数怎么求?
答:排序。
问:复杂度多少?
答:能到O(N)。
问:为什么?
答:。。。当时傻了,突然认为此算法要排序,复杂度有O(NlogN)。后来猛然想起shell排序也是这么操作的。。
最后面试官引导用第一个数做key。我嫌此法稳定性不好,最后只好用堆解了。。
问:手写一趟快排。
答:写写写。。。
③求任意二叉树第k层结点个数。
第一反应用队列解,让我讲思路,因为没做过,说得不太清楚。面试官怕我写不出来,问我考不考虑递归写。
答:不。最后队列写出来了。
然后开始聊基础,
①Socket,http,TCP,UDP,长连接等网络基础,问得不深。
②Mybatis和Hibernate的区别(简历上写了)。
答:M轻量级,一般是xml配置文件来做的,更底层一些,sql语句是原生的。H功能强大,主流是用注解方式,有hql,然后扯了一波H的一二级缓存。
③说一个自己熟悉的框架。答了一波SpringMVC的处理流程。
④GC和GC算法。   答得不是太好,不献丑。
⑤线程池,连接池了解吗?
答:没用过,但是就是提供了一个池状态,能减少创建销毁的开销。顺道聊了一下自己的项目,在处理延迟上,就通过类似的操作来提高了效率。
面完以后面试官表示我的项目还不错,但对我第一题很不满意,顺便告知一面通过。
【????什么】

二面:
聊项目:面试官好像比较感兴趣,听我扯了三十多分钟。
问基础:
①数组,链表,哈希表的实现、区别、优势。
②HashMap扩容的点?答:装载因子&链表长。顺便扯了一波java8用红黑树改进。
③因为8的源码没看过,引导我对红黑树的改进做了几个猜想。
④Java8的String,垃圾回收有什么改进?  没看过,聊了一波常量池上的回收。
⑤手撕代码,题很简单,有点难描述。主要考察代码的鲁棒性,此处略。
结束:你有什么想问我的?
就行业发展情况探讨了五分钟。

三面:
是个小姐姐,666666。
聊了十来分钟项目。
手撕代码:
①自己实现一个atoi。c 用得少不知道atoi是啥,小姐姐给讲了(parseInteger)。要考虑负数和溢出。写的时候没考虑溢出,被问到时口述了解决方式。
智力题:
m乘n的格子,求正方形数。菜鸡不会。

问基础:
①Linux和多线程熟悉吗?答:linux不熟,多线程还行。
②问了个查占用某端口进程的命令,忘了。
③i 多线程下是原子的吗?不是。
④静态链接库和动态链接库的区别?
聊人生,略。

某团
聊项目,根据项目问了:
①你觉得一个产品吸引用户,最重要的是什么?
答:???首先要有这个市场需求。此处被打断,问:只说一点,你觉得最重要的。
答:要有友好的用户界面吧。。。楼主菜鸡,不好用的软件我是不会用的。
问:是吗?
②你这个系统在安全上是怎么考虑的,比如登录的时候,如何保证用户信息的安全?
答:可以考虑https,另外数据加密存储。
问:如果黑客攻击呢?sql注入你怎么办?
答:检查提交数据的合法性。
③如果用户规模很大,高并发的情况你怎么办?
答:读远大于写的情况,考虑使用缓存。减少数据库上的IO。
④你用什么缓存?
答:没用过,可能redis吧。
⑤如果用户没登录就通过url访问付款完毕页面你怎么办?
答:问的太出乎意料,直接傻了,就回答了url后加id才能访问。后来突然想起放到web-inf下不让直接访问,另外未登录状态下将该操作拦截即可。
⑥因为⑤没答好,引出了此问题,如果黑客伪造id去访问你怎么办?
答:首先这个id要有效,其次,登录地址不是常用地址,发短信验证。
⑦此处感觉被面试官呵呵了一脸。。。以后一面不想再聊项目了。
⑧TCP三次握手四次挥手,过程和为什么。
⑨TCP如何控制包的有序?seq number,顺便装x说了很多。
⑩http有状态吗?无。说一下长短连接怎么做的。
打不出11了,从1继续。
①说一下Java的堆栈。
    答:???一通说,顺便扯了点GC。
②数据库索引,知道什么说什么。
    答:问得太大,就说了一下B 树索引,和索引的作用。
③为什么能减少磁盘IO?
   答:从数据的分布情况,全表扫描的IO开销是很大的。用树只用读取树高度次。
④用B 树要读取多少次?二叉树呢?
⑤因为忘了说要用平衡的多叉树,又问我如果树退化成链表怎么办?内心:B 树难道不是自平衡的吗?
⑥你说多叉,具体是几叉?
    答:不知道,叉多了平衡代价大,少了IO次数多,我感觉3就行。问:是吗?
⑦数据库引擎是怎么处理表连接的?
    答:不知道,数据库原理说表连接就是求笛卡尔积。面完以后问了面试官,发现这个题的答案就是求笛卡尔积的过程。。。。表A的数据和表B的逐行连接。
手撕代码:
①如何判断二叉查找树。
②由于楼主表示自己算法很菜,面试官问了个简单的。上楼梯那个,斐波那契数列。
   这题太常见了,,选择题常考啊。装不下去了,表示自己做过这题。
写完以后,面试官:
上一题你做过,我再问你一道题吧。
  内心:!!!兄弟们,是时候练练演技了。
③约瑟夫环。
   我:一顿狂演,冥思苦想。正要开始写代码..
   面试官:等你写完程序别人都报完数了,这是个智力题,数学方法求解,你说思路就行。
   我:......不会。
约瑟夫环公式法求解,有兴趣的战友可以查查。
提问环节:
情报,美团的排名里,笔试成绩是有一定权重的。
{}卒
#百度##京东##美团##华为##Java工程师#
全部评论
小姐姐666😳
点赞 回复 分享
发布于 2017-09-22 11:32
重载普通方法应该也是动态绑定吧
点赞 回复 分享
发布于 2017-09-22 11:34
ps -aux | grep  xx
点赞 回复 分享
发布于 2017-09-22 11:41
没钱的话要想点办法,要有解决问题的能力,借钱不比找工作难,当然说的是借小钱
点赞 回复 分享
发布于 2017-09-22 11:54
很强
点赞 回复 分享
发布于 2017-09-22 13:31
看完大佬的面经,19萌新有点慌....
点赞 回复 分享
发布于 2017-09-22 15:57
学姐能留个扣扣请教下嘛?
点赞 回复 分享
发布于 2017-09-23 00:46

相关推荐

蚂蚁 基架java (n+6)*16 签字费若干
点赞 评论 收藏
分享
美丽的查理斯不讲武德:包kpi的啊,感觉虾皮一点hc都没有
点赞 评论 收藏
分享
评论
点赞
53
分享
牛客网
牛客企业服务