2024免费分享最全java面试题
面试题获取方式:关注+点赞+私信Java面试题
Java基础
1、解释下什么是面向对象?面向对象和面向过程的区别?
2、面向对象的三大特性?分别解释下?
3、JDK、JRE、JVM三者之间的关系?
4、重载和重写的区别?5、Java中是否可以重写一个private 或者static方法?
6、构造器是否可以被重写?
7、构造方法有哪些特性?
8、在Java 中定义一个不做事且没有参数的构造方法有什么作用?
9、Java中创建对象的几种方式?
10、抽象类和接口有什么区别?
11、静态变量和实例变量的区别?
10、抽象类和接口有什么区别?
11、静态变量和实例变量的区别?
12、short s1 = 1; s1 =s1 +1;有什么错?那么short s1 = 1; s1 += 1;呢?有没有错误?
13、Integer和int的区别?
14、装箱和拆箱
15、switch语句能否作用在byte 上,能否作用在long 上,能否作用在String 上?
16、Object的常用方法有哪些?
16、final、finally、finalize的区别?
17、==和equals的区别?
18、两个对象的hashCode(相同,则equals()也一定为true吗?
19、为什么重写equals()就一定要重写hashCode()方法?
20、&和&&的区别?21、Java 中的参数传递时传值呢?还是传引用?22、Java 中的
Math.round(-1.5)等于多少?
23、两个二进制数的异或结果是什么?
26、如何实现对象的克隆?
27、深克隆和浅克隆的区别?
28、什么是Java的序列化,如何实现Java的序列化?
29、什么情况下需要序列化?
Java泛型与反射
1、Java的泛型是如何工作的?什么是类型擦除?
2、什么是泛型中的限定通配符和非限定通配符?
3、List<? extends T>和List <? super T>之间有什么区别?
4、Java 中的反射是什么意思?有哪些应用场景?
5、反射的优缺点?
6、Java 中的动态代理是什么?有哪些应用?
7、怎么实现动态代理?
Java字符串
1、字节和字符的区别?2、String为什么要设计为不可变类?
3、String.StringBuilder、
StringBuffer的区别?4、String字符串修改实现的原理?
5、String str = “i"与String str = newString(”")一样吗?
6、String 类的常用方法都有那些?
7、final修饰StringBuffer后还可以append 吗?
Java异常
1、finally 块中的代码什么时候被执行?
2、finally1-1执行到?
3、try-catch-finally 中,如果catch 中return 了,finally还会执行吗?
4、try-catch-finally 中那个部分可以省略?
5、Error和Exception的区别?
6、运行时异常与受检异常有何异同?
7、throw和throws的区别?
8、常见的异常类有哪些?
9、主线程可以捕获到子线程的异常吗?
Java IO
1、Java中的lO流的分类?说出几个你熟悉的实现类?
2、字节流和字符流有什么区别?
3、BIO、NIO、AIO有什么区别?
Java集合
1、Java中常用的容器有哪些?
2、ArrayList和LinkedList的区别?
3、ArrayList 实现
RandomAccess接口有何作用?为何LinkedList 却没实现这个接口?
4、ArrayList的扩容机制?
5、Array和ArrayList有何区别?什么时候更适合用Array?
6、HashMap的实现原理/底层数据结构?JDK1.7和JDK1.8
7、HashMap 的put方法的执行过程?
8、HashMap 的get方法的执行过程?
9、HashMap的resize方法的执行过程?
10、HashMap 的size为什么必须是2的整数次
—
11、HashMap多线程死
循环问题?
12、HashMap 的get方法能否判断某个元素是否在map 中?
13、HashMap 与HashTable的区别是什么?
14、HashMap 与
ConcurrentHashMap的区别是什么?
15、HashTable和
ConcurrentHashMap的区别?
16、ConcurrentHashMap的实现原理是什么?
17、HashSet的实现原理?
18、HashSet怎么保证元素不重复的?
19、LinkedHashMap的实机原理?
20、lterator怎么使用?有什么特点?
21、lterator和Listlterator有什么区别?
22、lterator和Enumeration接口的区别?
23、fail-fast 与fail-safe有什么区别?
24、Collection和Collections有什么区别?
Java并发
1、并行和并发有什么区别?
2、线程和进程的区别?3、守护线程是什么?4、创建线程的几种方式?
5、Runnable和Callable有什么区别?
6、线程状态及转换?
7、sleep()和wait()的区别?
8、线程的run()和start(有什么区别?
9、在Java程序中怎么保证多线程的运行安全?
10、Java线程同步的几种方法?
11、Thread.interrupt(方法的工作原理是什么?
12、谈谈对ThreadLocal的理解?
13、在哪些场景下会使用到ThreadLocal?
14、说一说自己对于synchronized关键字的了解?
16、如何在项目中使用synchronized 的?
17、说说JDK1.6之后的synchronized关键字底层做了哪些优化,可以详细介绍一下这些优化吗?
18、谈谈synchronized和ReenTrantLock的区别?
19、synchronized和volatile的区别是什么?
20、谈一下你对volatile关键字的理解?
21、说下对ReentrantReadWriteLock的理解?
22、说下对悲观锁和乐观锁的理解?
23、乐观锁常见的两种实现方式是什么?
24、乐观锁的缺点有哪些?
25、CAS和synchronized的使用场景?
26、简单说下对Java 中的原子类的理解?
27、atomic的原理是什么?
28、说下对同步器AQS的理解?
29、AQS的原理是什么?30、AQS对资源的共享模式有哪些?
31、AQS底层使用了模板方法模式,你能说出几个需要重写的方法吗?
32、说下对信号量Semaphore的理解?
33、CountDownLatch和CyclicBarrier有什么区别?
34、说下对线程池的理解?为什么要使用线程池?
35、创建线程池的参数有哪些?
36、如何创建线程池?
37、线程池中的的线程数一般怎么设置?需要考虑哪些问题?
38、执行execute()方法和submit()方法的区别是什么呢?
39、说下对Fork/Join并行计算框架的理解?
40、JDK中提供了哪些并发容器?
41、谈谈对CopyOnWriteArrayList的理解?
42、谈谈对BlockingQueue的理解?分别有哪些实现类?
43、谈谈对
ConcurrentSkipListMap的理解?
Java虚拟机
1、说一下Jvm的主要组成部分?及其作用?
2、谈谈对运行时数据区的理解?
3、堆和栈的区别是什么?
4、堆中存什么?栈中存什么?
5、为什么要把堆和栈区分出来呢?栈中不是也可以存储数据吗?
6、Java中的参数传递时传值呢?还是传引用?
7、Java对象的大小是怎么计算的?
8、对象的访问定位的两种方式?
9、判断垃圾可以回收的方法有哪些?
10、垃圾回收是从哪里开始的呢?
11、被标记为垃圾的对象—完A油回收吧?
12、谈谈对Java中引用的了解?
13、谈谈对内存泄漏的理解?
14、内存泄露的根本原因是什么?
15、举几个可能发生内存泄漏的情况?
16、尽量避免内存泄漏的方法?
17、常用的垃圾收集算法有哪些?
18、为什么要采用分代收集算法?
19、分代收集下的年轻代和老年代应该采用什么样的垃圾回收算法?
20、什么是浮动垃圾?
21、什么是内存碎片?如何解决?
22、常用的垃圾收集器有哪些?
23、谈谈你对CMS垃圾收集器的理解?
24、谈谈你对G1收集器的理解?
25、说下你对垃圾回收策略的理解/垃圾回收时机?
26、谈谈你对内存分配的理解?大对象怎么分配?空间分配担保?
27、说下你用过的JVM监控工具?
28、如何利用监控工具调优?
29、JVM的一些参数?
30、谈谈你对类文件结构的理解?有哪些部分组成?
31、谈谈你对类加载机制的了解?
32、类加载各阶段的作用分别是什么?
33、有哪些类加载器?分别有什么作用?
34、类与类加载器的关系?
35、谈谈你对双亲委派模型的理解?工作过程?为什么要使用?
36、怎么实现一个自定义的类加载器?需要注意什么?
37、怎么打破双亲委派模型?
38、有哪些实际场景是需要打破双亲委派模型的?
39、谈谈你对编译期优化和运行期优化的理解?
40、为何HotSpot 虚拟机要使用解释器与编译器并存的架构?
41、说下你对Java 内存模型的理解?
42、内存间的交互操作有哪些?需要满足什么规则?
Spring
1、使用Spring框架的好处是什么?
2、解释下什么是AOP?3、AOP的代理有哪几种方式?
4、怎么实现JDK动态代理?
5、AOP的基本概念:切面、连接点、切入点等?
6、通知类型(Advice)型(Advice)有哪些?
7、谈谈你对IOC的理解?
8、Bean 的生命周期?
9、Bean 的作用域?
10、Spring 中的单例Bean的线程安全问题了解吗?
11、谈谈你对 Spring 中的事物的理解?
12、Spring 中的事务隔离级别?
13、Spring 中的事物传播行为?
14、Spring常用的注入方式有哪些?
15、Spring框架中用到了哪些设计模式?
16、ApplicationContext通常的实现有哪些?
SpringMVC
1、谈谈你对MVC模式的理解?
2、SpringMVC的工作原理/执行流程?
3、SpringMVC的核心组件有哪些?
4、SpringMVC常用的注解有哪些?
5、@RequestMapping的作用是什么?
6、如何解决POST请求中文乱码问题,GET的又如何处理呢?
7、SpringMVC的控制器是不是单例模式,如果是会有什么问题,怎么解决?
8、SpringMVC怎么样设定重定向和转发的?
9、SpringMVC里面拦截器是怎么写的?
10、SpringMVC和Struts2的区别有哪些?
Mybatis
1、谈谈你对MyBatis的理解?
2、MyBaits的优缺点有哪些?
3、MyBatis 与Hibernate有哪些不同?
4、MyBatis中#和$的区别是什么?
5、MyBatis是如何进行分页的?分页插件的原理是什么?
6、MyBatis有几种分页方式?
7、MyBatis逻辑分页和物理分页的区别是什么?
8、MyBatis是否支持延迟加载?如果支持,它的实现原理是什么?
9、说一下MyBatis的一级缓存和二级缓存?
10、Mybatis有哪些执行器(Executor) ?
11、MyBatis动态SQL是做什么的?都有哪些动态
SpringBoot
1、什么是Spring Boot?2、SpringBoot有哪些优点?
3、SpringBoot有哪些缺点?
4、Spring Boot的核心配置文件有哪几个?它们的区别是什么?
5、Spring Boot的配置文件有哪几种格式?它们有什么区别?
6、Spring Boot的核心注解是哪个?它主要由哪几个注解组成的?
7、开启Spring Boot特性有哪几种方式?
8、什么是JavaConfig?
9、SpringBoot自动配置原理是什么?
10、SpringBoot、SpringMVC和Spring有什么区别?
11、SpringBoot启动时都做了什么?
12、SpringBoot 需要独立的容器运行吗?
13、什么是YAML?
14、YAML配置的优势在哪里?
15、SpringBoot是否可以使用XML配置?
16、SpringBoot核心配置文件是什么?
17、bootstrap.properties和application.properties有何区别?
18、什么是SpringProfiles?
19、如何在自定义端口上运行SpringBoot应用程序?
20、如何实现SpringBoot应用程序的安全性?
21、比较一下SpringSecurity 和Shiro各自的优缺点?
22、SpringBoot中如何解决跨域问题?
23、什么是CSRF攻击?
24、SpringBoot 中的监视器是什么
25、如何在SpringBoot中禁用Actuator端点安全性?
25、如何监视所有SpringBoot微服务?27、什么是
WebSockets?
≥8、什么是Spring Data?29、什么是Spring
Batch?
30、什么是FreeMarker模板?
31、如何集成
SpringBoot和ActiveMQ?
32、Swagger用过麽?他用来做什么?
33、前后端分离,如何维护接口文档?
34、SpringBoot项目如何热部署?
35、SpringBoot中的starter到底是什么?
36、spring-boot-starter-parent有什么用?
37、SpringBoot打成的jar和普通的jar有什么区别?
38、如何使用SpringBoot实现异常处理?
4.13如何使用SpringBoot实现分页和排序?
40、微服务中如何实现session共享?
41、SpringBoot 中如何实现定时任务?
42、Spring Boot中的starter到底是什么?
43、微服务中如何实现session共享?
44、Spring Boot 中如何实现定时任务?
计算机网络
1、说一说三次握手2、说一说四次挥手
3、说一说POST与GET有哪些区别
4、面试官:说一说TCP与UDP的区别
5、面试题:说一说HTTP1.0,1.1,2.0的区别
6、什么是SQL注入?举个例子?
7、谈一谈XSS攻击,举个例子?
8、在交互过程中如果数据传送完了,还不想断开连接怎么办,怎么维持?9、GET请求中URL编码的意义
10、HTTP哪些常用的状态码及使用场景?
11、HTTP如何实现长连接?在什么时候会超时?
12、HTTP状态码301和302的区别,都有哪些用途?
13、IP地址有哪些分类?14、简单说下每一层对应的网络协议有哪些?
15、ARP协议的工作原理?
16、TCP的主要特点是什么?
17、UDP的主要特点是什么?
18、TCP和UDP分别对应的常见应用层协议有哪些?
19、为什么、TIME-WAIT状态必须等待2MSL的时间呢?
20、保活计时器的作用?21、TCP协议是如何保证可靠传输的?
22、谈谈你对停止等待协议的理解
23、谈谈你对ARQ协议的理解?
24、谈谈你对滑动窗口的了解?
25、谈下你对流量控制的理解?
26、谈下你对TCP拥塞控制的理解?使用了哪些算法?
27、什么是粘包?
28、TCP黏包是怎么产生的?
29、怎么解决拆包和粘包?
30、forward和redirect的区别?
31、HTTP方法有哪些?
32、在浏览器中输入URL地址到显示主页的过程?
33、DNS的解析过程?
34、谈谈你对域名缓存的了解?
35、谈下你对HTTP长连接和短连接的理解?分别应用于哪些场景?
36、HTTPS的工作过程?
37、HTTP和HTTPS的区别?
38、HTTPS的优缺点?
39、什么是数字签名?
40、什么是数字证书?
操作系统
1、简单说下你对并发和并行的理解?
2、同步、异步、阻塞、非阻塞的概念
3、进程和线程的基本概念
4、进程与线程的区别?
5、为什么有了进程,还要有线程呢?
6、进程的状态转换
7、进程间的通信方式有哪些?
8、进程的调度算法有哪些?
9、什么是死锁?
10、产生死锁的原因?
11、死锁产生的必要条件?
12、解决死锁的基本方法?
13、怎么预防死锁?
14、怎么避免死锁?
15、怎么解除死锁?
16、什么是缓冲区溢出?有什么危害?
17、分页与分段的区别?
18、物理地址、逻辑地址、虚拟内存的概念
19、页面置换算法有哪些?
20、谈谈你对动态链接库和静态链接库的理解?
21、外中断和异常有什么区别?
22、一个程序从开始运行到结束的完整过程,你能说出来多少?
23、介绍一下几种典型的锁?
24、什么是用户态和内核态
25、用户态和内核态是如何切换的?
26、进程终止的方式
27、守护进程、僵尸进程和孤儿进程
28、如何避免僵尸进程?
29、常见内存分配内存错误
30、内存交换中,被换出的进程保存在哪里?
31、原子操作的是如何实现的
32、抖动你知道是什么吗?它也叫颠簸现象
Mysql
1、请说下你对MySQL架构的了解?
2、一条SQL语句在数据库框架中的执行流程?3、数据库的三范式是什么?
4、char和varchar的区别?
5、varchar(10)和varchar(20)的区别?6、谈谈你对索引的理解?
7、索引的底层使用的是什么数据结构?
8、谈谈你对B+树的理解?
9、为什么InnoDB存储引擎选用B+树而不是B树呢?
10、谈谈你对聚簇索引的理解?
11、谈谈你对哈希索引的I甲备况?
12、谈谈你对覆盖索引的认识?
13、索引的分类?
13、谈谈你对最左前缀原则的理解?
14、怎么知道创建的索引有没有被使用到?或者说怎么才可以知道这条语句运行很慢的原因?
16、什么情况下索引会失效?即查询不走索引?16、查询性能的优化方法?
17、InnoDB和 MylSAM的比较?
18、谈谈你对水平切分和垂直切分的理解?
19、主从复制中涉及到哪三个线程?
20、主从同步的延迟原因及解决办法?
21、谈谈你对数据库读写分离的理解?
22、请你描述下事务的特性?
23、谈谈你对事务隔离级别的理解?
24、解释下什么叫脏读、不可重复读和幻读?
25、MySQL默认的隔离级别是什么?
26、谈谈你对MVCC的了解?
27、说一下MySQL的行锁和表锁?
28、InnoDB存储引擎的锁的算法有哪些?
29、MySQL问题排查都有哪些手段?
30、MySQL 数据库CPU飙升到500%的话他怎么处理?
Redis
1、谈下你对Redis的了解?
2、Redis 一般都有哪些使用场景?
3、Redis有哪些常见的功能?
4、Redis支持的数据类型有哪些?
5、Redis为什么这么快?6、什么是缓存穿透?怎么解决?
7、什么是缓存雪崩?该如何解决?
8、怎么保证缓存和数据库数据的一致性?
9、Redis持久化有几种方式?
10、Redis怎么实现分布式锁?
11、Redis 内存淘汰策略有哪些?
12 Rardic堂П性台问师
13、Redis的过期健的删除
策略
14、我们知道通过expire来设置key的过期时间,那么对过期的数据怎么处理呢?
15、Hash 冲突怎么办?16、什么是RDB内存快照?
17、在生成RDB期间,Redis 可以同时处理写请求么?
18、女口问实现麦文活尽可育己少丢失又能兼顾性能呢?
19、Redis如何做内存优化?
.
20、Redis线程模型
21、_ReaIs,试题
22、Redis是单线程的,如何提高多核CPU的利用郊?
23、为什么要做Redis分区?
24、你知道有哪些Redis分区实现方案?
25、Redis分区有什么缺点?
26、如何解决Redis 的并发竞争Key问题
27、分布式Redis是前期做还是后期规模上来了再做好?为什么?
28、Redis相比
Memcached有哪些优势?
29、为什么要用Redis 而不用map/guava做缓存?
30、如何选择合适的持久化方式
31、Redis key的过期时间和永久有效分别怎么设置?
32、双写一致性方案一:先删除缓存,后更新数据库
33、双写一致性方案二:先更新数据库,后删除缓存
34、什么是缓存预热?35、什么是缓存降级?
36、Redis真的是单线程?
37、Redis 6.0为何引入多线程?
38、Redis 6.0多线程的实现机制?
39、Redis 6.0采用多线程后,性能的提升效果如何?
40、Redis 6.0开启多线程后,是否会存在线程并发安全问题?
41、Redis 6.0与
Memcached多线程模型的对比
42、介绍下Redis单副本
43、介绍下Redis多副本(主从)
44、介绍下Redis Sentinel(哨兵)
45、介绍下Redis Cluster46、介绍下Redis自研47、Redis高可用方案具体怎么实施?
48、了解主从复制的原理吗?
49、由于主从延迟导致读取到过期数据怎么处理?50、主从复制的过程中如果因为网络原因停止复制了会怎么样?
51、Redis主从架构数据会丢失吗,为什么?
52、如何解决主从架构数据丢失的问题?
53、Redis哨兵是怎么工作的?
54、故障转移时会从剩下的slave选举一个新的master,被选举为master的标准是什么?
55、同步配置的时候其他哨兵根据什么更新自己的配置呢?
56、为什么Redis哨兵集群只有2个节点无法正常工作?
57、Redis cluster中是如何实现数据分布的?这种方式有什么优点?
58、Redis cluster节点间通信是什么机制?
59、什么是分布式锁?为什么用分布式锁?
60、常见的分布式锁有哪些解决方案?
61、Redis实现分布式锁62、RedLock的原理
消息队列
1、消息队列的基本作用?
2、消息队列的优缺点有哪些?
3、如何保证消息队列的高可用?
4、如何保证消息不被重复消费?或者说,如何保证消息消费的幂等性?
5、如何保证消息的可靠性传输?或者说,如何处理消息丢失的问题
6、如何保证消息的顺序性?
7、大量消息在MQ里长时间积压,该如何解决
8、MQ中的消息过期失效了怎么办?
9、RabbitMQ有哪些重要的角色?
10、RabbitMQ有哪些重要的组件?
11、RabbitMQ有几种广播类型?
12、Kafka 可以脱离zookeeper单独使用吗?为什么?
13、Kafka有几种数据保留的策略?
14、Kafka的分区策略有哪些?
Zookeeper
1、谈下你对Zookeeper的认识?
2、Zookeeper都有哪些功能?
3、谈下你对ZAB协议的了解?
4、Zookeeper怎么保证主从节点的状态同步?5、Zookeeper有几种部署模式?
6、说一下Zookeeper的通知机制?
7、集群中为什么要有主节点?
8、集群中有3台服务器,其中一个节点宕机,
这个时候Zookeeper 还可
以使用吗?
9、说一下两阶段提交和三阶段提交的过程?分别有什么问题?
10、Zookeeper宕机如何处理?
11.说下四种类型的数据节点Znode?
12、Zookeeper和Dubbo的关系?