面试题总结-2024

面试题总结-2024面试技巧1.2 非技术面试问题回答注意点一、 java基础怎么理解面向对象?简单说说封装继承多态JAVA中的八大数据类型值传递和引用传递?== 与 equals 有什么区别?Integer a = 100;Integer b = 100; a==b 输出为?Integer a = 200;Integer b = 200; a==b 输出为?为什么?String、StringBuffer和StringBuild区别是什么?重载和重写有什么区别?什么是反射机制?什么是泛型?Spring创建的对象和自己手动new出来的对象有什么区别?接口和抽象类的区别是什么?BIO、NIO、AIO JAVA8有哪些新特性?二、java集合说说java中的集合?Java中线程安全的集合有哪些?ArrayList线程安全吗?ArrayList变成线程安全的方法有哪些?CopyOnWriteArrayList是如何实现线程安全的?HashMap实现原理介绍一下?HashMap的put流程介绍一下?ConcurrentHashMap怎么实现的?三、java多线程用过Java多线程吗?在哪用的,怎么用的?线程创建的方式有哪些?synchronized 工作原理? syncronized锁升级的过程讲一下ReentrantLock 的工作原理?ReentrantLock和synchronized有什么区别?介绍一下AQS的原理?ThreadLocal的原理?为什么会产生内存泄漏?介绍一下线程池的工作原理?有线程池参数设置的经验吗?四、java虚拟机JDK、JRE、JVM的关系?JVM的内存模型介绍一下?String s = new String(“abc”)执行过程中分别对应哪些内存区域?Java创建对象的过程?讲一下类的加载过程?什么是类加载器,类加载器有哪些?什么是双亲委派模型?请简述一下加载过程。并说一下优点?判断垃圾的方法有哪些?垃圾回收算法有哪些?标记清除算法的缺点是什么?垃圾回收器有哪些?G1垃圾回收器?CMS和G1的区别?MinorGC、MajorGC、FullGC的区别,什么场景触发FullGC?五、Spring说一下你对Spring的理解谈谈你对IOC和AOP的理解?他们的实现原理是什么?动态代理是什么?和静态代理有什么区别?JDK动态代理和CGLIB代理有什么区别?Spring如何解决循环依赖的问题?SpringIOC容器的一级二级三级缓存的作用?Spring事务的实现原理?Spring框架中都用到了那些设计模式?Spring事务在哪些情况下会失效?至少说出3种情况?SpringBean的生命周期?默认创建的Bean是单例,还有哪些类型?一共有几种?Spring AOP 和 AspectJ AOP 有什么区别?FactoryBean和BeanFactory有什么区别?Spring事务传播行为有多少种?分别是什么作用?(即问@Transactional的propagation参数)Spring的Bean默认是单例的不是线程安全的,怎么保证线程安全?SpringMVC工作流程是怎么样的?MyBatis工作流程Mybatis里的 # 和 $ 的区别?MyBatis一级缓存和二级缓存,作用域是多少?Springboot的启动类的启动流程是怎样的?为什么使用SpringBoot,SpringBoot比Spring好在哪里?SpringBoot的自动装配原理是什么?了解SpringCloud吗?说一下他和SpringBoot的区别HTTP与RPC的区别?Eureka工作原理?负载均衡策略有哪些算法?什么是服务熔断?什么是服务降级 ?线程隔离 熔断降级Dubbo工作原理?Dubbo注册中心挂了可以继续通信吗?Dubbo的执行流程Dubbo的安全性如何得到保障Dubbo中如何保证分布式事务?SpringCloud有哪些组件?怎么用的?说说"3PC"模式的过程。六、MySQL事务ACID的特性是什么?如何实现?MySQL事务的隔离级别有哪些?他们各有什么问题?什么是脏读、不可重复读、幻读?如何解决幻读?说说mysql MVCC多版本并发控制机制原理。MySQL里有哪些锁?执行一条SQL请求的过程是什么?Mysql存储引擎都有哪些? 分别有什么区别?优缺点是什么?索引是什么?有什么好处?MySQL中索引是怎么实现的?一页默认是16Kb,高度为3的B+数据最多能存储多少个数据?MySQL为什么用B+树结构?和其他结构比的优点?什么是聚簇索引,什么是非聚簇索引?他们之间有什么区别?什么是回表?索引优化详细讲讲?Mysql 什么情况下会导致“索引失效“?分别讲一下binlog、undolog、undolog?一条SQL语句的执行顺序?Explain关键字的作用?MySQL如何开启慢查询?MySQL主从复制了解吗?对于主从延迟有什么处理办法?mysql的分库和分表?常见的数据分片算法有哪些?七、RedisRedis为什么这么快?redis是单线程还是多线程?为什么?Redis数据类型有几种,说说每种对应的使用场景Zset底层是怎么实现的?Redis是单线程还是多线程?Redis持久化策略有几种?分别的优缺点是什么?Redis的内存淘汰策略?Redis的过期删除策略?Redis集群模式了解吗?什么时候进入fail状态?为什么Redis最大槽数是16384?哨兵机制的原理是什么?为什么Redis比Mysql快?Redis应用场景有哪些?Redis分布式锁的实现原理?Redis实现分布式锁存在哪些问题?如何解决?如何保证Redis和mysql数据缓存一致性问题?缓存穿透、击穿、雪崩是什么?怎么解决?布隆过滤器的原理了解吗?八、RabbitMQ消息中间件使用场景?五种基本的消息模式?交换机的种类有几种?常用的几种?什么叫死信队列和死信交换机?什么叫ttl?延迟队列的原理?消息成为死信的条件?如何保证消息不丢失?如何防止消息堆积/累计?集群分为几种?有什么区别?什么叫幂等性?幂等性问题如何解决?RabbitMQ怎么防止重复消费?九、ElasticSearch什么是正排索引?什么是倒排索引?十、zookeeper十一、数据结构冒泡排序算法快速排序算法十二、项目相关注册登录业务的开发?如何设计的?鉴权服务的开发?什么是RBAC?如何实现动态URL权限认证?怎么保证同一时间仅支持同一设备登录?在线人数统计?强制下线功能?简历服务的开发?怎么解决分布式事务数据一致性问题?缓存穿透、击穿、雪崩问题如何解决的?企业服务的开发?三级行业分类树如何设计?采用了哪种缓存同步策略?数据字典缓存为什么要使用Canel监听?工作服务的开发?为什么要引入多级缓存架构?如何设计与实现的?项目亮点是什么?你在项目中遇到的难点?怎么解决的?电商库存系统的防超卖和高并发扣减方案

