网易、美团、唯品会、拼多多面经整理
无ACM、无实习、无牛批项目的三无渣硕一枚,趁着最近稍微轻松点把前些日子的面试经历记录下,只能尽量回忆,很多都忘了。如果能对各位大佬有所帮助不胜荣幸,目前的求职状态是:
等结果:唯品会、拼多多
卒:携程(测评跪,你牛逼)
多益网络(二笔跪。。。这个公司刷新了我对互联网的认知,不多说)
美团(二面跪)
头条(一面跪)
网易:
一面:
1、项目和自我介绍
2、HashMap和HashTable的区别
3、HashMap的数据结构,为什么新添加的节点要添加到链表头部?
4、ConcurrentHashMap支持高并发的原理,段锁为什么要采用重入锁而不是synchronized?
5、讲一讲AtomicInteger,为什么要用CAS而不是synchronized?(和synchronized杠上了。。。)
6、线程池的工作原理,几个重要参数,然后给了具体几个参数分析线程池会怎么做,最后问阻塞队列的作用是什么?(这个阻塞队列的作用当时乱说了一通,从杭州回来后在java并发编程艺术上看到线程池创建线程需要获取mainlock这个全局锁,影响并发效率,阻塞队列可以很好的缓冲,应该是这样,如有高见还请指教)
7、JMM,何如保证内存可见性,happens-before
8、Java运行时数据区域画出来,如果有一个对象有一个域是String s = “abc”;,这个s在哪里,“abc”在哪里
二面(全是数据库知识,全程懵逼):
1、项目介绍
2、把这个项目的角色和用户的表结构画出来看看
3、这个表设计符合几 范式?(当时没复习范式知识,懵逼)有没有更好的方式来管理权限?
4、让你来改进这个表设计,你会怎么改?(装作认真思考3分钟,其实我压根不知道怎么改,内心是崩溃的,后来面试官帮我改。。。)
5、面试官:数据库不熟?答:只管用,不管设计,惭愧。。。(场面尴尬3秒钟)
6、那好问点别的,Java反射熟悉吗?如何访问一个类的私有成员?私有函数呢?
7、为什么会出现死锁?你来写一个死锁,如何改一改这个代码避免死锁?(我把synchronized改成重入锁的tryLock)
8、场景设计题,说是考拉真实场景:
(1)查询某个用户收藏了哪些商品;
(2)查询某个商品被哪些用户收藏了;
(3)查询某个商品被收藏的次数;
设计了四个表,用户表、商品表、收藏表和商品收藏次数表;
如果一个用户快速点击收藏按钮怎么搞?怎么在高并发下保证性能?怎么保证数据的一致性?等等各种问题。。。面试官提示了分布式缓存和分布式队列,但是都没用过(但是口头上不能认怂,说了解过。。。)
HR面就是各种问家庭,实习之类的问题了。
唯品会:
两次电面都可谓是短小精悍,一面不到30min,二面直接一刻钟,反倒是HR面闲聊了40分钟。。。
一面:
1、项目介绍
2、项目里面的实现细节,我是怎么简单怎么实现,他说这样能保证安全吗?我说干脆地说不能,我两都笑了,缓解尴尬
3、HashMap实现细节(这个应该是Java岗出场率最高的问题,应该也没有之一)
4、你说1.8还采用了红黑树,讲讲红黑树的特性,为什么人家一定要用红黑树而不是AVL、B树之类的?
5、Atomic包了解过吗?实现原理、CAS有什么好处?
二面:
上来就一个问题:说说你对hadoop、hbase、hive之类的大数据平台或框架的理解(这么宽的问题怎么答。。。只能XJBS了)
拼多多:
面试官都灰常nice,特别是二面的女面试官,面试过程像朋友聊天,如沐春风。
一面:
1、说一说你平时用的容器类
2、ArrayList和LinkedList的插入和访问的时间复杂度
3、Queue和Deque的区别,有哪些是Deque独有的?
4、协程了解过吗?(没有。。。)
5、Java8里面的lambda有用过吗?(没有。。。)
6、面试官写了一段代码,大致这样:
Interface Service{ String func(); }
如何改一改这个接口的函数声明,让它变成异步调用。(懵逼,后来告诉我常用两种:Future和函数回调)
7、算法题:10张扑克牌,判断是否有5张同花顺,比如红桃3就是“R3”。
二面:
1、写代码:从ArrayList中删除值为X的元素
2、int a = 3、Integer b = 3、Integer c = new Integer(3);判断a==b、a==c、b==c的true、false
3、MVC的概念和你的理解
4、表设计(幸好从网易回来看了下,不然又懵逼),spring如何现实事务管理,AOP原理
5、多个用户请求同时到达tomcat,是多线程、多进程、单线程还是单进程
6、算法题:大数相乘
7、HashMap的底层实现(又来了,百问不腻)
其他印象不深,聊天一样想到哪里说到哪里,面试官的微笑灰常重要啊
HR各种问经历、优点、缺点、如何解决手头上的问题,举例说明等等
美团:
明明内推别的部门,莫名被分到云计算中心,最懵逼的面试经历
一面:
1、A和B两个用户同时插入两条相同的数据,如何保证表里面只有一条(不知道想要什么结果,懵逼)
2、数据库的ACID特性
3、项目用到RESTFul,实现机制,HTTP请求报文格式、Head Line里面有哪些参数?keep-alive作用
4、TCP三次握手和4次挥手
5、三次握手时要是服务端的服务没开TCP协议栈怎么处理?(懵逼。。。后来用telnet,curl这些tcp服务测试了一下,客户端会尝试三次SYN请求,服务器响应三次RST,然后结束链接)
6、关闭连接时Time_Wait的作用
7、算法:二叉查找(听到算法题就感觉要GG了,感觉被打发了。。。)
二面:
前面聊了下项目,感觉被嫌弃了。。。问了jetty+jersey如何实现REST风格server,Hive和Hbase元数据存储机制等等,只知道一些最基础的东西,说了些表面,感觉面试官大佬很不满意,冷不丁来一句:你觉得你这个项目有哪些技术难点?我无言以对。。。
后来估计感觉没什么聊的了居然问了下我数学建模的经历,元胞自动机、模型啥的,两年多了,一毛都不记得了。。。GG
总结:虽然面的不多,但感觉大都注重基础,特别是数据库,各种被血虐。
最后祝愿各位求职顺利,溜了溜了。。。
#网易##美团##唯品会##Java工程师#