前言
最近阶段的跳槽面试,相信更多的程序员也亲身体验过了,发现了很多的共同点。其实,大厂的面试问题是最能体现当前主流技术的。我这里总结了一下,现在java架构师必须掌握的主流架构技术。
从一个程序员到架构师是一个很大的变化,架构师需要从大的方面考虑,而不只是考虑这个模块该用哪种设计模式去开发。
想要成为架构师,需要有耐心,不断学习,拓宽自己的视野,不仅仅局限于自己眼前的项目。
经历
2015在实习的时候,当时一个一起实习的朋友在2019年3月份的时候突然在微信上找我,问我要不要面试下蚂蚁金服。问了下相关信息才知道他在2018年11月的时候进到蚂蚁金服,现在招人就想到了我,问我要不要试一下。
刚开始还是有所顾虑的,因为毕竟是大厂,进去应该不容易,但是这个朋友进去了,想想应该也没有很难吧,毕竟当时实习的时候,他技术并不怎么样。但是毕竟过去好几年了,现在人家可能变厉害了。
流程
一面
1、2分钟的自我介绍
2、你自己认为自己最熟悉的技术是什么?
3、 HashMap 底层实现原理是什么?
4、Java 的多线程有没有使用过
5、讲一下线程池,以及实现固定大小线程池底层是如何实现的?
6、Redis 为什么这么高效,使用的场景是什么?
7、分布式服务是否了解,zookeeper,dubbo 是否使用过?
8、幂等概念有没有了解过
9、常用的数据库是什么?
10、MySQL 的事务特性有哪些?
11、如果现在一台生产的数据库挂了怎么处理?
12、数据库如何实现 rollback 的?
13、工作这么久你遇到的最难的技术点是什么?
14、用过Kafka 的话说下 Kafka优缺点有哪些?
15、TCP/IP 协议是如何保证数据可靠性的?
二面
1、先进行自我介绍,然后介绍自己做过的项目,从项目流程架构设计等方面介绍
2、HashMap 的查询时间复杂度
3、LinkedList和ArrayList的区别
4、多进程与多线程在编程上面有什么需要注意的
5、ThreadLocal的使用场景
6、堆内存和栈内存有什么区别
7、堆排序时间复杂度
8、如果优化数据库的数据查询,另外应用层上还能如何优化?
9、强一致性,弱一致性,最终一致性
10、有一个一百万行的文件,内部是购买的商品ID,如何获取到购买最多的前一百个商品。
后续
首先很感谢内推的那个朋友才有了这次的面试机会,从中也获得一些宝贵的经验。
然后通过这次面试我也总结了一些对当前java主流架构技术的反思,慢慢分享给大家!
系统性能优化
我们不仅仅对项目要运筹帷幄,还要能解决一切性能问题。只有深入学习JVM底层原理,Mysql底层优化以及Tomcat调优,才能达到知其然,知其所以然的效果。
源码框架
框架是重点,但别让人感觉你只会山寨别人的代码
在面试前,我会阅读简历以查看候选人在框架方面的项目经验,在候选人的项目介绍的环节,我也会着重关注候选人最近的框架经验,目前比较热门的是SSM。
微服务专题
关于微服务架构的取舍
1) 在合适的项目,合适的团队,采用微服务架构收益会大于成本。
2) 微服务架构有很多吸引人的地方,但在拥抱微服务之前,也需要认清它所带来的挑战。
B2C商城项目实战
一切的一切,把上述技能嵌入到你做过的项目里
我想告诉大家的是,你之前费了千辛万苦(其实方法方向得到,也不用费太大精力)准备的很多技能和说辞,最后应该落实到你的实际项目里。
结合这些反思我整理一些视频资料
领取方式:
加入Java高级架构师之路:712477306,群主免费放送所有资料。
最后别忘了关注我,以后将有更多干货分享。