面试技巧

 

1.2 非技术面试问题回答注意点

一、 java基础

怎么理解面向对象?简单说说封装继承多态

JAVA中的八大数据类型

1715930632378-7f03a5ae-3364-41d4-88a8-428997d543dd

值传递和引用传递?

== 与 equals 有什么区别?

Integer a = 100;Integer b = 100; a==b 输出为?Integer a = 200;Integer b = 200; a==b 输出为?为什么?

String、StringBuffer和StringBuild区别是什么?

重载和重写有什么区别?

什么是反射机制?什么是泛型?

Spring创建的对象和自己手动new出来的对象有什么区别?

接口和抽象类的区别是什么?

BIO、NIO、AIO

JAVA8有哪些新特性?

二、java集合

说说java中的集合?Java中线程安全的集合有哪些?

ArrayList线程安全吗?ArrayList变成线程安全的方法有哪些?CopyOnWriteArrayList是如何实现线程安全的?

HashMap实现原理介绍一下?HashMap的put流程介绍一下?

ConcurrentHashMap怎么实现的?

三、java多线程

用过Java多线程吗?在哪用的,怎么用的?

线程创建的方式有哪些?

synchronized 工作原理? syncronized锁升级的过程讲一下

ReentrantLock 的工作原理?

ReentrantLock和synchronized有什么区别?

