#美团面经# #凉面#楼主一开始是找的算法岗,无奈算法岗简历都被毙的发麻,愤而转投Java开发
今早上有个美团小姐姐面试的 java方向(面了我40多分钟,头皮发麻)
对于Java很久没做过了,最近看了一下面经相关的
大致分享一下我的面试内容吧(记不太清了)应该是我对java的基础比较薄弱,每个方向问的问题总能停止在不知道
大致有:
Java的内存模型,什么时候会产生young gc什么时候会产生full gc,哪个gc会stop the work,为什么young gc比full gc更耗时。如何避免full gc
hashmap的实现原理,hashmap作用于多线程会产生什么问题
hashmap为什么用数组加链表,会不会有数组加红黑树的情况,什么时候用数组加链表什么时候用红黑树
hashmap什么时候会产生环(不知道)
Java的线程几种状态
sleep用来做什么的, 和blocked有什么区别。
Synchronized的实现原理,有没有看过Synchronized的源码实现
Synchronized和信号量有什么区别
死锁是如何产生的,写一个死锁会产生的例子
volaitile的作用和实现原理
ThreadLocal有了解吗,有什么作用。看过相关的源码吗
你知道有哪些Jvm的分析工具,如何分析是否发生了线程block, jstack如何用
Java设计模式有了解吗?简单说一下你知道的设计模式,工厂模式是怎么实现的,写一个例子,单例模式通常应用在什么场景
Mysql的索引是什么数据结构,B+树的非叶子节点是什么,叶子节点是什么? 用B+树和红黑树实现的优缺点
举个Mysql会产生死锁的例子
编程K个链表排序(说了一下思路,归并排序,思路是对的)(真的好久没用过Java编程了,我寻思面试的Java一定用Java实现, 有几个错误很简单但是前期被问麻了,就没发现问题(我竟然把链表节点链接用ListNode.add(), 真就把ListNode当ArrayList用了,因为K个链表是ArrayList
,当时脑子混了,一点没发现,我说编译器怎么一直提示问题),最后我说好久没用java写了,有些问题有点脑壳疼,面试官说可以用你最擅长的语言写啊,我。。。。懵了)
反正还有,真的懵了,感觉有些简单问题都没答好