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 项目经验

  • 项目亮点
  • 画架构图
  • 平时看过什么书