2026/4/18 16:37:06
网站建设
项目流程
专门做护肤品的网站是,建站卖素材,看免费的视频的软件app,深圳网络推广公司说明
本文分享Java后端真实高频面试题#xff0c;有详细答案#xff0c;保你稳过面试。题目包括#xff1a;Java基础、多线程、JVM、数据库、Redis、Shiro、Spring、SpringBoot、MyBatis、MQ、ELK、SpringCloud、设计模式等。 包含从简单到困难、从高频到低频的题目#x…说明本文分享Java后端真实高频面试题有详细答案保你稳过面试。题目包括Java基础、多线程、JVM、数据库、Redis、Shiro、Spring、SpringBoot、MyBatis、MQ、ELK、SpringCloud、设计模式等。包含从简单到困难、从高频到低频的题目适合所有Java求职者包括应届生、转行的、三年以内经验的、三到五年经验的、五到十年经验的等。你要跳槽时是否遇到过如下问题没有题库不知道如何开始复习有题库但题目超级多根本看不完背完题库中的面试题了却发现面试官的问题大部分都不在题库中导致面试老是挂拿不到offer此套面试题的特点这是一套真实、靠谱的题目。它的特点是很强大面试官的问题基本都在这套题里看过这套题的朋友都说面试时85%以上的题目都在这些题目里成为了offer收割机真实、靠谱这套题是我在几十场面试中被面试官问到的问题精选、高频数量合适很快就能看完有难度和频率的标记着急跳槽的可以只看频率为三颗星及以上的题目看过我这篇文章的几个朋友和同事参加了面试后跟我说他们面试被问到的问题大部分85%以上都在这个文章里。我在面试时经常会遇到这种情况95%的题目在本文中我对答如流不知道面试官是否会怀疑泄题了 。这些面试也都很稳地拿到了offer。篇幅限制下面就只能给大家展示小册部分内容了。整理了一份核心面试笔记包括了Java面试、Spring、JVM、MyBatis、Redis、MySQL、并发编程、微服务、Linux、Springboot、SpringCloud、MQ、Kafka 面试专题需要全套面试笔记及答案可以在文末获取难度与频率面试题采用五角星来评判题目的难度和被问到的频率最高为五颗星。如果是三年以上的经验只看难度为三颗星及以上的题目即可。如果是一两年经验看个人水平水平好些的可以看一颗星到五颗星所有题目我知道有这样的朋友虽然经验少但爱学习一两年的经验拥有普通人四五年的技术能力项★★★★★★★★★★★★★★★难度初级初中级中级中高级高级频率很少问到几乎必问基础难度★★★ 频率★StringString, StringBuffer, StringBuilder区别难度★ 频率★★★String对象数目难度★★★ 频率★intern方法的作用难度★★★ 频率★如何修改String对象的数据难度★★★ 频率★★staticstatic的5种用法难度★★ 频率★为什么静态方法不能调用非静态方法和变量难度★★★ 频率★★★异常异常类型难度★★ 频率★★★★catch里return了finally是否执行难度★★ 频率★IO字节流与字符流区别难度★★ 频率★★BIO, NIO, AIO 区别难度★★★ 频率★JDK8JDK8新特性难度★★ 频率★★JDK8接口的default和static难度★★ 频率★JDK8 Stream API 流操作包括哪些部分项目中怎么用的Stream难度★★ 频率★语法项目中对泛型的使用难度★★ 频率★★接口与抽象类的区别难度★★ 频率★类库SimpleDateFormat线程安全吗怎么保证线程安全难度★★★ 频率★★★反射Java反射forName和classLoader的区别难度★★★ 频率★反射机制中可以获取private成员的值吗难度★★★ 频率★可以。法1.通过setter和getter获得 法2通过Field类提供的set()和get()方法另见《Java开发实战经典 第2版》 15.4 Java反射机制的深入应用其他拆箱与装箱难度★ 频率★集合ListList与Set的区别难度★ 频率★ArrayList与LinkedList异同点难度★ 频率★★List与数组的区别难度★ 频率★ArrayList是否线程安全如何线程安全地操作ArrayList难度★★★ 频率★★★★★ArrayList扩容机制难度★★★ 频率★★★★List.subList的坑难度★★ 频率★List如何安全删除难度★★ 频率★List如何去重难度★ 频率★★List如何实现排序难度★ 频率★★为什么引入迭代器难度★★ 频率★List哪种遍历性能好为什么难度★★ 频率★Map1.HashMap、TreeMap、LinkedHashMap和区别难度★★ 频率★★★★★2.JDK8的HashMap和ConcurrentHashMap的改变难度★★ 频率★★★★3.HashMap数据结构、哈希冲突解决方法难度★★★ 频率★★★★4.HashMap扩容的原理难度★★★ 频率★★★★5.HashMap为什么线程不安全如何线程安全地操作难度★★★ 频率★★★★★6.ConcurrentHashMap原理难度★★★ 频率★★★★★7.String的hashCode怎么实现的难度★★ 频率★8.hashs[0] * 31^(n-1) s[1] * 31^(n-2) ... s[n-1]9.HashMap和HashSet的区别及其实现原理难度★★ 频率★HashMap将key.hashCode()作为hash值存放将value直接作为value。HashSet调用HashMap的put方法将key.hashCode()作为hash值存放将HashSet类的final变量PRESENT作为value。10.HashMap如果使用对象最为key要注意什么难度★★ 频率★重写hashCode和equals。11.对象比较为什么重写hashCode和equals难度★★ 频率★重写equals方法时需要重写hashCode方法主要是针对Map、Set等集合类型的使用a: Map、Set等集合类型存放的对象必须是唯一的b: 集合类判断两个对象是否相等是先判断HashCode是否相等如果HashCode返回TRUE还要再判断equals返回值是否ture,只有两者都返回ture,才认为该两个对象是相等的。JVM运行时数据区运行时数据区是怎样的线程安全即线程私有的有哪些难度★★ 频率★★★★对象实例、类信息、常量、静态变量分别在运行时数据区的哪个位置难度★★ 频率★★类加载Java类加载流程初始化流程难度★★ 频率★★★★★JVM双亲委派模型难度★★★ 频率★内存泄露Java内存泄露什么时候会发生难度★★ 频率★★为什么内部类持有外部类可能内存泄露如何解决难度★★ 频率★为什么ThreadLocal会导致内存泄露如何解决难度★★★ 频率★★垃圾回收1.引用类型及其含义难度★★ 频率★★★2.finalize方法做什么用的难度★ 频率★垃圾回收时会调用此方法3.可以作为GC.Roots的对象有哪些难度★★★ 频率★4.调用System.gc()会立刻垃圾回收吗难度★★ 频率★5.Minor GC和Full GC的触发时机。难度★★★ 频率★★6.频繁Full GC如何排查难度★★★★ 频率★7.JDK默认的垃圾回收器是什么难度★★ 频率★8.CMS垃圾回收器的流程难度★★★ 频率★★★★9.CMS和G1区别难度★★★ 频率★★★10.CMS与其他老年代垃圾回收器的区别难度★★★ 频率★JVM调优JVM通常设置哪些参数来调优难度★★ 频率★★★★其他怎么分配堆外内存难度★★ 频率★多线程综合1.项目中哪些地方用到了多线程难度★★★ 频率★★★★★处理定时的任务。 比如定时器定时处理数据进行统计等异步处理。 比如发邮件 记录日志 发短信等。比如注册成功后发激活邮件批量处理缩短响应时间。比如SpringBoot--多线程处理2.线程的安全性问题体现在哪些方面难度★★ 频率★3.死锁产生的条件难度★★ 频率★4.i是否线程安全难度★ 频率★不是线程安全的。要线程安全可以用java.util.concurrent.atomic5.JMM内存结构难度★★★ 频率★★synchronizedsynchronized用于静态方法与普通方法有区别吗难度★★ 频率★★synchronized锁的升级是怎样的难度★★★ 频率★线程池线程池缺点难度★★ 频率★★BlockingQueue线程池fixed, single, scheduled, cached对应的队列难度★★ 频率★★★ThreadPoolExecutor有哪些参数难度★★ 频率★★★★★CPU密集与IO密集的场景如何设置线程池参数难度★★★ 频率★★★什么时候触发最大线程条件难度★★ 频率★★★★★线程池拒绝策略有哪些默认是哪个难度★★ 频率★★★★线程池里的异常时如何处理的难度★★ 频率★JUCReentrantLock显著缺点难度★★★ 频率★★CAS和AQS了解吗原理是什么难度★★★ 频率★★synchronized与ReentrantLock区别难度★★ 频率★★有哪些原子类用过哪个难度★★★ 频率★项目里用了哪些锁难度★★★ 频率★★★单体项目里用到了ReentrantLock、synchronized单例模式里用到了synchronizedJDK8新增的异步编程了解吗难度★★★ 频率★多线程顺序交替执行的方法有三个线程A,B,C依次打印出A,B,C难度★★★ 频率★方案1Java多线程-使用堵塞队列实现顺序消费方案2模拟阻塞队列使用Object的wait(), notify()使用一个互斥锁。MySQL综合问题MyISAM与InnoDB区别难度★ 频率★★★★sql注入怎么解决难度★★★ 频率★★三大范式难度★★ 频率★怎么样幂等难度★★★ 频率★★一条SQL查询语句的执行流程难度★★ 频率★★大表分页的优化方法难度★★★★ 频率★为什么不要用外键难度★★★ 频率★批量往数据库导入1000万条数据方法难度★★ 频率★存储过程数据库优化方式难度★★★ 频率★建立索引、字段冗余减少联表查询、使用缓存、读写分离、分库分表怎么调试存储过程难度★★ 频率★MySQL的三种驱动类型 难度★★ 频率★事务隔离级别是怎样的脏读、幻读是什么意思难度★★★ 频率★★★★★隔离级别如何选用难度★★ 频率★★ACID难度★★ 频率★隔离级别是如何实现的MVCC难度★★★★ 频率★★快照读与当前读 是怎样的难度★★★★ 频率★★索引索引的种类难度★★ 频率★★★数据库使用索引的缺点难度★★ 频率★★★创建索引的原则难度★★ 频率★★★★索引什么时候会失效难度★★ 频率★★★★★创建了A, B, C联合索引使用B,C能否索引难度★★★ 频率★★★★★LIKE什么时候走索引什么时候不走索引难度★★★ 频率★★★ORDER BY是否走索引难度★★★ 频率★★聚集索引是什么什么是回表难度★★★★ 频率★★★★索引原理为什么采用B树难度★★★★ 频率★锁共享锁与独占锁的区别难度★★ 频率★什么时候会死锁难度★★★★ 频率★分库分表什么时候考虑分库分表分库分表要考虑什么问题难度★★★ 频率★原来没分库分表后期如何分库分表难度★★★★ 频率★★分库分表的中间件难度★★ 频率★★Sharding-JDBC、Mycat水平分表有哪些规则难度★★★ 频率★★★★★如何维护全局的id难度★★★ 频率★★★★★语句语句类笔试题难度★★★ 频率★OR与IN的效率难度★★★ 频率★内联结全外联结左联结右联结的含义难度★★ 频率★Redis基本问题Redis数据类型及其使用场景难度★★★ 频率★★★★★Redis的数据类型对应的底层结构是怎样的难度★★★★ 频率★★★Redis为什么很快难度★★ 频率★★★★★Redis是单线程为什么速度依然快难度★★ 频率★★Redis持久化AOFRDB区别难度★★ 频率★★★★持久化长久下来AOF文件会很大怎么办难度★★★ 频率★★Redis有哪些原子命令难度★★★ 频率★Redis所有单个命令都是原子性的。穿透、无底洞、雪崩、击穿 解决方案难度★★★ 频率★★★★★Redis的发布订阅机制及其使用场景难度★★★★ 频率★★内存回收机制是怎样的或者说淘汰策略难度★★★ 频率★★★★给一个key怎么知道是用的哪种数据类型难度★ 频率★用type命令。例如type key1为什么使用Redis不用Memcache和MongoDB难度★★ 频率★★Redis与数据库如何同步各个方式的缺点是什么难度★★★ 频率★★★Redis很慢如何排查及解决难度★★★★ 频率★★多线程操作同一个Key如何保证一致性微服务部署多个实例时如何保证一致性难度★★★★ 频率★秒杀的时候怎么使用Redis难度★★★★ 频率★★★布隆过滤器原理什么时候会误判难度★★★★ 频率★★★用Redis如何实现延迟队列难度★★★★ 频率★分布式锁Redis做分布式锁如何处理超时时间比如超时时间是5秒但要执行20秒相当于没锁住超时时间是20秒但只需执行5秒浪费难度★★★★ 频率★★★设置中等长度的时间线程执行完删除这个值另起线程定期去刷新这个值。Redisson的分布式锁就是这个方案Redis实现分布式锁集群环境如何处理主节点宕机这种情况难度★★★★★ 频率★使用RedLock红锁算法若过半的Redis节点能够setnx成功则表示获取锁成功类似于zk实现分布式锁方式集群多节点有哪些部署方式难度★★ 频率★主从、哨兵、集群Cluster集群不支持事务如何解决难度★★★★ 频率★主从集群中主节点死了以后是否还能使用如何解决难度★★★ 频率★可以使用哨兵部署自动故障转移。读写分离时读写分别在哪个节点难度★★ 频率★在主节点上写在从节点上读。集群Cluster集群Cluster如何进行节点通信难度★★★★ 频率★★集群Cluster如何进行扩展伸缩难度★★★ 频率★★集群Cluster如何进行故障转移难度★★★★ 频率★★设计模式项目里用到了哪些设计模式怎么用的难度★★★ 频率★★★★★设计模式的原则难度★★ 频率★、设计模式的类别难度★★ 频率★单例模式的写法难度★★ 频率★★★★手写双重检验单例为什么用volatile为什么两次if判断难度★★★ 频率★★★静态代理与动态代理区别难度★★★ 频率★★★★★框架SpringIOCSpring循环依赖解决方法及原理难度★★★★ 频率★★★★Spring的循环依赖用的是三级缓存为什么不是两级难度★★★★ 频率★★FactoryBean和BeanFactory区别难度★★★★ 频率★★BeanFactory和ApplicationContext区别难度★★★★ 频率★bean的生命周期是怎样的难度★★★ 频率★Spring几种scope区别难度★★★ 频率★Spring容器的生命周期是怎样的难度★★★ 频率★SpringAOP解决了什么问题难度★★★ 频率★★SpringAOP实际开发过什么功能难度★★★ 频率★★★AOP原理难度★★★★ 频率★★★★★AOPAOP有哪几种通知如果方法执行报异常哪个通知不会执行难度★★★★ 频率★前置后置环绕返回异常。若报异常返回不会执行。事务Spring默认数据里隔离级别是什么项目里用的哪个难度★★★ 频率★★默认采用数据库的隔离级别。项目里就是用的默认的Spring事务失效场景难度★★★★ 频率★★★★Spring事务传播机制难度★★★★ 频率★★其他SpringBoot如何热部署yml配置文件修改后是否也能及时更新难度★★★ 频率★SpringBoot自动配置原理难度★★★★★ 频率★SpringMVCSpringMVC流程难度★★★★ 频率★★★servlet的过滤器、拦截器、AOP的执行顺序 难度★★★ 频率★★SpringBootSpringBoot的启动流程难度★★★★ 频率★★★★SpringBoot的动态代理默认用的哪个cglib还是JDK难度★★★★ 频率★★★★SpringBoot 1.5.x默认使用JDK代理SpringBoot 2.x默认使用CGLIB代理。怎么自己写SpringBootStarter难度★★★★ 频率★MyBatisMyBatis的#与$有什么区别难度★★ 频率★★★★MyBatis的原理Mapper是个接口它的实现类在哪难度★★★★ 频率★★为什么MyBatis与Spring整合二级缓存会失效 难度★★★★ 频率★中间件MQ综合RabbitMQRocketMQ和Kafka区别难度★★ 频率★★★★★RabbitMQRabbitMQ有哪些交换器RabbitMQ的交换器与队列的关系难度★★ 频率★★★RabbitMQ的消息异常丢失、重复、顺序、堆积如何处理难度★★★ 频率★★★★★RabbitMQ消息是否会过期难度★★★ 频率★★RabbitMQ的消息什么时候会放到死信队列难度★★★ 频率★RabbitMQ的延迟队列是怎样的难度★★★ 频率★★RabbitMQ的集群有哪几种部署方式难度★★ 频率★多机多节点单机多节点Kafka为什么Kafka性能很高难度★★★ 频率★★★Kafka的消息异常丢失、重复如何处理难度★★★ 频率★★★★Kafka不支持延迟队列如果用到延迟队列该如何实现难度★★★★★ 频率★★★ShiroShiro怎么根据url对应权限流程是什么难度★★★ 频率★★★session存放在哪里难度★★ 频率★分布式综合分布式CAP理论是什么Zookeeper和Eureka分别放弃了什么难度★★★ 频率★★★分布式锁实现方式难度★★★ 频率★★★★★2PC、3PC、TCC的区别及使用场景难度★★★★ 频率★★分布式session共享解决方案难度★★★ 频率★★为什么微服务一定要有网关难度★★★ 频率★配置中心如何把微服务的公共配置给拿出来难度★★ 频率★用spring.profiles.include将公共的配置包含进去。使用NacosNacos支持公共配置NacosNacos如何续期难度★★★ 频率★★Nacos支持AP还是CP难度★★★ 频率★★两者都支持选一种即可。默认是APZookeeperZookeeper注册中心挂了服务还能否调用难度★★★ 频率★★可以因为客户端还有缓存ZK分布式锁leader节点宕机了会发生什么难度★★★★ 频率★进行选举过半选举Ps由于篇幅限制PDF笔记无法全部为大家展示出来就以截图主要内容的形式让大家参考啦需要完整版的小伙伴关注老猿的公众号【清朝程序猿】回复“666”即可免费领取到了