面试太难了!一位3年crud经验开发的美团社招Java三面,差点遭毒打
Posted java路人甲乙丙丁
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了面试太难了!一位3年crud经验开发的美团社招Java三面,差点遭毒打相关的知识,希望对你有一定的参考价值。
一面(问了并发,设计模式,算法等,1小时)
- concurrent包下面用过哪些?
- countdownlatch功能实现
- synchronized和lock区别,重入锁
- thread和runnable的区别
- AtomicInteger实现原理(CAS自旋)
- java并发sleep与wait、notify与notifyAll的区别
- 如何实现高效的同步链表
- java都有哪些加锁方式(synchronized、ReentrantLock、共享锁、读写锁等)
- 设计模式(工厂模式、单例模式(几种情况)、适配器模式、装饰者模式)
- maven依赖树,maven的依赖传递,循环依赖
二面(主问了数据库,Redis,Spring,网络等,50分钟)
- synchronized和reentrantLock的区别,synchronized用在代码快、方法、静态方法时说的都是什么?
- 介绍spring的IOC和AOP,分别如何实现(classloader、动态代理)
- JVM的内存布局以及垃圾回收原理及过程讲一下,讲一下CMS垃圾收集器垃圾回收的流程,以及CMS的缺点
- redis如何处理分布式服务器并发造成的不一致
- OSGi的机制
- spring中bean加载机制,bean生成的具体步骤,ioc注入的方式
- spring何时创建applicationContext
- listener是监听哪个事件?
- 介绍ConcurrentHashMap原理,用的是哪种锁,segment有没可能增大?
- 解释mysql索引、b树,为啥不用平衡二叉树、红黑树
- Zookeeper如何同步配置
三面(主要是集合,JVM,线程,算法,40分钟)
- Java线程池ThreadPoolEcecutor参数,基本参数,使用场景
- MySQL的ACID讲一下,延伸到隔离级别
- dubbo的实现原理,说说RPC的要点
- GC停顿原因,如何降低停顿?
- JVM如何调优、参数怎么调?
- 如何用工具分析jvm状态(visualVM看堆中对象的分配,对象间的引用、是否有内存泄漏,jstack看线程状态、是否死锁等等)
- 描述一致性hash算法(Redis)
- 再谈谈消息队列
面试总结:
1、基础知识的准备
这一块,其实很重要,很多问题,必须轻松的理解,就和呼吸一样自然。因为这一块的掌握程度,就决定了一个后端工程师,能不能达到高级的程度。
抛砖引玉,比如面向对象、原型链、闭包、es6、html5、css3,它们是后端的基础,需要烂熟于心。比如连闭包都解释不明白的,真的该好好下功夫在这些基础上。
2、好的自我介绍
自我介绍,很多人其实做的不好,其实这是面试官对面试者的第一印象。
如果我是一个面试官,我基本能从自我介绍中,得知这么一些信息:
1、这个人是不是一个逻辑清晰的人?
2、这个人的性格是积极向上的,还是稍显自卑的?
3、这个人能不能很好的表达自我?
这些问题很重要,按照这个思路,其实你反过来就可以向面试官表现自我。
1、学校、专业
2、技术栈
3、职业履历
4、最近一家公司的贡献
千万不要和面试官说,和产品、后台很好的配合,完成公司的项目之类。因为完全是废话!
自我介绍一般是两分钟左右,你确定你能两分钟,把上面四个问题给面试官讲清楚?并且你还要突出一些重点,比如说,我比较擅长react,做过XXX优化之类,有过XX年的项目经验之类。
3、如何“讲故事”
一定要相信,因为你,什么才发生了变化。其实大多数人是一个被动的状态,不知道自己有什么用,自己在团队中的定位,自己的职责是什么。在工作中,我希望每个人相信自己的是有用的,然后寻找你可以发力的点,去做真正的改变。如果你在找工作,那就好好思考,自己确实在团队中,承担了什么。
面试必考题目:
- java的基础知识点,主要围绕在集合类和多线程等:ArrayList、LinkedList、HashSet、HashpMap的数据结果,以及如何扩容、以及ConcurrentHashMap相关的多线程安全等。
- JVM的内存分配、几个常见的垃圾回收算法以及原理、还有对应的JVM优化参数需要牢记。
- 网络:TCP的三次握手等网络都必问,重点掌握网络协议。
- Redis:作为分布式缓存的主力,基本也是BAT每次必考,重点是Redis的数据结构、内存、算法、持久化,以及与别的缓存memcached的优劣势。
- 多线程:状态流转、多线程的实现,以及与高并发的区别等。
- Spring框架问得是最多的,BAT非常喜欢问,重点掌握。
- 最后就是分布式架构设计
- 常用的分布式架构设计方案:单点登录、分布式缓存、存储、消息的选型,还有就是数据库端的优化方案(需要提前了解)。
- 最好能提前了解深入一个类似秒杀这样的项目,如果面试官问到类似的项目,你能把设计思路讲出来,这对你的面试结果是很大的加分项。
以上就是头条Java题目,以下最新总结的阿里P8资深Java必考题范围和答案,包含最全MySQL、Redis、Java并发编程等等面试题和答案,用于参考~
更多笔记分享
由于篇幅限制,就不一一展示了,有需要文中资料完整版的小伙伴们注意啦:一键三连(点赞+收藏+关注)
以上是关于面试太难了!一位3年crud经验开发的美团社招Java三面,差点遭毒打的主要内容,如果未能解决你的问题,请参考以下文章