Java常见面试问题总结
Posted 一条小帅帅0v0
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java常见面试问题总结相关的知识,希望对你有一定的参考价值。
Java常见面试问题总结
说明:本人是二线城市工作4/5年的菜鸟程序员,以下面试问题更侧重于当地的初中级、高开。要是以北上广深的面试标准问则还远远不够,就比如在一线城市JDK(List、Map、Set)、JUC并发包和mysql底层原理部分问的就会更多且更深,以下面试题是个人跳槽面试多年来对被问过的面试问题的总结,当然有一些是八股文里常会问到的。
一、微服务相关问题:
1、SpringBoot和Spring有什么区别?
2、SpringCloud、SpringBoot有什么区别和联系?
3、SpringCloud全家桶、SpringCloudAlibaba全家桶分别有那些组件?
4、为什么项目使用SpringCloudAlibaba全家桶而不使用SpringCloud全家桶?
5、Eurkea和Nacos和RPC三者有什么区别?(要是能根据CAP原理进行分析那就相当nice了,薪资绝对低不了!)
6、SpringCloudAlibaba的Sentinel组件有没有了解?什么是熔断?什么是降级?
7、SpringCloudGateway是怎么配置的?和nginx有什么区别?项目已经有Nginx了为什么还要用Gateway?
8、在微服务中服务与服务之间的通信用得是什么?Open-Feign
二、Spring相关问题:
1、讲一讲对Spring IOC的理解,如何通过方法获取Spring中指定的Bean对象?
2、讲一讲对Spring AOP的理解,讲一讲Aop在Spring中有哪些应用,Aop的通知类型有哪几种?Aop在项目中有哪些应用场景?项目中除了日志用到了Aop还有哪里用到了Aop?
3、讲一讲静态代理、动态代理?
三、Mybatis相关问题:
1、Mybatis和MybatisPlus有什么区别?为什么你们项目要用MybatisPlus,MybatisPlus有什么好处?
2、Mybatis是怎样分页的?MybatisPlus又是怎样分页的?
3、Mybatis是如何防止Sql注入的?
四、Mysql相关问题:
1、数据库事务的ACID是什么?分别描述下?
2、Mysql的存储引擎有哪些?有什么区别?默认是使用哪些?
3、Mysql常用的索引有哪些?索引在Mysql起到了什么作用?
4、Mysql的having和where的使用方式?
5、知道哪些关于Mysql的优化方案?配合Mybatis的使用有哪些优化?
五、Http相关问题:
1、Http的请求方法有哪些?
2、常见的Http请求码有哪些?
3、Http和Https有什么区别?
4、讲讲Http建立连接时候的三次握手和四次挥手?
4、cookie和session有什么却别?配合前端的localstorage讲讲存储?
5、JWT是做什么的?有使用过嘛?配合SpringSecurity讲讲有什么联系和区别?
6、知道什么是跨域吗?
六、Redis相关问题:
1、项目中为什么要使用Redis?使用Redis有什么好处?
2、Redis常见的数据结构有哪些?各个数据结构一般都应用在什么场景?
3、Redis的持久化方式有哪些?分别有什么区别?
4、有了解过缓存淘汰策略吗?(此问题一般不会问,中级+、高级一般会问)
5、分别讲讲缓存穿透、击穿和雪崩?
6、Redis哨兵、集群私下里有搭建过吗?
7、CacheManager有什么用途?在Spring中怎样使用缓存管理器CacheManager?
七、MQ( 拿RabbitMQ举例)相关问题:
1、了解过哪些MQ?不同MQ之间有什么区别?
2、使用MQ的目的是什么?(削峰、异步和解耦)
2、RabbitMQ在项目里什么场景下使用的?以及如何使用的?
3、RabbitMQ的延迟队列、死信队列有了解和使用过吗?
4、如何保证消息的可靠性投递?
5、如何避免消息的重复消费?
6、MQ的集群私下里有搭建过吗?
八、并发锁相关问题:
1、在java的JUC包中有哪些常用的锁?(讲讲synchronized、ReentrantLock使用场景和区别)
2、什么是死锁?
3、项目中是否使用到了锁?为什么分布式下不用以上两种锁?分布式下用的应该是什么锁?
4、讲讲Redisson分布式锁的使用和机制?(项目用到了就会问)
5、假如没有Redisson分布式锁有什么可替代的方法?(高开+会问)
九、事务相关问题:
1、Spring中的事务使用的是哪个注解?说说事务的隔离级别?默认用的是哪个?
2、讲讲2PC 两段式提交、3PC、TCC柔性事务(能答出来你就牛逼了!)
3、在分布式中用到的分布式事务是什么?说一下Seata的注解是哪个?
4、Seata的处理过程,结合TC、TM、RM来讲?(高开+问)
九、JDK基础知识
1、List、Map、Set相关问题
2、JDK8新特性有哪些?关于Stream流在代码中的使用
十、其它问题
1、项目中你们的接口文档是如何编写的?要是有Swagger就简单讲讲
2、项目中有使用到什么设计模式吗?(回答单例的较多,回答简单工厂+策略的在面试官心中特别加分),描述下策略模式一般在什么时候用?
3*、你自己的职业规划是什么?(架构师/技术经理,要说下班后坚持学习,每年要学会哪些技术,每年都要有什么样的进步)
4*、你在工作中遇到都过什么样的困难?你是如何解决的?
以上是关于Java常见面试问题总结的主要内容,如果未能解决你的问题,请参考以下文章