总结
虽然我个人也经常自嘲,十年之后要去成为外卖专员,但实际上依靠自身的努力,是能够减少三十五岁之后的焦虑的,毕竟好的架构师并不多。
架构师,是我们大部分技术人的职业目标,一名好的架构师来源于机遇(公司)、个人努力(吃得苦、肯钻研)、天分(真的热爱)的三者协作的结果,实践+机遇+努力才能助你成为优秀的架构师。
如果你也想成为一名好的架构师,那或许这份Java成长笔记你需要阅读阅读,希望能够对你的职业发展有所帮助。
一面
-
介绍自己比较熟悉的项目和项目中遇到的难点
-
springbean生命周期
-
谈谈依赖注入和面向切面
-
hashmap原理和扩容机制
-
常用并发包下的类
-
redis持久化方式,为什么这么快?
-
自己平时如何提升的,看书或者网站
二面
-
jvm类加载机制,分别每一步做了什么工作?
-
jvm内存模型,垃圾回收机制,如何确定被清除的对象?
-
了解哪些垃圾回收器和区别?
-
多线程相关,线程池的参数列表和拒绝策略
-
Jvm如何分析出哪个对象上锁?
-
Mysql索引类型和区别,事务的隔离级别和事务原理
-
Spring scope 和设计模式
-
Sql优化
三面
-
fullgc的时候会导致接口的响应速度特别慢,该如何排查和解决?
-
项目内存或者cpu占用率过高如何排查?
-
concurrentHashmap原理
-
数据库分库分表
-
Mq相关为什么kafka这么快,什么是0拷贝?
-
小算法题
-
http和https协议区别,具体原理是什么?
四面
- 手画自己项目的架构图,并且针对架构和中间件提问。
五面 hr面
HR面基本就是问一些个人的问题,确定价值观啥的没问题就行了
后面就是确定薪资,福利待遇。什么时候可以到岗。
====================================================================
据说那天有点紧张,记下的东西很少了
一面
机试(java基础,算法,数据结构)。
二面
主流框架理解,原理,数据库架构,设计模式应用,网络基础知识,分布式问题分析,并发编程,锁知识,JVM优化。
三面
1.拓展知识,项目中常见问题的解决。如,如何保证redis和mysql数据一致。如何解决缓存击穿问题。如何实现并发限流,JVM锁和分布式锁的区别。
2.给一个业务场景,如何架构组件和数据库。1到1000个数,如何按顺序存储。(二叉树问题)
================================================================
一面
面试主要是从一个系统设计出发,考察基础跟项目架构经验。美团相当重视基础问题(计算机网络、操作系统),主要是围绕一个系统优化来的,下面就几个重点提问:
1. 项目介绍(聊一下自己做的项目,前期了解了一下)
2.redis相关问题
-
redis主要能解决什么问题,聊一下你所知道的?
-
聊一下redis高可用的相关。主要说一下哨兵集群的流程,包括选举、以及宕机之后的处理方案,以及cluster集群的工作流程
-
聊一下redis哈希槽,为什么不用一致性哈希的方案?
-
redis为什么这么快?
-
redis跟mq的技术选型
3.mysql相关问题
-
mysql的事务隔离级别
-
面试官描述了一个场景#¥%……¥……%&*这种情况下你怎么优化mysql,说说你优化的流程步骤
-
你能想到什么优化mysql吞吐量的方案?
-
mysql的底层数据结构?索引怎么存储的?
4.rabbitmq
-
rabbitmq的优势,能解决什么问题?
-
说一下rabbitmq怎么保证高可用的?
-
聊聊镜像队列,怎么运作的?口述下代码?
5. 并发编程相关
- hashmap跟concurrentHashMap
6. 接近一个小时的计算机网络基础、操作系统基础
二面
1. 再来一个场景¥%……¥#%……&*&%…优化mysql,具体步骤,什么命令,怎么操作,比较详细。
2. redis分布式锁的作用?什么场景用过?会有什么问题?(原子性的问题、误删锁、误得锁等等)怎么解决这些问题?(面试官提了几个场景,这块聊了半个多小时)
3. 详细聊了rabbitmq的工作流程。介绍下rabbitmq的组建,分别有什么类型,具体是怎么用的?口述代码。
4. redis高可用。
5. 聊聊你了解的RPC,dubbo与springcloud?(我因为没做过微服务项目,因此,问我,你觉得应该有什么功能,我从springcloud的角度回答的)
6. RPC与mq技术选型,说下原因。
7. Spring源码,我讲了事务的源码(撸了好几次了,比较熟悉)。
8. 手撸算法题两道。
9. 聊实习时间、地点,未来发展。
三面
HR(直接给录用函)谈笑风生…聊薪资,工作地点,还有一些要录入系统的基本信息,留了电话。
=========================================================================
小编万万没想到这么多的面试资料,小博那小子竟然能刷完?
总结
三个工作日收到了offer,头条面试体验还是很棒的,这次的头条面试好像每面技术都问了我算法,然后就是中间件、MySQL、Redis、Kafka、网络等等。
- 第一个是算法
关于算法,我觉得最好的是刷题,作死的刷的,多做多练习,加上自己的理解,还是比较容易拿下的。
而且,我貌似是将《算法刷题LeetCode中文版》、《算法的乐趣》大概都过了一遍,尤其是这本
《算法刷题LeetCode中文版》总共有15个章节:编程技巧、线性表、字符串、栈和队列、树、排序、查找、暴力枚举法、广度优先搜索、深度优先搜索、分治法、贪心法、动态规划、图、细节实现题
《算法的乐趣》共有23个章节:
- 第二个是Redis、MySQL、kafka(给大家看下我都有哪些复习笔记)
基本上都是面试真题解析、笔记和学习大纲图,感觉复习也就需要这些吧(个人意见)
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
)]
- 第三个是网络(给大家看一本我之前得到的《JAVA核心知识整理》包括30个章节分类,这本283页的JAVA核心知识整理还是很不错的,一次性总结了30个分享的大知识点)
[外链图片转存中…(img-n4KoAjcN-1715778563505)]