介绍一下AQS的原理?

ThreadLocal的原理?为什么会产生内存泄漏?

介绍一下线程池的工作原理?有线程池参数设置的经验吗?

四、java虚拟机

JDK、JRE、JVM的关系?

JVM的内存模型介绍一下?

String s = new String(“abc”)执行过程中分别对应哪些内存区域?

Java创建对象的过程?

讲一下类的加载过程?

什么是类加载器,类加载器有哪些?

什么是双亲委派模型?请简述一下加载过程。并说一下优点?

判断垃圾的方法有哪些?

垃圾回收算法有哪些?标记清除算法的缺点是什么?

垃圾回收器有哪些?G1垃圾回收器?CMS和G1的区别?

MinorGC、MajorGC、FullGC的区别,什么场景触发FullGC?

五、Spring

说一下你对Spring的理解

谈谈你对IOC和AOP的理解?他们的实现原理是什么?

动态代理是什么?和静态代理有什么区别?

JDK动态代理和CGLIB代理有什么区别?

Spring如何解决循环依赖的问题?

img

SpringIOC容器的一级二级三级缓存的作用?

Spring事务的实现原理?

Spring框架中都用到了那些设计模式?

Spring事务在哪些情况下会失效?至少说出3种情况?

SpringBean的生命周期?

默认创建的Bean是单例,还有哪些类型?一共有几种?

Spring AOP 和 AspectJ AOP 有什么区别?

FactoryBean和BeanFactory有什么区别?

Spring事务传播行为有多少种?分别是什么作用?(即问@Transactional的propagation参数)

Spring的Bean默认是单例的不是线程安全的,怎么保证线程安全?

SpringMVC工作流程是怎么样的?

MyBatis工作流程

  1. 首先MyBatis应用程序会去加载MyBatis全局配置文件,如数据源和Mapper配置文件等信息。
  2. 解析配置文件,MyBatis会根据XML配置文件生成Configuration对象和一个个MappedStatement对象,MappedStatement对象中包含参数映射配置、动态SQL语句、结果映射配置,对应着select、update、delete、insert标签
  3. SessionFactoryBuilder会根据Configuration对象创建SqlSessionFactory对象,用来开启SqlSession
  4. 当我们在调用Mapper接口中的方法时,SqlSession会调用对应的MappedStatement对象
  5. Executor(负责动态SQL的生成和查询缓存的维护)会将MappedStatement对象进行解析、SQL参数转化、动态SQL拼接,生成JDBC Statement对象
  6. 通过JDBC执行SQL
  7. 借助MappedStatement中的映射关系,将返回结果进行转化并返回

Mybatis里的 # 和 $ 的区别?

MyBatis一级缓存和二级缓存,作用域是多少?

Springboot的启动类的启动流程是怎样的?

为什么使用SpringBoot,SpringBoot比Spring好在哪里?

SpringBoot的自动装配原理是什么?

了解SpringCloud吗?说一下他和SpringBoot的区别

SpringBoot是用于构建单体应用的框架,而SpringCloud则是用于构建分布式系统中的微服务架构的工具,SpringCloud提供了服务发现、远程调用、负载均衡、断路器、网关等功能

HTTP与RPC的区别?

Eureka工作原理?

负载均衡策略有哪些算法?

什么是服务熔断?什么是服务降级 ?

线程隔离 熔断降级

Dubbo工作原理?

Dubbo注册中心挂了可以继续通信吗?

可以,因为刚开始初始化的时候,消费者会将提供者的地址等信息拉取到本地缓存,所以注册中心挂了可以继续通信。

Dubbo的执行流程

