3.26一面3.28二面4.1oc最爱吃拼好饭的一集。美团一面,二面面试官人都很好。一面面经自我介绍在学校里面做了什么(帮忙暖场进入状态,应该是)你知道那些设计模式?你的项目里面使用了那些设计模式?jdbc使用了什么设计模式,slf4j使用了什么设计模式。(外观模式,当时狂答策略模式,现在想想有点尴尬。spi扩展也属于一种外观模式,当时也是模式太多,没关注过外观模式,这一块个人感觉答的一般。)非常建议把设计模式和自己做过的东西,自己知道的东西结合起来学习一遍。(就比如单例模式和双重检查;责任链和netty、spring security;代理模式和aop。)装饰器模式和代理模式的区别。尽可能记一些比较常用、好用的设计模式,记一些区别和特点。(这样的话在回答设计模式问题的时候就会留下相对比较好的印象。)设计原则(soildsingle单一职责,open开闭原则,i隔离原则,l里式替换和最少知识原则,d依赖倒置)其他的就是常规八股和项目问题。接口限流算法(项目里面用了。)一些生活团队问题比如有矛盾怎么解决,有困难怎么解决,任务怎么分配,ddl怎么定,怎么帮助队友。个人爱好easy题 共同前缀(说给我出个简单的,我哭死。)面试后看到一个简单解法,就是排序以后直接对比第一个和最后一个string。二面面经校园经历,项目拷打,项目难点。(aop的实现aop失效判断如何解决aop失效)aop的话大家都知道jdk和cglib以及基于接口和类实现,可以加上aspectj字节码增强。当时问我判断aop失效,有点懵逼,没意识到问的是类内部调用失效,在网上发现一个宝藏总结。aop类内部调用,由于调用的是原对象,所以没有走代理对象,aop失效。可以结合aop和spring事物失效说明。主要有3种解决方案。1 依赖注入,自己注入自己的代理对象,然后可以提一嘴三级缓存解决循环依赖。2 使用aopcontext,使用代理对象替换原对象。3 使用applicationcontextaware,使用代理对象替换原对象。middle题,合并重合区间(当时脑子懵了,想着用集合排序,面试官人很好,提示了一下就过了。现在回忆起来,感觉当时如果自己实现排序的话应该可以弥补一下中间慌张的过程。所以归并、快排和堆排序,可以多熟悉熟悉,然后手撕的时候自己飞速实现的话感觉也可以加分。)感觉团子面试官提的问题一环扣一环,如果熟悉的话,就能留下相对比较好的印象。不熟悉的话,尽量把自己知道的说了,然后就说自己就知道这些,然后面试官可能会扩展一些你不知道的,你可以当场学习一下,然后再面试官的基础上多举几个恰当的例子,应该也不会太差。