腾讯2017暑期实习生Java开发二面面经
内推没过,笔试后收到的面试通知,到北京现场面
一面 一个小时
-
上来先问了很长时间的个人情况,比如职业发展规划,工作地点选择,技术路线,性格上的优点,已经面了哪些公司,英文怎么样写英文邮件有问题吗?
-
介绍自己最得意的一个项目,遇到过哪些问题,怎么解决的
-
除了Java还对哪种语言比较熟悉?php了解吗?
-
平时数据库用的哪种,具体的引擎了解吗,说一下区别
-
TCP协议和UDP协议的区别是什么
-
快排和堆排的各自特点是什么?如果优化从哪些方面进行优化?
-
设计一个数据库表,菜单系统,菜单有很多子菜单,要求可以dfs遍历所有的菜单,表怎么设计,遍历怎么实现
-
http的状态码有哪些
-
一个网站访问速度变慢,从哪些方面进行优化?
-
web常见的安全问题有哪些,怎么预防
-
Linux系统熟悉吗
-
设计一个微信红包功能,n个红包,分成m份,手写代码
-
一个有序数组,找到两数相加为给定值的所有可能,时间复杂度尽可能底,手写代码
二面 三个半小时
没错,就是三个半小时。
-
先聊一聊Java的基础知识吧。final关键字知道吧,说一下
-
static关键字知道吧,说一下。final和static结合起来呢?
-
String类,可以被继承吗?有没有想过为什么这样设计呢,这样有什么好处,如果不这样会有什么问题?
-
int a=5; int b=5 a==b会是什么结果? Integer呢? new Integer(5)呢?
-
volatile关键字知道吧,说一下
-
synchronized关键字知道吧,说一下,它用在方法前面和方法里面有什么区别?对象方法和类方法都有这个关键字会怎么样
-
wait,notify,notifyAll这几个关键字知道吧,说一下。然后写了一段代码,大意就是两个线程,notify之后后面的代码还会执行吗?
-
Java中的容器接触过吗?哪些用都比较多?ArrayList和LinkedList的区别是什么?他们是线程安全的吗?如果让你设计一个线程安全的数组,你怎么设计?
-
除了synchronized上锁,还有Lock这种锁,他们有什么区别呢
-
单例模式你习惯哪种写法,手写代码。我写了枚举类型的
-
讲一下你的代码,你这样写有什么好处呢?然后在纸上写了一段单例模式,如果我这样写,有什么问题呢?会有线程安全问题吗?再加一个变量,在构造函数里打印这个变量,输出会是多少?大概就是考察类加载的顺序
-
给一个二叉搜索树和一个数,输出这个数的中序遍历的序号,手写代码,一定要注意边界条件啊
我写好后讲了思路,然后照着代码手动模拟,结果发现一个判断条件写错了,我给出了改进的方案。
然后又说这个不是最优的解法,你再改一下吧,写出完整的代码。又写了一遍。
-
两个排好序的数组,合并成一个有序数组,重复元素只出现一次,手写代码
吸取前面的教训,仔细考虑到了所有的边界条件,再三检查了好几遍才给他看
代码没问题,但是你这个代码太长了,能不能简化一下?再想想,能不能再简化一下?嗯还是有点长,再好好想想再简化一下。
-
好的再写最后一个题,给一个字符串str,一个字符串数组,用数组中的字符串自由组合,去匹配字符串,可以重复使用,求能匹配的最大长度。
让我写代码,他出去了,我写完后给他打电话打不通,差点在里面睡着了。他回来后说这个会议室时间到了,换个会议室继续。
给他讲代码,也是手动模拟运行了一下,思路应该没问题,但是好好想想,还能不能再优化一下?
当时已经进行了快三个小时我觉得大脑已经转不动了就想放弃了,但是他没有任何要结束的意思,好好想想,能不能优化?我说用dp应该也可以。他举了例子说如果关键字里有abcd,abcx,abcy是不是匹配的时候会重复计算很多次,我说那一个用前缀树优化吧,他说嗯你再想想,不着急,今天下午就面你一个人,然后又出去了。
我又用前缀树写了一遍,写完他刚好回来又讲了思路,也是每行代码挨个看,每个边界条件都考虑
当时已经5点了,他说这个还可以,但是如果真正跑起来还是会有问题的,你回去可以试着写出来运行一下。不过已经5点了,今天就到这吧。
-
面试官人特别和蔼,中途有好几个问题没答上来他说这个回去你再好好想想,最后我问能不能把面试的纸带走,他说不行,不过可以给你张纸把刚才那几个问题记录下来。我才发现刚才已经写了4张A4纸了。因为又饿又累后来也没问别的问题。
-
后来入职了才知道二面面试官是我们总监,这次二面应该是我面过面试时间最长,难度最大的一次了。不过可能也是因为这个原因,最后实习选择了腾讯。
-
感觉腾讯整个面试流程还是很正规的,上午一面之后我说我是外地的能不能协调下面试时间,然后中午就打电话让我直接去公司二面了。二面面试官后来面到5点说今天hr可能面不了,等明天吧。然后第二天我等到下午给面试官打了电话说我定了晚上的票今天如果面不上我就改签,结果很快hr就打电话让我去现场面试。整个过程感觉还是很人性化的,尤其是经历了小米和百度面试之后说让等结果然后又不给结果的过程之后。
-
之后也转正选择留在了腾讯