项目一启动,加载配置文件的时候,就会初始化,服务的提供方ServiceProvider就会向注册中心注册自己提供的服务,当消费者在启动时,就会向注册中心订阅自己所需要的服务,如果服务提供方有数据变更等,注册中心将基于长连接的形式推送变更数据给消费者。

Dubbo的安全性如何得到保障

Dubbo中如何保证分布式事务?

SpringCloud有哪些组件?怎么用的?

说说"3PC"模式的过程。

六、MySQL

事务ACID的特性是什么?如何实现?

MySQL事务的隔离级别有哪些?他们各有什么问题?

什么是脏读、不可重复读、幻读?如何解决幻读?

说说mysql MVCC多版本并发控制机制原理。

MySQL里有哪些锁?

img

执行一条SQL请求的过程是什么?

img

Mysql存储引擎都有哪些? 分别有什么区别?优缺点是什么?

索引是什么?有什么好处?

MySQL中索引是怎么实现的?

一页默认是16Kb,高度为3的B+数据最多能存储多少个数据?

实际情况中每个节点可能不能填充满,因此在数据库中,B+Tree 的高度一般都在 2~4 层。MySQL 的 InnoDB 存储引擎在设计时是将根节点常驻内存的,也就是说查找某一键值的行记录时最多只需要 1~3 次磁盘 I/O 操作。

MySQL为什么用B+树结构?和其他结构比的优点?

什么是聚簇索引,什么是非聚簇索引?他们之间有什么区别?

img

什么是回表?

索引优化详细讲讲?

Mysql 什么情况下会导致“索引失效“?

分别讲一下binlog、undolog、undolog?

一条SQL语句的执行顺序?

答:from->where->group By->聚合函数->having分组->计算表达式->select->order By

Explain关键字的作用?

MySQL如何开启慢查询?

MySQL主从复制了解吗?对于主从延迟有什么处理办法?

mysql的分库和分表?常见的数据分片算法有哪些?

七、Redis

Redis为什么这么快?

redis是单线程还是多线程?为什么?

Redis数据类型有几种,说说每种对应的使用场景

Zset底层是怎么实现的?

Redis是单线程还是多线程?

Redis持久化策略有几种?分别的优缺点是什么?

Redis的内存淘汰策略?

Redis的过期删除策略?

Redis集群模式了解吗?什么时候进入fail状态?为什么Redis最大槽数是16384?

哨兵机制的原理是什么?

为什么Redis比Mysql快?

Redis应用场景有哪些?Redis分布式锁的实现原理?Redis实现分布式锁存在哪些问题?如何解决?

如何保证Redis和mysql数据缓存一致性问题?

缓存穿透、击穿、雪崩是什么?怎么解决?

布隆过滤器的原理了解吗?

八、RabbitMQ

消息中间件使用场景?

五种基本的消息模式?

交换机的种类有几种?常用的几种?

什么叫死信队列和死信交换机?

什么叫ttl?

延迟队列的原理?

消息成为死信的条件?

如何保证消息不丢失?

如何防止消息堆积/累计?

集群分为几种?有什么区别?

什么叫幂等性?幂等性问题如何解决?

RabbitMQ怎么防止重复消费?

九、ElasticSearch

什么是正排索引?什么是倒排索引?

十、zookeeper

十一、数据结构

冒泡排序算法

快速排序算法

十二、项目相关

注册登录业务的开发?如何设计的?

鉴权服务的开发?什么是RBAC?如何实现动态URL权限认证?怎么保证同一时间仅支持同一设备登录?在线人数统计?强制下线功能?

简历服务的开发?怎么解决分布式事务数据一致性问题?缓存穿透、击穿、雪崩问题如何解决的?

企业服务的开发?三级行业分类树如何设计?采用了哪种缓存同步策略?数据字典缓存为什么要使用Canel监听?

工作服务的开发?为什么要引入多级缓存架构?如何设计与实现的?

项目亮点是什么?你在项目中遇到的难点?怎么解决的?

电商库存系统的防超卖和高并发扣减方案