美团线下3面+hr面
顺便许愿意向书。
在武汉霸面的,到了之后交了简历,说要看面试官还有没有时间,先去休息区等候,结果等了一会儿就开始面试了。。
一面:
上来20min让我写道题:
把栈里的数降序排序,额外空间只能再用一个栈。。
例如栈中的数为:
2,4,5,1,3
输出:
5,4,3,2,1
讲一下hashmap。说了下如何算hash,如何比较,如何插入,hashCode和equals等等,再说了1.7和1.8的区别
头插***有什么问题?扩容时候线程安全balabala
如何扩容重hash的?扩容2倍然后分别再算hash啥的,其实有点慌了
你刚刚说的1.7的,1.8是怎么样的,或者有没有更快的方法? 记不清楚了扯了点高八位还是第八位的。。。
那线程安全的哈希表有啥? hashTable和currentHashMap。
hashTable怎么保证线程安全? 加锁。 什么锁? synchronize
那currentHashMap呢? 1.7分段锁,1.8原子变量+CAS
CAS有什么问题吗? ABA 还有呢? 不知道。。。
还有那些保证线程安全的东西?
volatile,ReentrantLock ,Condition,信号量。
volatile怎么保证线程安全?保证可见性 还有呢? 内存屏障 什么是内存屏障? 指令重排序balabala 那他怎么保证可见性?工作内存、主内存啥的 那能保证线程安全吗? 不能,不满足原子性
Condition有什么作用? 可以唤醒指定线程,notify和notifyAll只能唤醒随机线程和所有线程
ReentrantLock 和synchronize的区别是啥?synchronize是JVM层面的,编译之后加monitorenter和monitorexit之类,ReentrantLock是基于AQS,然后就是可重入不可重入,公平非公平。。加代码块、加方法显示释放bababa
GC说一下。。 有哪几个带? 新生老年。 还有呢? 永代区(记得是在方法区放常量)??。新生代算法 什么时候变老年? 15还是16次都没被清除(记不太清了)。 还有呢? 太大了放不下 还有呢? 不知道了。。。。。什么时候进永代? 不会进吧。。。 知道哪些垃圾收集器?CMS G1 ZGC。 CMS的处理过程?balabala 几个阶段?4个 不能和用户线程并发的哪几个? 1和3 G1和CMS有什么区别? 分块优先级回收,memorySet balabala。CMS和G1优缺点? CMS响应快,G1效率高(乱说的) CMS标记清除有内存碎块,易产生full GC。
Mysql的索引结构,画一下。 为什么用B+树,有什么优点?随机读、顺序读、范围查找
redis的过期规则? 定时抽几个检查,过期删除,用到的时候检查,过期删除,内存耗太多扫描删除
redis的内存置换方法? (不太明白为什么redis会有内存置换。。。)试着说了一下lru LRU也有好多种的吧? 不清楚。。。
redis zset的数据结构。 跳表 长什么样?画一下 为什么用跳表? 效率快,简单一些。 时间复杂度多少? 和二分查找差不多吧(随便猜的。。) 如何插入一个节点? redis用了一个层数组,随机一下生成数组高度,然后。。。。就打断了我。
redis可以持久化吗? 可以, rbd aof 有什么优缺点? balabala
如果让你设计一个限流器,可以用什么算法? 令牌桶,信号量。 两者有什么区别? 说了下各自是啥意思?区别支支吾吾说不出。。。。 还有其他的吗? 滑动窗口?(试探的口气) 解释下滑动窗口 用map,时间为key (打断)map? TreeMap,获取当前时间比较一下然后trim掉过期的。。。
然后让我去找hr。。。
二面:
5min说一个你的项目,架构和技术点都可以说 balabala 然后扣了下细节。。
你觉得性能瓶颈在哪?有没有改进方法? balabala,改进方法暂时没想到。。。
mysql的事务隔离级别 balabala 已提交读和可重复读的区别,举个例子? 讲了好久。。。
读过什么的源码? balabala 2min给我说一下原理。 balabala
工程类问题,时间关系不用写了,让我说思路(幸好不用写。。)12345转变为一万两千三百四十五元整。 balabal 大致思路没问题,只是还有些细节点,例如12000 100200这些边界条件等等。。
然后带着我去找三面面试官了
三面:
问题很宽泛。。
数据库连接池的作用是啥? 复用。balabala
final 关键字的作用 balabala
Get请求里有哪些东西? get url 版本 encoding host cookie等。。。 url里面的?&%啥意思? balabala(%分号没说出来)
其他的问题忘了。。。。
最后写一个算法题:
单链表奇偶节点互换。。。(脑子有点懵。逆置的函数没想起来怎么写、、、)分出偶数节点做一个单链表,然后奇数节点再顺序插入。。好歹是写完了
你有什么想问的? 然后去后面找hr
hr面:
常规问题。。。
只是有个点,问我想去哪工作,直说平台优先级最高,平台差不多的话南方优先级高于北方(美团在北京。。。)。。。不知道会不会因为这个挂我。。算了,说都说了,反正也是实话。。。
最后许愿求offer~
意向书已get,特来还愿~
#美团##面经##Java工程师##校招#