背景;本硕985,女,研一头条实习三个月,有比赛(主要是网络模型+模型融合)类。
投的JAVA开发。
项目基本都是讲的实习的项目,比赛很少问到。
网易/爱奇艺挂(面经在最后)
有且仅有阿里/腾讯/携程/亚马逊
阿里一面
1.enum构造方法 是公共还是私有的。
2.lombok底层实现 怎么实现注解。
3.hashtable/hashmap/concurrenthashmap ,最后还问了concurrenthashmap 1.8底层实现是什么?我说红黑树,他说了解吗?然后问了一下归并排序。
3.Spring流程,我说了注解怎么导入compenent/compentscan/import,解决bean重复,然后说了Spring初始化很慢
4.单元测试怎么实现
我说mock,他说怎么看结果一致,我说断言。然后他又说一个类很多方法,测应该分开测,还是可以一起测。我说没有耦合,一起测,测通了就行吧。他叫我分开测试。
5.jvm分区
我说了新生代/老年代为什么要这么分?新生代用复制,老年代用标记-清理/标记-整理。
又为什么是8:1:1的思想?所以收集器搭配使用。但是现在g1收集器已经不一样了。没有区别对待新/老
6.设计模式的基本原则
我不会,我讲了三个工厂的区别,优缺点。
7.红黑树和二叉搜索树
他想问为什么concurrenthashmap底层为什么要红黑树。
8.数据库分页查询。要我从10000数据里面,每页查10个出来。
我不会 我说limit肯定要用,但是分页不清楚
9.数据库索引
从有a,b,c,d,e,f7个字段的地方查询出a=x and b=y and c=z
后来查了好想要组合查询吧
10.linkedlist他叫我多看看
阿里二面 没有撕代码,整个过程快问快答。25分钟。喜欢跳跃很大。不问实习。怼基础。只问一个点,一定要自己扩展,不然就知道下一个问题了。
1.NIO,阻塞非阻塞,同步异步
2.hashMap怎么线程不安全,把hashMap/hashtable/concurrenthashmap讲了一遍。
3.数据库底层实现。(B+树)他本来问的引擎,后来也没问了。还问了最左前缀
4.本来说jvm内存模型。堆栈。
5.线程和进程,谷歌浏览区打开不同的窗口是进程还是线程?
6.你Spring创建的单例还是多例?这个看需求吧
7.你的职业规划
8.你的毕业论文写啥
阿里二面加面
两道题,手写代码
二分查找。我加了流式编程和函数式编程
实现一个map,可以根据key 找value,也可以根据value找key,如果有多个key,返回这个key组成的list
阿里Hr 30min,女,比较和蔼
项目?主要体现项目怎么解决问题/思考问题
我平时自己会总结,阿里项目会做复盘-》价值观匹配
有没有男朋友
还考虑上家公司吗,实习感受
你为什么要来阿里呢
你父母支持你来杭州吗
阿里交叉面45min,不撕代码
jvm怎么看出现死锁了吗?
jvm常用的指令
Linux —help。查负载均衡
Hashmap
项目
最难过的事情
索引,索引怎么优化
线程池
乐观锁
写sql语句,口述就行
语言差异怎么办?
你论文发了吗?研究生做的什么方向?
阿里分到的杭州菜鸟部门,面试官很好,挽留了很久,但是人生方向不一致。希望菜鸟早日上市,面试官早日发财!!!
腾讯一面 1h写代码+半小时对话 前面是打字面试,我第一次见识到打字面试!!!!!
代码题1:大文件排序,我马上说了思想他又给我换题;感觉以后如果有思路建议藏2分钟再答,没有思考的过程他会怀疑你见过,然后换题?
代码题2:交换两数组的元素,使得两数组和之差最小?
我想的是把两数组揉在一起排序,然后从头分发,但是这个只适合出现负数的情况
负数没做出来很遗憾
问题:
项目,重思路解决问题的能力
spark shuffle + groupbykey/reducebykey
Http1.0/1.1/2/3
压力面
你领导对你有意见,你怎么办?
其他:
语言差异怎么办?
腾讯二面
30分钟,视频,不写代码
项目
你想做机器学习还是说工程,他们那边这两个没有严格的区别,你也谈了为什么现在要这
分开,因为能落地还是很重要的。我说看需求吧
问了一下他们的语言,python/C++
完
腾讯效率高,两面之间只隔1天;阿里前前后后40多天,然后会HR面完突然又加面,面试体验并不好
4.23 腾讯HR
项目
1.家里人支持来北京吗
2.女生很多后来转产品,你是怎么想的
3.你怎么评价你的上司
4.你的兴趣爱好
5.你男朋友哪个公司?外企和国厂的区别,有了解吗
6.她说:腾讯转正率低!!!!!!
7.最困难的事情
8.用三个词评价你自己
腾讯分到的北京地图,面试官人很好,最后拒绝了也挽留了很久。
4.23
携程现场面 只有一面
1.项目
2.线程池
3.arraylist删除奇数位置的元素,思路
4.反转链表,手写
5.反转链表每K组
6.两个数组,找出共同的元素。分别给了时间复制度o(n)+空间复杂度o(N),他不要辅助空间,又给优化成了时间复杂度o(nlogn)
7.两个数组,每个数组出一个元素,求和,求得到的和最小的K,需要优化笛卡尔积
8.Arrays.sort(list)底层是什么,快排和归并的区别?
上海部门,感觉不错,携程没有社招,全是应届生补充新鲜血液,感觉后期如果能分到股票期权也很好。
4.23
1.链表的中间结点
2.一个人怎么买票最划算?给出日票/周票/月票价格。给出一个人出行的日期
3.给一个四个数的数组,返回合法的时间。
5.15
amazon
1.项目
2.用一个数组实现最大栈
项目
1.全排列“123”-》123/132/213/231/312/321
2.把最后的K个链表结点放到前面去
1-2-3-4-5 2
4-5-1-2-3
下面是凉经。
网易一面 26岁的程序员,目测工作两三年,面了半小时,写了一小时代码,不问实习,怼基础+撕代码
1.集合包有哪些?然后就是hashMap/hashtable/concurrenthashmap
2.tcp三次握手,为什么三次呀?
3.数据库索引,底层b+树?b树和B+树有哪些应用场景,这个不会。
4.层次遍历树
5.链表的公共结点
6.synchronized/lock锁,你知道现在synchronized升级了吗???(我真不知道)
7.你输入一个网址,发生了什么事情。(结合自己搭的网站讲的)
网易二面
全程50分钟,面试官巨帅!!!!!
项目
场景题:两台电脑各有一个相同的文件。现在有个电脑对文件某个字符进行了修改。请设计自己的通信协议。找到这个字符。
我建议他直接用git clone就行了。
他说要算法,最复杂的就是一个个比对。
我和他说,我们先算一半,求个和,比对一下,是一样的,diff肯定在另外一半。
我以为就这么结束了,他叫我来写一下。我说,要不给个接口吧,老哥。他说,你先写吧
于是,我写了这个。/*
find the diff character between 2 strings,return diff character
string s1, String s2
return: character
*/
public static char findDiff(String s1, String s2) {
int length1 = s1.length();
int length2 = s2.length();
if(length1 == 1 && length2 == 1) {
return s2;
}
int sum1 = 0;
int sum2 = 0;
for(int i = 0; i < length1/2;i++) {
sum1 += s1.charAt(i) - 'a';
sum2 += s2.charAt(i) - 'a';
}
if(sum1 == sum2 ) {
String sub1 = s1.subString(length1/2+1, length1);
String sub2 = s2.subStrong(length1/2+1, length2);
return findDiff(sub1, sub2);
} else {
String sub1 = s1.subString(0,length1/2);
String sub2 = s2.subString(0,length2/2);
return findDiff(sub1, sub2);
}
}
他说,希望控制在一个电脑上,于是,我又改了
我一开始忘了最后的退出条件,马上加了。他说好。他又问我,溢出怎么办呀。我说你用hash啊,他问我hash怎么写啊。后来他提供了一种思路,砍掉高位,因为只有低位可能发生变化。
然后就是我来问他问题了。被挂了。反思原因应该是因为最开始的退出条件没写出来被挂掉了。很可惜,而且没有感谢信,过了好久发邮件问HR才知道的。
爱奇艺一面 31分钟,打电话,外面在割草,很吵。。。Java开发
介绍项目
如果有上亿视频的特征,你怎么做处理?
现在有1亿个请求,你怎么设计你的服务器
如果内存泄露,怎么查?
总结,完成了这两年的梦想,很不容易。
去年在北京,每天通勤两个小时,日常挤地铁。
leetcode现在已经做了350题,剑指三遍。
JAVA该看的书都看了
算法该融的模型也融了
只想证明
女孩子,也可以当程序员!!!