美团JAVA后台实习一面
上周约好的,面试官是个小姐姐,很准时。面试体验也很棒。自我感觉有点凉。面了一小时四十六分钟
问题后面是问号,说明那个我不会。句号的就会。基本每次一说不会面试官就会跳过。
许愿二面呜呜呜
自我介绍 4 min
项目相关问题
项目一 单机商城
表设计,Redis用来干什么,热点数据, 淘汰策略,redis数据结构,zset的底层实现,redis持久化,主从复制,如何库存减少,分布式下的预减库存?,redis实现分布式锁?shiro有什么组件?ngnix反向代理和动静分离。
项目二,微服务
服务架构。用了什么服务治理策略?负载均衡、路由策略。路由协议(对外暴露协议,内部服务协议)。限流。秒杀实现如何限流。如何限制一段时间内一个ip的访问次数。漏桶?。如何监控断路(心跳?),怎么链路追踪。spring clould的实现原理?除了springcould还有哪些分布式架构?dubbo了解吗?RabbiMQ怎么用的。MQ有什么应用场景。项目用到了什么算法。
数据库
项目数据库用的什么。有没有分库。分库分表的策略?MySQL引擎用的什么,隔离级别有什么。串行化和可重复读有什么区别。索引怎么实现的。为什么用B+树。数据库主从分离,如何保证一致性,如何保证最终一致性?SQL优化,查询语句中的or能不能走索引。联合索引,最左匹配原则。查询语句中in能不能走索引。按照上面说的,写语句时该注意什么。unique了解吗?
java
java常用的数据结构,ArrayList和LinkedList区别,扩容机制(我答1.5倍,他说两倍)。hashmap底层实现(结构,扩容机制,哈希方法)。为什么用红黑树,红黑树的时间复杂度,红黑树的优点,红黑树的结构?hashmap线程安全嘛,concurrentHashmap怎么实现线程安全,synchronized是不是公平锁、可重入。reentenLock是公平还是非公平,怎么设置公平。还知道哪些锁(volatile,juc下的一些锁),volatile实现原理,readWriteLock是共享锁还是排他锁,AQS了解吗,AQS计数器的修饰符是什么(蒙的volatile),synchronized有几个锁(配合对象头讲了锁升级)。什么是线程池。为什么使用线程池,线程池的五个参数(我说我只知道七个参数,然后讲了七个)。如果一个单机上有线程池,单机down掉了。线程池里的任务会怎么样。线程池有什么优势和风险。jvm了解吗(jvm内存结构,各个部分存放什么内容,堆的分区),GC算法,yongGC和FullGC的触发条件,CMS了解吗(说了垃圾回收过程)。CMS是不是(这个问题没录清除,反正我不会)。有一个java线程占用cpu过高,如何排查(我回答了用top找进程,不会找线程,我真蠢)?线程和进程。如何优化这个线程(只讲了优化代码,忘记了死锁)。
数据结构和算法
了解哪些树的结构(平衡二叉树、红黑树、哈希树、B+,B),如何遍历树(这里我说前中后层次)?从小到大排序用什么堆(大顶堆)。前中后遍历树的时间复杂度。图了解吗。如何遍历图,如何找图的最小路径(A*,迪杰斯特拉),迪杰斯特拉是单元还是多元的?无界阻塞队列会出现什么问题。
操作系统
进程调度算法?什么是上下文?什么时候会发生上下文切换,怎么减少上下文切换。
上面总共一小时十分钟。
做题。
一道很简单的二维数组题,但是边界很恶心。我菜还粗心。。最烦这种边界情况的题。还不如考我算法。题写了半个小时。我真菜
平时是怎么学习的。经常看什么网站,博客。有没有去了解新的技术。
你有什么想问我的。我还有下次吗?(明天给答复)。美团这边什么语言。您觉得我还有哪些方面需要补充