最后
ActiveMQ消息中间件面试专题
- 什么是ActiveMQ?
- ActiveMQ服务器宕机怎么办?
- 丢消息怎么办?
- 持久化消息非常慢怎么办?
- 消息的不均匀消费怎么办?
- 死信队列怎么办?
- ActiveMQ中的消息重发时间间隔和重发次数吗?
ActiveMQ消息中间件面试专题解析拓展:
redis面试专题及答案
- 支持一致性哈希的客户端有哪些?
- Redis与其他key-value存储有什么不同?
- Redis的内存占用情况怎么样?
- 都有哪些办法可以降低Redis的内存使用情况呢?
- 查看Redis使用情况及状态信息用什么命令?
- Redis的内存用完了会发生什么?
- Redis是单线程的,如何提高多核CPU的利用率?
Spring面试专题及答案
- 谈谈你对 Spring 的理解
- Spring 有哪些优点?
- Spring 中的设计模式
- 怎样开启注解装配以及常用注解
- 简单介绍下 Spring bean 的生命周期
Spring面试答案解析拓展
高并发多线程面试专题
- 现在有线程 T1、T2 和 T3。你如何确保 T2 线程在 T1 之后执行,并且 T3 线程在 T2 之后执行?
- Java 中新的 Lock 接口相对于同步代码块(synchronized block)有什么优势?如果让你实现一个高性能缓存,支持并发读取和单一写入,你如何保证数据完整性。
- Java 中 wait 和 sleep 方法有什么区别?
- 如何在 Java 中实现一个阻塞队列?
- 如何在 Java 中编写代码解决生产者消费者问题?
- 写一段死锁代码。你在 Java 中如何解决死锁?
高并发多线程面试解析与拓展
jvm面试专题与解析
- JVM 由哪些部分组成?
- JVM 内存划分?
- Java 的内存模型?
- 引用的分类?
- GC什么时候开始?
JVM面试专题解析与拓展!
一面
-
介绍自己比较熟悉的项目和项目中遇到的难点
-
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(直接给录用函)谈笑风生…聊薪资,工作地点,还有一些要录入系统的基本信息,留了电话。
=========================================================================
最后
关于面试刷题也是有方法可言的,建议最好是按照专题来进行,然后由基础到高级,由浅入深来,效果会更好。当然,这些内容我也全部整理在一份pdf文档内,分成了以下几大专题:
- Java基础部分
- 算法与编程
- 数据库部分
- 流行的框架与新技术(Spring+SpringCloud+SpringCloudAlibaba)
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。
9Ufl-1715778521679)]
这份面试文档当然不止这些内容,实际上像JVM、设计模式、ZK、MQ、数据结构等其他部分的面试内容均有涉及,因为文章篇幅,就不全部在这里阐述了。
作为一名程序员,阶段性的学习是必不可少的,而且需要保持一定的持续性,这次在这个阶段内,我对一些重点的知识点进行了系统的复习,一方面巩固了自己的基础,另一方面也提升了自己的知识广度和深度。