大部分企业为互联网公司,主要是面试官围绕项目聊技术栈,然后深度和广度扩展,也含有一些简单算法题,毕竟没面字节。

Java类

1、JVM内存结构,Java内存模型,对象创建过程;

2、JVM垃圾收集器原理,JVM调优,CMS的过程;

垃圾定义:垃圾回收器根据对象的“活性”( 从root 的可达性) 来决定是否回收该对象的内存,死对象就是需要回收的垃圾。
GC-Root范围:本地线程栈变量引用对象,JNI线程栈引用对象,方法区类静态属性引用对象,方法区中常量引用的对象(final 的常量值)

3、类加载机制,是否遇到违反双亲委派的场景?

装载:查找和导入Class文件
链接:其中解析步骤是可以选择的
(a)检查:检查载入的class文件数据的正确性 (b)准备:给类的静态变量分配存储空间 (c)解析:将符号引用转成直接引用
初始化:对静态变量,静态代码块执行初始化工作

4、并发同步的知识点,synchronize和lock的区别,使用场景。

     volatile的底层实现。aqs,cas的原理。

     线程池各个参数的作用。以及一个线程进入线程池的大致过程。

5、ThreadLocal的原理作用,ConcurrentHashMap的底层结构,扩容缩容。

6、线程安全的单例模式几种实现方式;DCL、枚举、静态内部类。

7、线程的几个状态和过程; Waiting和Blocked的区别

线程可以通过notify,join,LockSupport.park方式进入wating状态,进入wating状态的线程等待唤醒(notify或notifyAll)才有机会获取cpu的时间片段来继续执行。
线程的blocked状态往往是无法进入同步方法/代码块来完成的。这是因为无法获取到与同步方法/代码块相关联的锁。
与wating状态相关联的是等待队列,与blocked状态相关的是同步队列,一个线程由等待队列迁移到同步队列时,线程状态将会由wating转化为blocked。
可以这样说,blocked状态是处于wating状态的线程重新焕发生命力的必由之路。

JAVA研发 SOP java研发经理面试题_java

设计模式

策略模式和抽象模板模式的区别

责任链模式

框架源码类

1、Spring源码、MyBatis的源码以及里面的设计模式,主要是循环依赖、SpringMVC的执行过程、Spring整合Mybatis的步骤,Spring事务管理的步骤

2、SpringBoot自动配置的原理,SpringBoot启动步骤

3、Eureka、Nacos、Apollo配置中心,

     Eureka的自我保护模式的优点和缺点。

4、Netty

MySQL类

1、innodb引擎的MVVC原理,事务怎么实现的?

2、索引的原理,索引的建立原则;

3、幻读是否能解决?

4、MySQL日常怎么调优的?

1.关联表不要超过4个
2.常用的查询字段是否建索引,联合查询是否有组合索引
3.组合索引是否满足索引左前缀匹配     
4.explain 查看执行计划,分析type的类型,是走的全表扫描还是区间范围还是索引或者常量

Redis类

1、几种数据类型,以及常用的场景

2、redis高可用,集群怎么做的

3、redis的持久化过程

4、缓存热点,缓存穿透,缓存击穿,缓存雪崩这几个现象以及解决方案

5、缓存不一致的场景以及解决方案

6、使用redis实现分布式锁的问题和解决方案

消息队列类

1、消息队列的使用场景,消息内容包含什么信息?

2、消息顺序性、可靠性、幂等性如何做?

3、延迟队列是否使用过,大概场景;RabbitMQ的两种延迟队列都是怎么实现的有什么区别?

微服务分布式类

1、微服务的技术栈讲一遍

  • 服务治理
  • 微服务通信
  • 系统保护
  • 统一网关
  • 链路追踪+性能监控
  • 分布式事务
  • 消息队列

    服务拆分的原则,服务拆分的粒度。

2、网关zuul1.0、zuul2.0区别

zuul1.0 基于Servlet的filter机制,

zuul2.0 基于Netty实现的同步非阻塞机制。

3、服务调用Feign的实现细节,hystrix使用时线程池场景中的header透传处理,负载均衡ribbon的细节处理。

4、注册中心的原理对比,CAP对比+服务量+活跃度

5、服务调用链路追踪SkyWalking的原理和使用

6、服务的监控告警

7、单个服务的QPS、TPS,整个服务集群的QPS、TPS

8、分布式锁的实现和对比(Redis和Zookeeper)

9、分布式事务的场景和使用(2阶段、TCC、最终一致性、Seata如何实现的)

项目类

1、场景题:saas平台的商品表如果数据量很大怎么做?

2、场景题:如果订单表,一天的单量大概4000w,怎么设计和解决?

3、场景题:来实现一个类似营销系统,需要怎么进行?

4、场景题:秒杀系统怎么设计和实现?

5、场景题:基于Saas的会员积分服务的表设计以及积分规则设计,积分扣减,积分增加的场景,并发情况下如何保证积分准确性?

6、场景题:如何设计一个红包雨游戏,预估并发1000w,包括整体架构设计

7、场景题:如果用RabbitMQ的死信队列功能,消息如何取消?如果无法取消,请设计一个可以支持取消消息的方案?