Java面试题 - 高频题
原创
©著作权归作者所有:来自51CTO博客作者阿甘兄_的原创作品,请联系作者获取转载授权,否则将追究法律责任
01 深入了解的知识点
- java集合数据结构
- jvm: gc、内存模型、堆分代
- 多线程:volatile、java.util.concurrent包
- spring:启动、时间
- redis:分布式锁、lua保证原子性、集群
- 消息队列:kafka
- SpringCloud
- MySql搜索引擎,索引B+tree
02 Java基础
- NIO模型
- java反射
- java8特性
- java中有哪些集合?各自的数据结构?
- 说说你用过的设计模式
- jdk以及spring中看过哪些设计模式
03 JVM
- jvm结构,以及每⼀部分的作⽤
- jvm中哪些部分会出现oom,出现的可能原因
- 哪些对象会被存放到⽼年代?
- 什么时候触发full gc?
- GC算法分类
- 类加载机制以及类加载器,双亲委派机制。
- ⼀个对象被实例化后,在堆中的流转流程(堆结构以及GC流程)
- jvm调优,写调优参数。
04 Spring
- spring bean的⽣命周期
- 如何实现spring aop?
- springboot启动流程?
- Spring中BeanFactory和FactoryBean有什么区别,factorybean原理?
- Spring事件
- 作⽤域Spring,如果是request⽅式,a依赖b,a是单例⽅式,b是request,会怎么样?
05 多线程
- 乐观锁、悲观锁
- 三种分布式锁原理
- 线程池原理,java有哪⼏种线程池?如何创建?
- synchronized特性
- volatile原理
- Threadlocal
- ConcurrentHashMap
- HashMap为何线程不安全
- java.util.concurrent包下有哪些类?
06 数据结构
- HashMap数据结构?
- ConcurrentHashMap数据结构(jdk1.7 &1.8)?
- ⼆叉树、平衡树、红⿊树
- B-tree、B+tree
- TreeMap
07 微服务
- 画springcloud⼯作原理图
- 描述各个组件的作⽤及原理
- ⼼跳机制
- 限流⽅法
- 服务熔断、降级与隔离的实现原理
- eureka优缺点
- dubbo的负载均衡⽅式
08 数据库
- mysql存储引擎有哪些?他们的区别?
- 数据库隔离级别有哪些,并说下什么是脏读、不可重复读、幻读?
- 数据库事务的四⼤特性ACID?
- mysql调优⽅案?
- 在代码中,我们如何实现事务?
- 如果在⼀个事务中,代码业务流程很⻓,会有什么问题吗?为什么会出现这种问题?
09 zookeeper
- 选举算法
- 分布式锁实现原理、优缺点
- 服务发现与移除原理
10 redis
- 实现机制
- 分布式锁,以及要考虑的问题
- 除了加锁,如何使多个redis命令具有原⼦性(lua脚本)
- redis持久化的原理
- 分布式锁,使⽤redis的⽅式,但是redis是集群的,会有不同步的问题,官⽅⽂档是怎么解决的。
11 消息中间件
- 常⻅消息中间件的区别
- kafka的实现原理
- RabbitMQ消息模型
- RabbitMQ如何保证消息可靠性
12 分布式
- 介绍⼏种分布式事务,以及优缺点?
- 分布式服务的原则,什么情况下要使⽤分布式开发?
- 使⽤⾃增ID和UUID作为主键有什么不同?
13 网络
- tcp三次握⼿、四次挥⼿
- http机制
- https机制
14 项目经验