Java常见面试题
文章平均质量分 89
常见面试题
Mr.D.Chuang
时代各有不同,青春一脉相承。一起学习,一起奋进,一起进步,砥砺前行。
展开
-
常见面试题之常见技术场景
单点登录这块怎么实现的?单点登录的英文名叫做:Single Sign On(简称SSO),只需要登录一次,就可以访问所有信任的应用系统。权限认证是如何实现的?最常见的就是RBAC模型来指导实现权限。上传数据的安全性你们怎么控制?使用非对称加密(或对称加密),给前端一个公钥让他把数据加密后传到后台,后台负责解密后处理数据。你负责项目的时候遇到了哪些比较棘手的问题?你们项目中日志怎么采集的?查看日志的命令?生产问题怎么排查?怎么快速定位系统的瓶颈?原创 2023-07-27 20:39:35 · 428 阅读 · 0 评论 -
常见面试题之设计模式--责任链模式
责任链模式又名职责链模式,为了避免请求发送者与多个请求处理者耦合在一起,将所有请求的处理者通过前一对象记住其下一个对象的引用而连成一条链;当有请求发生时,可将请求沿着这条链传递,直到有对象处理它为止。比较常见的springmvc中的拦截器,web开发中的filter过滤器。职责链模式主要包含以下角色:抽象处理者(Handler)角色、具体处理者(Concrete Handler)角色、客户类(Client)角色。原创 2023-07-26 20:46:16 · 543 阅读 · 0 评论 -
常见面试题之设计模式--策略模式
该模式定义了一系列算法,并将每个算法封装起来,使它们可以相互替换,且算法的变化不会影响使用算法的客户。策略模式属于对象行为模式,它通过对算法进行封装,把使用算法的责任和算法的实现分割开来,并委派给不同的对象对这些算法进行管理。策略模式的主要角色如下:抽象策略(Strategy)类:这是一个抽象角色,通常由一个接口或抽象类实现。此角色给出所有的具体策略类所需的接口。具体策略(Concrete Strategy)类:实现了抽象策略定义的接口,提供具体的算法实现或行为。环境(Context)类:持有一个策略类的引原创 2023-07-26 20:20:05 · 289 阅读 · 0 评论 -
常见面试题之设计模式--工厂方法模式
在java中,万物皆对象,这些对象都需要创建,如果创建的时候直接new该对象,就会对该对象耦合严重,假如我们要更换对象,所有new对象的地方都需要修改一遍,这显然违背了软件设计的开闭原则。如果我们使用工厂来生产对象,我们就只和工厂打交道就可以了,彻底和对象解耦,如果要更换对象,直接在工厂里更换该对象即可,达到了与对象解耦的目的;所以说,工厂模式最大的优点就是:解耦。开闭原则:对扩展开放,对修改关闭。原创 2023-07-25 21:04:56 · 560 阅读 · 0 评论 -
常见面试题之Redis篇(二)
什么是缓存穿透?怎么解决?什么是缓存击穿?什么是缓存雪崩?redis做为缓存,mysql的数据如何与redis进行同步呢?数据的持久化是怎么做的?Redis的数据过期策略有哪些?Redis的数据淘汰策略有哪些?Redis分布式锁如何实现?redisson实现的分布式锁能解决主从一致性的问题吗?如果业务非要保证数据的强一致性,这个该怎么解决呢?Redis集群有哪些方案, 知道嘛?能说一下,主从同步数据的流程?怎么保证Redis的高并发高可用?redis集群脑裂,该怎么解决呢?redis的分片集群有什么作用?原创 2023-07-24 21:30:02 · 244 阅读 · 0 评论 -
常见面试题之微服务(二)
Spring Cloud 5大组件有哪些?服务注册和发现是什么意思?Spring Cloud如何实现服务注册发现?你能说下nacos与eureka的区别?你们项目负载均衡如何实现的 ?Ribbon负载均衡策略有哪些 ?什么是服务雪崩,怎么解决这个问题?你们项目中有没有做过限流 ? 怎么做的 ?什么是CAP理论?什么是BASE理论?你们采用哪种分布式事务解决方案?xxl-job路由策略有哪些?xxl-job任务执行失败怎么解决?如果有大数据量的任务同时都需要执行,怎么解决?原创 2023-07-19 21:57:22 · 1105 阅读 · 0 评论 -
常见面试题之HashMap
说一下HashMap的实现原理?HashMap的jdk1.7和jdk1.8有什么区别?你能说下HashMap的put方法的具体流程吗?能讲一讲HashMap的扩容机制吗?刚才你说的通过hash计算后找到数组的下标,是如何找到的呢,你了解hashMap的寻址算法吗?为何HashMap的数组长度一定是2的次幂?hashmap是线程安全的吗?那我们想要使用线程安全的map该怎么做呢?那你能聊一下ConcurrentHashMap的原理吗?HashSet与HashMap的区别?原创 2023-07-19 20:13:34 · 1222 阅读 · 1 评论 -
常见面试题之List集合
说一说Java提供的常见集合?(画一下集合结构图)ArrayList底层是如何实现的?如何实现数组和List之间的转换?用Arrays.asList转List后,如果修改了数组内容,list受影响吗?List用toArray转数组后,如果修改了List内容,数组受影响吗?ArrayList和LinkedList的区别是什么?刚才你说了ArrayList和LinkedList不是线程安全的,你们在项目中是如何解决这个的线程安全问题的?原创 2023-07-13 22:00:56 · 721 阅读 · 0 评论 -
常见面试题之消息中间件
RabbitMQ如何保证消息不丢失?RabbitMQ消息的重复消费问题如何解决的?如果有100万消息堆积在MQ , 如何解决 ?RabbitMQ的高可用机制有了解过嘛?Kafka是如何保证消息不丢失?Kafka中消息的重复消费问题如何解决的?Kafka是如何保证消费的顺序性?Kafka的高可用机制有了解过嘛?Kafka数据清理机制了解过嘛?Kafka中实现高性能的设计有了解过嘛?解释一下复制机制中的ISR?RabbitMQ延迟队列有了解过嘛?原创 2023-07-12 20:28:33 · 249 阅读 · 0 评论 -
常见面试题之JVM实践(调优)
JVM调优的参数可以在哪里设置参数值?用的JVM调优的参数都有哪些?说一下JVM调优的工具?java内存泄露的排查思路?CPU飙高排查方案与思路?jps输出JVM中运行的进程状态信息。jstack查看java进程内线程的堆栈信息。jmap用于生成堆转存快照。jstat用于JVM统计监测工具。还有一些可视化工具,像jconsole和VisualVM等。原创 2023-07-11 21:09:39 · 1513 阅读 · 1 评论 -
常见面试题之垃圾收回
简述Java垃圾回收机制?(GC是什么?为什么要GC?)对象什么时候可以被垃圾器回收?JVM垃圾回收算法有哪些?强引用、软引用、弱引用、虚引用的区别?你能详细聊一下分代回收吗?讲一下新生代、老年代、永久代的区别?说一下JVM有哪些垃圾回收器?Minor GC、Major GC、Full GC是什么?原创 2023-07-09 22:04:33 · 2035 阅读 · 0 评论 -
常见面试题之类加载器
什么是类加载器,类加载器有哪些?什么是双亲委派模型?JVM为什么采用双亲委派机制?说一下类装载的执行过程?类从加载到虚拟机中开始,直到卸载为止,它的整个生命周期包括了:加载、验证、准备、解析、初始化、使用和卸载这7个阶段。其中,验证、准备和解析这三个部分统称为连接(linking)。第一个是启动类加载器(BootStrap ClassLoader)第二个是扩展类加载器(ExtClassLoader)第三个是应用类加载器(AppClassLoader)第四个是自定义类加载器原创 2023-07-07 20:55:59 · 680 阅读 · 0 评论 -
常见面试题之JVM组成
JVM由那些部分组成,运行流程是什么?你能详细说一下JVM运行时数据区吗?你再详细介绍一下程序计数器的作用?你能给我详细的介绍Java堆吗?能不能解释一下方法区?你听过直接内存吗?什么是虚拟机栈?能说一下堆栈的区别是什么吗?原创 2023-07-06 21:34:27 · 465 阅读 · 0 评论 -
常见面试题之线程池总结
聊一下并行和并发有什么区别?说一下线程和进程的区别? 如果在java中创建线程有哪些方式?刚才你说的线程中的wait和sleep方法有什么不同呢?讲一下synchronized关键字的底层原理?那关于synchronized的锁升级的情况了解吗?synchronized和Lock有什么区别 ?线程池的种类有哪些?线程池的核心参数有哪些?那你知道ThreadLocal的底层原理实现吗?那关于ThreadLocal会导致内存溢出这个事情,了解吗?原创 2023-07-04 21:51:59 · 538 阅读 · 0 评论 -
常见面试题之ThreadLocal的理解
ThreadLocal是多线程中对于解决线程安全的一个操作类,它会为每个线程都分配一个独立的线程副本从而解决了变量并发访问冲突的问题。ThreadLocal同时实现了线程内的资源共享。Java对象中的四种引用类型:强引用、软引用、弱引用、虚引用。原创 2023-07-02 21:27:43 · 477 阅读 · 0 评论 -
常见面试题之线程池
说一下线程池的核心参数(线程池的执行原理知道嘛)?线程池中有哪些常见的阻塞队列?如何确定核心线程数?线程池的种类有哪些?为什么不建议用Executors创建线程池?线程池使用场景CountDownLatch、Future(你们项目哪里用到了多线程)?如何控制某个方法允许并发访问线程的数量?原创 2023-07-02 20:31:24 · 941 阅读 · 1 评论 -
常见面试题之线程中并发锁(二)
什么是AQS?ReentrantLock的实现原理?synchronized和Lock有什么区别 ?死锁产生的条件是什么?如何进行死锁诊断?导致并发程序出现问题的根本原因是什么?Java并发编程三大特性:原子性、可见性、有序性。原创 2023-07-01 14:46:04 · 183 阅读 · 0 评论 -
常见面试题之线程中并发锁(一)
讲一下synchronized关键字的底层原理?你谈谈JMM(Java内存模型)?CAS你知道吗?请谈谈你对volatile的理解?Monitor实现的锁属于重量级锁,你了解过锁升级吗?CAS的全称是: Compare And Swap(比较再交换),它体现的一种乐观锁的思想,在无锁情况下保证线程操作共享数据的原子性。原创 2023-07-01 14:00:21 · 227 阅读 · 0 评论 -
常见面试题之线程基础知识
线程和进程的区别?并行和并发有什么区别?创建线程的四种方式?线程的run()和start()有什么区别?线程包括哪些状态,状态之间是如何变化的?notify()和notifyAll()有什么区别?在java中wait和sleep方法的不同?如何停止一个正在运行的线程?原创 2023-06-24 10:37:54 · 450 阅读 · 0 评论 -
常见面试题之MySQL篇
MySQL中,如何定位慢查询?了解过索引吗?索引的底层数据结构了解过嘛 ?MYSQL超大分页怎么处理 ?什么情况下索引会失效 ?事务的特性是什么?可以详细说一下吗?你们项目用过MySQL的分库分表吗?MySQL支持哪些存储引擎?SQL约束有哪几种?MySQL中的varchar和char有什么区别?MySQL中in和exists区别?drop、delete与truncate的区别?原创 2023-06-23 14:40:17 · 444 阅读 · 0 评论 -
常见面试题之框架篇
Spring框架中的单例bean是线程安全的吗?什么是AOP?你们项目中有没有使用到AOP?Spring中的事务是如何实现的?Spring中事务失效的场景有哪些?Spring的bean的生命周期?Spring中的循环引用?Spring循环引用具体解决流程清楚吗?构造方法出现了循环依赖怎么解决?SpringMVC的执行流程知道嘛?Springboot自动配置原理?Spring的常见注解有哪些?SpringMVC常见的注解有哪些?Springboot常见注解有哪些?MyBatis执行流程?原创 2023-06-22 20:28:50 · 656 阅读 · 1 评论 -
常见面试题之Redis篇
Redis与Memcache的区别?Redis采用单线程,如何保证高并发?Redis的持久化方案由哪些?Redis的集群方式有哪些?Redis的常用数据类型有哪些?聊一下Redis事务机制?Redis的Key过期策略?Redis在项目中的哪些地方有用到?Redis的缓存击穿、缓存雪崩、缓存穿透?缓存冷热数据分离?Redis实现分布式锁?如何实现数据库与缓存数据一致?原创 2023-04-10 20:27:39 · 744 阅读 · 0 评论 -
常见面试题之MQ篇
你们为什么选择了RabbitMQ而不是其它的MQ?RabbitMQ如何确保消息的不丢失?RabbitMQ如何避免消息堆积?RabbitMQ如何保证消息的有序性?如何防止MQ消息被重复消费?如何保证RabbitMQ的高可用?使用MQ可以解决那些问题?原创 2023-04-09 10:43:37 · 715 阅读 · 0 评论 -
常见面试题之微服务
SpringCloud常见组件有哪些?Nacos的服务注册表结构是怎样的?Nacos如何支撑阿里内部数十万服务注册压力?Nacos如何避免并发读写冲突问题?Nacos与Eureka的区别有哪些?Sentinel的限流与Gateway的限流有什么差别?Sentinel的线程隔离与Hystix的线程隔离有什么差别?原创 2023-04-08 18:46:48 · 361 阅读 · 0 评论