java八股文 2025

发布:2026-10-18 栏目:编程开发 浏览下载:/

加入收藏 错误报告

  ├─DDD

  │ DDD的分层架构是怎么样的?.md

  │ 什么是充血模型和贫血模型?.md

  │ 什么是实体,什么是值对象?.md

  │ 什么是聚合,什么是聚合根?.md

  │ 什么是领域事件?.md

  │ 如何理解领域驱动设计?.md

  │ 请详细描述DDD的实现流程?.md

  │

  ├─Dubbo

  │ Dubbo如何实现像本地方法一样调用远程方法的?.md

  │ Dubbo支持哪些序列化方式?.md

  │ Dubbo支持哪些服务治理?.md

  │ Dubbo支持哪些调用协议?.md

  │ Dubbo支持哪些负载均衡策略?.md

  │ Dubbo服务发现与路由的概念有什么不同?.md

  │ Dubbo的SPI和JDK的SPI有什么区别?.md

  │ Dubbo的整体架构是怎么样的?.md

  │ Dubbo的服务调用的过程是什么样的?.md

  │ Dubbo的缓存机制了解吗?.md

  │ 为什么Dubbo不用JDK的SPI?.md

  │ 为什么RPC要比HTTP更快一些?.md

  │ 什么场景只能用HTTP,不能用RPC?.md

  │ 什么是Dubbo的优雅停机,怎么实现的?.md

  │ 什么是RPC,和HTTP有什么区别?.md

  │ 什么是泛化调用?.md

  │ 有用过Dubbo的异步调用吗?.md

  │

  ├─ElasticSearch

  │ ES不支持decimal,如何避免丢失精度?.md

  │ ES支持乐观锁吗?如何实现的?.md

  │ ES支持哪些数据类型,和MySQL之间的映射关系是怎么样的?.md

  │ ElasticSearch为什么快?.md

  │ Elasticsearch支持事务吗?为什么?.md

  │ 为什么要使用ElasticSearch?和传统关系数据库(如MySQL)有什么不同?.md

  │ 什么是ElasticSearch的深度分页问题?如何解决?.md

  │ 倒排索引是什么?.md

  │ 如何优化ElasticSearch搜索性能?.md

  │ 如何保证ES和数据库的数据一致性?.md

  │

  ├─IDEA

  │ IDEA如何做远程Debug?.md

  │ 你平常用哪些idea插件?.md

  │ 如何对多线程进行Debug_.md

  │

  ├─JVM

  │ FullGC多久一次算正常?.md

  │ G1和CMS有什么区别?.md

  │ JDK1.8和1.9中类加载器有哪些不同.md

  │ JDK11中新出的ZGC有什么特点?.md

  │ JVM中一次完整的GC流程是怎样的?.md

  │ JVM为什么要把堆和栈区分出来呢?.md

  │ JVM如何保证给对象分配内存过程的线程安全?.md

  │ JVM如何判断对象是否存活?.md

  │ JVM是如何创建对象的?.md

  │ JVM有哪些垃圾回收算法?.md

  │ JVM的运行时内存区域是怎样的?.md

  │ Java8和Java11的GC有什么区别?.md

  │ Java一定就是平台无关的吗?.md

  │ Java中的对象一定在堆上分配内存吗?.md

  │ Java中的类什么时候会被加载?.md

  │ Java中类加载的过程是怎么样的?.md

  │ Java发生了OOM一定会导致JVM退出吗?.md

  │ Java是如何实现的平台无关?.md

  │ Java是编译型还是解释型_.md

  │ Java的堆是如何分代的?为什么分代?.md

  │ OutOfMemory和StackOverflow的区别是什么.md

  │ YoungGC和FullGC的触发条件是什么?.md

  │ 一个Java进程占用的内存都哪些部分?.md

  │ 一个对象的结构是什么样的?.md

  │ 为什么G1从JDK9之后成为默认的垃圾回收器?.md

  │ 为什么初始标记和重新标记需要STW,而并发标记不需要?.md

  │ 什么情况会导致JVM退出?.md

  │ 什么是AOT编译?和JIT有啥区别?.md

  │ 什么是Class常量池,和运行时常量池关系是什么?.md

  │ 什么是STW?有什么影响?.md

  │ 什么是StopTheWorld?.md

  │ 什么是safepoint,有啥用?.md

  │ 什么是三色标记算法?.md

  │ 什么是双亲委派?如何破坏?.md

  │ 什么是堆外内存?如何使用堆外内存?.md

  │ 什么是强引用、软引用、弱引用和虚引用?.md

  │ 什么是方法区?是如何实现的?.md

  │ 什么是编译和反编译?.md

  │ 什么是跨代引用,有什么问题?.md

  │ 什么是逃逸分析?.md

  │ 介绍下CMS的垃圾回收过程.md

  │ 内存泄漏和内存溢出的区别是什么?.md

  │ 哪些语言有GC机制.md

  │ 如何判断JVM中类和其他类是不是同一个类?.md

  │ 字符串常量池是如何实现的?.md

  │ 对JDK进程执行kill-9有什么影响?.md

  │ 常见的JVM工具有哪些.md

  │ 新生代和老年代的GC算法.md

  │ 新生代和老年代的垃圾回收器有何区别?.md

  │ 新生代如果只有一个Eden+一个Survivor可以吗?.md

  │ 有哪些常用的JVM启动参数?.md

  │ 破坏双亲委派之后,能重写String类吗?.md

  │ 简单介绍一下JIT优化技术?.md

  │ 类的生命周期是怎么样的?.md

  │ 虚拟机中的堆一定是线程共享的吗?.md

  │ 说一说JVM的并发回收和并行回收.md

  │ 运行时常量池和字符串常量池的关系是什么?.md

  │ 项目中如何选择垃圾回收器?为啥选择这个?.md

  │

  ├─Java基础

  │ Arrays.sort是使用什么排序算法实现的?.md

  │ BigDecimal(double)和BigDecimal(String)有什么区别?.md

  │ BigDecimal和Long表示金额哪个更合适,怎么选择?.md

  │ ClassNotFoundException和NoClassDefFoundError的区别是什么?.md

  │ JDK9中对字符串的拼接做了什么优化?.md

  │ JDK新版本中都有哪些新特性?.md

  │ Java中Timer实现定时调度的原理是什么?.md

  │ Java中创建对象有哪些种方式.md

  │ Java中异常分哪两类,有什么区别?.md

  │ Java中有了基本类型为什么还需要包装类?.md

  │ Java中的static都能用来修饰什么?.md

  │ Java中的枚举有什么特点和好处.md

  │ Java和C++主要区别有哪些?各有哪些优缺点?.md

  │ Java序列化的原理是啥.md

  │ Java是值传递还是引用传递?.md

  │ Java注解的作用是啥.md

  │ Java的动态代理如何实现?.md

  │ Lambda表达式是如何实现的?.md

  │ RPC接口返回中,使用基本类型还是包装类?.md

  │ SimpleDateFormat是线程安全的吗?使用时应该注意什么?.md

  │ Stream的并行流一定比串行流更快吗?.md

  │ Stringa=_ab_;Stringb=_a_+_b_;a==b吗?.md

  │ Stringstr=newString(_hollis_)创建了几个对象?.md

  │ String、StringBuilder和StringBuffer的区别?.md

  │ String中intern的原理是什么?.md

  │ String为什么设计成不可变的?.md

  │ String是如何实现不可变的?.md

  │ String有长度限制吗?是多少?.md

  │ char能存储中文吗?.md

  │ finally中代码一定会执行吗?.md

  │ final、finally、finalize有什么区别.md

  │ serialVersionUID有何用途_如果没定义会有什么问题?.md

  │ try中returnA,catch中returnB,finally中returnC,最终返回值是什么?.md

  │ while(true)和for(;;)哪个性能好?.md

  │ 为什么JDK9中把String的char[]改成了byte[]?.md

  │ 为什么Java不支持多继承?.md

  │ 为什么Java中的main方法必须是publicstaticvoid的?.md

  │ 为什么不建议使用异常控制业务流程.md

  │ 为什么不能用BigDecimal的equals方法做等值比较?.md

  │ 为什么不能用浮点数表示金额?.md

  │ 为什么对Java中的负数取绝对值结果不一定是正数?.md

  │ 为什么建议多用组合少用继承?.md

  │ 为什么建议自定义一个无参构造函数.md

  │ 为什么这段代码在JDK不同版本中结果不同.md

  │ 什么是AIO、BIO和NIO?.md

  │ 什么是SPI,和API有啥区别.md

  │ 什么是UUID,能保证唯一吗?.md

  │ 什么是反射机制?为什么反射慢?.md

  │ 什么是序列化与反序列化.md

  │ 什么是泛型?有什么好处?.md

  │ 什么是深拷贝和浅拷贝?.md

  │ 什么是类型擦除?.md

  │ 以下关于异常处理的代码有哪些问题.md

  │ 你知道fastjson的反序列化漏洞吗.md

  │ 如何理解Java中的多态?.md

  │ 如何理解面向对象和面向过程?.md

  │ 字符串常量是什么时候进入到字符串常量池的?.md

  │ 常见的字符编码有哪些?有什么区别?.md

  │ 怎么修改一个类中的private修饰的String参数的值.md

  │ 接口和抽象类的区别,如何选择?.md

  │ 有了equals为啥需要hashCode方法?.md

  │ 泛型中KTVE?Object等分别代表什么含义。.md

  │ 泛型中上下界限定符extends和super有什么区别?.md

  │ 现在JDK的最新版本是什么?.md

  │ 说几个常见的语法糖?.md

  │

  ├─Java并发

  │ AQS为什么采用双向链表?.md

  │ AQS是如何实现线程的等待和唤醒的?.md

  │ AQS的同步队列和条件队列原理?.md

  │ CAS一定有自旋吗?.md

  │ CAS在操作系统层面是如何保证原子性的?.md

  │ CompletableFuture的底层是如何实现的?.md

  │ CountDownLatch、CyclicBarrier、Semaphore区别?.md

  │ ForkJoinPool和ThreadPoolExecutor区别是什么?.md

  │ JDK21中的虚拟线程是怎么回事?.md

  │ Java是如何判断一个线程是否存活的?.md

  │ Java线程出现异常,进程为啥不会退出?.md

  │ LongAdder和AtomicLong的区别?.md

  │ Thread.sleep(0)的作用是什么?.md

  │ ThreadLocal为什么会导致内存泄漏?如何解决的?.md

  │ ThreadLocal的应用场景有哪些?.md

  │ happens-before和as-if-serial有啥区别和联系?.md

  │ inta=1是原子性操作吗.md

  │ run_start、wait_sleep、notify_notifyAll区别_.md

  │ sychronized是非公平锁吗,那么是如何体现的?.md

  │ synchronized升级过程中有几次自旋?.md

  │ synchronized和reentrantLock区别?.md

  │ synchronized是如何保证原子性、可见性、有序性的?.md

  │ synchronized是怎么实现的?.md

  │ synchronized的锁优化是怎样的?.md

  │ synchronized的锁升级过程是怎样的?.md

  │ synchronized的锁能降级吗?.md

  │ synchronized锁的是什么?.md

  │ volatile是如何保证可见性和有序性的?.md

  │ volatile能保证原子性吗?为什么?.md

  │ 三个线程分别顺序打印0-100.md

  │ 为什么JDK15要废弃偏向锁?.md

  │ 为什么不建议通过Executors构建线程池.md

  │ 为什么不能在try-catch中捕获子线程的异常_.md

  │ 为什么虚拟线程不能用synchronized?.md

  │ 为什么虚拟线程不要和线程池一起用?.md

  │ 为什么虚拟线程尽量避免使用ThreadLocal.md

  │ 什么是AQS的独占模式和共享模式?.md

  │ 什么是CAS?存在什么问题?.md

  │ 什么是Java内存模型(JMM)?.md

  │ 什么是ThreadLocal,如何实现的?.md

  │ 什么是Unsafe?.md

  │ 什么是happens-before原则?.md

  │ 什么是可重入锁,怎么实现可重入锁?.md

  │ 什么是多线程中的上下文切换?.md

  │ 什么是守护线程,和普通线程有什么区别?.md

  │ 什么是并发,什么是并行?.md

  │ 什么是总线嗅探和总线风暴,和JMM有什么关系?.md

  │ 什么是死锁,如何解决?.md

  │ 什么是线程池,如何实现的?.md

  │ 公平锁和非公平锁的区别?.md

  │ 创建线程有几种方式?.md

  │ 到底啥是内存屏障?到底怎么加的?.md

  │ 如何保证多线程下i++结果正确?.md

  │ 如何实现主线程捕获子线程异常.md

  │ 如何对多线程进行编排.md

  │ 如何理解AQS?.md

  │ 如何让Java的线程池顺序执行任务?.md

  │ 并发编程中的原子性和数据库ACID的原子性一样吗?.md

  │ 有三个线程T1,T2,T3如何保证顺序执行?.md

  │ 有了CAS为啥还需要volatile?.md

  │ 有了InheritableThreadLocal为啥还需要TransmittableThreadLocal?.md

  │ 有了MESI为啥还需要JMM?.md

  │ 有了synchronized为什么还需要volatile_.md

  │ 有哪些实现线程安全的方案_.md

  │ 父子线程之间怎么共享_传递数据?.md

  │ 线程同步的方式有哪些?.md

  │ 线程数设定成多少更合适?.md

  │ 线程是如何被调度的?.md

  │ 线程有几种状态,状态之间的流转是怎样的?.md

  │ 线程池的拒绝策略有哪些?.md

  │ 能不能谈谈你对线程安全的理解?.md

  │

  ├─Kafka

  │ Kafka、ActiveMQ、RabbitMQ和RocketMQ都有哪些区别?.md

  │ Kafka为什么有Topic还要用Partition_.md

  │ Kafka为什么这么快?.md

  │ Kafka几种选举过程简单介绍一下?.md

  │ Kafka如何保证消息不丢失?.md

  │ Kafka如何实现顺序消费?.md

  │ Kafka怎么保证消费只消费一次的_.md

  │ Kafka消息的发送过程简单介绍一下?.md

  │ Kafka的架构是怎么样的?.md

  │ Kafka高水位了解过吗?为什么Kafka需要LeaderEpoch?.md

  │ 为什么Kafka没办法100%保证消息不丢失?.md

  │ 为什么要使用消息队列?.md

  │ 什么是Kafka的重平衡机制?.md

  │ 介绍一下Kafka的ISR机制?.md

  │

  ├─Maven&Git

  │ Git和SVN有什么区别?.md

  │ Git如何回滚代码?reset和revert什么区别?.md

  │ Git的merge和rebase有什么区别?.md

  │ Maven如何解决jar包冲突的问题?.md

  │ Maven能解决什么问题?为什么要用?.md

  │ jar包和war包有什么区别?.md

  │ 什么是fatjar?.md

  │

  ├─MyBatis

  │ #和$的区别是什么?什么情况必须用$.md

  │ MyBatis-Plus有什么用?.md

  │ MyBatis-Plus的分页原理是什么?.md

  │ MyBatis与Hibernate有何不同?.md

  │ Mybatis可以实现动态SQL么?.md

  │ Mybatis插件的运行原理?.md

  │ Mybatis是否支持延迟加载?实现原理是什么?.md

  │ Mybatis是如何实现字段映射的?.md

  │ Mybatis用的什么连接池?.md

  │ Mybatis的优点有哪些?.md

  │ Mybatis的工作原理?.md

  │ Mybatis的缓存机制.md

  │ PageHelper分页的原理是什么?.md

  │ RowBounds分页的原理是什么?.md

  │ 什么是ORM,有哪些常用框架?.md

  │ 使用MyBatis如何实现分页?.md

  │

  ├─MySQL

  │ A,B,C的联合索引,按照AB,AC,BC查询,能走索引吗?.md

  │ InnoDB中的索引类型?.md

  │ InnoDB中的表级锁、页级锁、行级锁?.md

  │ InnoDB为什么使用B+树实现索引?.md

  │ InnoDB和MyISAM有什么区别?.md

  │ InnoDB如何解决脏读、不可重复读和幻读的?.md

  │ InnoDB支持哪几种行格式?.md

  │ InnoDB的一次更新事务是怎么实现的?.md

  │ Innodb加索引,这个时候会锁表吗?.md

  │ Innodb的RR到底有没有解决幻读?.md

  │ MyISAM的索引结构是怎么样的,它存在的问题是什么?.md

  │ MySQL5.x和8.0有什么区别?.md

  │ MySQL中like的模糊查询如何优化.md

  │ MySQL中如何查看一个SQL的执行耗时.md

  │ MySQL中的事务隔离级别?.md

  │ MySQL为什么会有存储碎片?有什么危害?.md

  │ MySQL为什么是小表驱动大表,为什么能提高查询性能?.md

  │ MySQL主从复制的过程.md

  │ MySQL只操作同一条记录,也会发生死锁吗?.md

  │ MySQL怎么做热点数据高效更新?.md

  │ MySQL执行大事务会存在什么问题?.md

  │ MySQL是AP的还是CP的系统?.md

  │ MySQL是如何保证唯一性索引的唯一性的?.md

  │ MySQL用了函数一定会索引失效吗?.md

  │ MySQL的BLOB和TEXT有什么区别_.md

  │ MySQL的HashJoin是什么?.md

  │ MySQL的binlog有几种格式.md

  │ MySQL的limit+orderby为什么会数据重复?.md

  │ MySQL的select_会用到事务吗?.md

  │ MySQL的主键一定是自增的吗?.md

  │ MySQL的优化器的索引成本是怎么算出来的?.md

  │ MySQL的并行复制原理.md

  │ MySQL的数据存储一定是基于硬盘的吗?.md

  │ MySQL的深度分页如何优化.md

  │ MySQL的行级锁锁的到底是什么?.md

  │ MySQL的驱动表是什么?MySQL怎么选的?.md

  │ MySQL索引一定遵循最左前缀匹配吗?.md

  │ MySQL自增主键用完了会怎么样?.md

  │ MySQL获取主键id的瓶颈在哪里?如何优化?.md

  │ SQL中PK、UK、CK、FK、DF是什么意思?.md

  │ SQL执行计划分析的时候,要关注哪些信息?.md

  │ SQL语句如何实现insertOrUpdate的功能?.md

  │ Usingfilesort能优化吗,怎么优化?.md

  │ a,b两个单独索引,wherea=xxandb=xx走哪个索引?为什么?.md

  │ binlog、redolog和undolog区别?.md

  │ bufferpool的读写过程是怎么样的?.md

  │ char和varchar的区别?.md

  │ count(1)、count(_)与count(列名)的区别.md

  │ limit0,100和limit10000000,100一样吗?.md

  │ on和where有什么区别?.md

  │ orderby是怎么实现的?.md

  │ truncate、delete、drop的区别?.md

  │ undolog会一直存在吗?什么时候删除?.md

  │ uuid和自增id做主键哪个好,为什么?.md

  │ where条件的顺序影响使用索引吗?.md

  │ 一个查询语句的执行顺序是怎么样的?.md

  │ 为什么MySQL8.0要取消查询缓存?.md

  │ 为什么MySQL会选错索引,如何解决?.md

  │ 为什么MySQL默认使用RR隔离级别?.md

  │ 为什么不建议使用存储过程?.md

  │ 为什么不推荐使用外键?.md

  │ 为什么大厂不建议使用多表join?.md

  │ 为什么默认RR,大厂要改成RC?.md

  │ 乐观锁与悲观锁如何实现?.md

  │ 二级索引在索引覆盖时如何使用MVCC?.md

  │ 什么情况会导致自增主键不连续?.md

  │ 什么时候索引失效反而提升效率?.md

  │ 什么是InnoDB的页分裂和页合并.md

  │ 什么是MySQL的字典锁?.md

  │ 什么是OnlineDDL.md

  │ 什么是ReadView,什么样的ReadView可见?.md

  │ 什么是bufferpool?.md

  │ 什么是事务的2阶段提交?.md

  │ 什么是回表,怎么减少回表的次数?.md

  │ 什么是意向锁?.md

  │ 什么是排他锁和共享锁?.md

  │ 什么是数据库事务?.md

  │ 什么是数据库的主从延迟,如何解决?.md

  │ 什么是数据库的锁升级,Innodb支持吗?.md

  │ 什么是数据库范式,为什么要反范式?.md

  │ 什么是最左前缀匹配?为什么要遵守?.md

  │ 什么是索引合并,原理是什么?.md

  │ 什么是索引覆盖、索引下推?.md

  │ 什么是索引跳跃扫描.md

  │ 什么是聚簇索引和非聚簇索引?.md

  │ 什么是脏读、幻读、不可重复读?.md

  │ 介绍一下InnoDB的数据页,和B+树的关系是什么?.md

  │ 介绍下InnoDB的锁机制?.md

  │ 介绍下MySQL5.7中的组提交.md

  │ 从innodb的索引结构分析,为什么索引的key长度不能太长_.md

  │ 区分度不高的字段建索引一定没用吗?.md

  │ 唯一索引和主键索引的区别?.md

  │ 如何优化一个大规模的数据库系统?.md

  │ 如何理解MVCC?.md

  │ 如何进行SQL调优?.md

  │ 当前读和快照读有什么区别?.md

  │ 怎么比较两个索引的好坏?.md

  │ 慢SQL的问题如何排查?.md

  │ 执行计划中,key有值,还是很慢怎么办?.md

  │ 数据库乐观锁的过程中,完全没有加任何锁吗?.md

  │ 数据库加密后怎么做模糊查询?.md

  │ 数据库怎么做加密和解密?.md

  │ 数据库扫表任务如何避免出现死循环.md

  │ 数据库死锁如何解决?.md

  │ 是否支持emoji表情存储,如果不支持,如何操作?.md

  │ 有了关系型数据库,为什么还需要NOSQL?.md

  │ 用了索引还是很慢,可能是什么原因?.md

  │ 索引失效的问题如何排查?.md

  │ 联合索引是越多越好吗?.md

  │ 设计索引的时候有哪些原则?.md

  │ 说一说MySQL一条SQL语句的执行过程?.md

  │ 阿里的数据库能抗秒杀的原理.md

  │ 高并发情况下自增主键会不会重复,为什么?.md

  ……

  ……

上一篇:说透大厂 Java 项目场景面试题

下一篇:很抱歉没有了

返回顶部

拨打电话
在线咨询
扫码添加客服微信咨询问题

24H服务电话: 15610047637