300多道Java面试题,让面试官无言以对

以下是java面试题目,答案一个个整理出来很麻烦,所以直接答案可以查看这里即可:

http://www.yayihouse.com/yayishuwu/book/64

1、如何停止一个正在运行的线程?
2、说说 @Configuration 和 @Component 的区别
3、MySQL 中的 distinct 和 group by 哪个效率更高?
4、ThreadLocal 搭配线程池时为什么会造成内存泄漏?
5、为啥索引可以让查询变快?
6、Java 是如何实现线程间通信的?
7、HashMap 为什么不能一边遍历一遍删除
8、Java有线程安全的set吗?
9、用户在浏览器输入 URL 回车后,会发生什么?
10、MySQL 日期时间类型怎么选?
11、说说布隆过滤器与布谷鸟过滤器?应用场景?
12、Spring IOC 为什么能降低耦合?
13、Java 内存泄漏了,怎么排查?
14、为什么说MySQL单表行数不要超过2000w ?
15、Redis的keys命令到底有多慢?
16、公司规定所有接口都用 post 请求,这是为什么?
17、Java Switch 是如何支持 String 的,为什么不支持 long
18、多线程事务怎么回滚?
19、说一下Nginx静态压缩和代码压缩
20、为什么数据库连接池不采用 IO 多路复用?
21、千万量级数据中查询 10W 量级的数据有什么方案?
22、MySQL为什么选择B+树作为索引结构
23、为什么 wait/notify 必须与 synchronized 一起使用?
24、为什么要用多线程?公司项目中用到了哪些场景?
25、说说 Cookie、Session、Token、JWT?
26、项目中如何解决跨域问题(HttpClient、注解、网关)
27、Docker 有几种网络模式?很多5 年工作经验都答不上来。。
28、什么是负载均衡?常见的负载均衡策略有哪些?
29、MySQL自增主键为什么不是连续的?
30、Spring 中获取 Bean 的方式有哪些?
31、说一下你对 OAuth2 协议原理的理解?
32、面试题:说一下MyBatis动态代理原理?
33、什么是自旋锁?自旋的好处和后果是什么呢?
34、说说什么是本地缓存、分布式缓存以及多级缓存,它们各自的优缺点?
35、你工作中做过 JVM 调优吗?怎么做的?
36、为什么大家都说 Java 反射慢,它到底慢在哪?
37、为什么生产环境中,建议禁用 Redis 的 keys 命令?
38、Java 对象不使用时,为什么要赋值 null ?
39、数据库日期类型字段,需要兼容不同数据库,应该如何选择?
40、你怎么理解System.out.println() ?
41、MyBatis批量插入的五种方式,哪种最强?
42、Spring 用到了哪些设计模式?
43、你知道 Java 中的回调机制吗?
44、说一下公司常用MySQL分库分表方案
45、在 Java 中 new 一个对象的流程是怎样的?彻底被问懵了。。
46、Spring @bean 和 @component 注解有什么区别?
47、有一个 List 对象集合,如何优雅地返回给前端?
48、面试题:接口幂等性是什么?如何设计?
49、说说你了解的分布式 ID 生成方案
50、说一下线程、线程锁与线程池 !
51、说一下海量请求下的接口并发解决方案
52、百万数据的导入导出解决方案,怎么设计?
53、为什么HashMap 使用的时候指定容量?
54、线上MySQL的自增id用尽怎么办?
55、线程池执行的用户任务抛出异常会怎样?
56、Java 类加载过程是怎么样的?
57、你说说 Mysql 索引失效有哪些场景?
58、MySQL 上亿大表如何优化?
59、为什么不建议在 MySQL 中使用 UTF-8 ?
60、业务开发时,接口不能对外暴露怎么办?
61、说一下SSO 单点登录和 OAuth2.0 的区别
62、线程池中多余的线程是如何回收的?
63、ReadWriteLock读写之间互斥吗?
64、select…for update会锁表还是锁行?
65、MySQL分表后,如何做分页查询?
66、电商库存扣减如何设计?如何防止超卖?
67、说一下加密后的数据如何进行模糊查询?
68、说一下Redis中有哪些阻塞点以及如何解决?
69、谈谈过滤器和拦截器的区别?
70、Java反射和new效率对比,差距有多大?
71、当你的JVM 堆内存溢出后,其他线程是否可继续工作?
72、将 Bean 放入 Spring 容器中的方式有哪些 ?
73、什么是微服务 ?
74、线程池中线程抛了异常,该如何处理?
75、说一下TCP和UDP协议的原理和区别?
76、Hash 碰撞是什么?如何解决?
77、说说Java线程的状态及转换
78、JDK1.8 创建线程池有哪几种方式?
79、MySQL 中 InnoDB 的索引结构以及使用 B+ 树实现索引的原因
80、 美团外卖的分库分表怎么设计?
81、线程池执行过程中遇到异常会发生什么,怎样处理?
82、如何正确的停掉线程?
83、Java 序列化和反序列化为什么要实现 Serializable 接口?
84、单核 CPU 支持 Java 多线程吗?为什么?被问懵了!
85、Kafka 为什么会丢消息?
86、熟悉设计模式吗?谈谈简单工厂模式和策略模式的区别
87、线程池灵魂8连问,你挡的住吗?
88、说一下SpringBoot的自动配置原理
89、Java8 lambda 表达式 forEach 如何提前终止?
90、思考Tomcat 类加载器为什么要违背双亲委派模型?
91、集群高并发环境下如何保证分布式唯一全局ID生成?
92、你了解 QPS、TPS、RT、吞吐量 这些高并发性能指标吗?
93、说说Java并发运行中的一些安全问题
94、ElasticSearch是什么?应用场景是什么?
95、RocketMQ 如何保证消息不丢失,如何保证消息不被重复消费?
96、说说 WebSocket 和 Socket 及 Http 的区别?
97、HTTPS 是如何保证传输安全的?
98、谈谈为什么要限流,有哪些限流方案?
99、jwt 是什么?java-jwt 呢?
100、有了 for 循环 为什么还要 forEach ?
101、sql性能优化的21个小技巧分享
102、Redis如何做内存优化?
103、Redis分布式锁有什么缺陷?
104、Redis怎么实现分布式锁?
105、Redis,什么是缓存穿透?怎么解决?
106、怎么保证缓存和数据库数据的一致性?
107、什么是缓存穿透?怎么解决?
108、jedis 和 redisson 有哪些区别?
109、Redis支持的 java 客户端都有哪些?
110、Redis和 memecache 有什么区别?
111、Redis持久化有几种方式?
112、Redis真的是单线程的吗?
113、Redis为什么是单线程的?
114、Redis取值存值问题
115、Redis支持的数据类型有哪些?
116、Redis有哪些功能?
117、Redis都有哪些使用场景?
118、Redis是什么?
119、简述分代垃圾回收器是怎么工作的?
120、详细介绍一下 CMS 垃圾回收器?
121、新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么区别?
122、JVM栈堆概念,何时销毁对象
123、说一下 jvm 有哪些垃圾回收器?
124、说一下 jvm 有哪些垃圾回收算法?
125、怎么判断对象是否可以被回收?
126、什么是双亲委派模型?
127、JVM的类加载机制是什么?
128、说一下类加载的执行过程?
129、什么是类加载器,类加载器有哪些?
130、说一下 jvm 运行时数据区?
131、说一下 jvm 的主要组成部分?及其作用?
132、RabbitMQ中 vhost 的作用是什么?
133、RabbitMQ有哪些重要的角色?有哪些重要的组件?
134、RabbitMQ的使用场景有哪些?
135、mysql 的内连接、左连接、右连接有什么区别?
136、数据库索引怎么定义,分哪几种
137、数据库一般会采取什么样的优化方法?
138、如何查询重复的数据
139、性别是否适合做索引
140、如何设计数据库
141、数据库如何保证主键唯一性
142、Oracle分页sql
143、float 和 double 的区别是什么?
144、char 和 varchar 的区别是什么?
145、说一下 ACID 是什么?
146、如何获取当前数据库版本?
147、一张自增表里面总共有 7 条数据,删除了最后 2 条数据,重启 mysql 数据库,又插入了一条数据,此时 id 是几?
148、数据库的三范式是什么?
149、什么是 Swagger?你用 Spring Boot 实现了它吗?
150、easyExcel如何实现
151、查询网站在线人数
152、Spring Boot如何访问不同的数据库
153、打包和部署
154、Spring Boot比Spring多哪些注解
155、单点登录
156、如何使用 Spring Boot 实现异常处理?
157、如何使用 Spring Boot 实现分页和排序?
158、什么是 YAML?
159、Spring Boot 中的监视器是什么?
160、什么是 Spring Boot?Spring Boot 有哪些优点?
161、在 hibernate 中使用 Integer 和 int 做映射有什么区别?
162、hibernate 实体类可以被定义为 final 吗?
163、hibernate 有几种查询方式?
164、hibernate 中如何在控制台查看打印的 sql 语句?
165、mybatis如何防止sql注入
166、mybatis一级缓存、二级缓存
167、myBatis查询多个id、myBatis常用属性
168、mybatis 和 hibernate 的区别有哪些?
169、mybatis 有哪些执行器(Executor)?
170、说一下 mybatis 的一级缓存和二级缓存?
171、mybatis 是否支持延迟加载?延迟加载的原理是什么?
172、mybatis 中 #{}和 ${}的区别是什么?
173、请举例说明如何在 Spring 中注入一个 Java Collection?
174、Spring中都应用了哪些设计模式
175、如何防止表单重复提交
176、谈谈controller,接口调用的路径问题
177、项目中是如何实现权限验证的,权限验证需要几张表
178、Spring常用注解
179、请举例解释@Required 注解?
180、spring mvc 和 struts 的区别是什么?
181、什么是 Spring Batch?
182、如何开启基于注解的自动装配?
183、请解释 Spring Bean 的自动装配?
184、Spring 框架中的单例 Beans 是线程安全的么?
185、什么是 Spring inner beans?
186、如何在 Spring Boot 中禁用 Actuator 端点安全性?
187、Spring Bean 的作用域之间有什么区别?Spring容器中的bean可以分为5个范围:
188、请解释 Spring Bean 的生命周期?
189、Spring 有几种配置方式?
190、什么是 ORM 框架?
191、什么是 JavaConfig?
192、BeanFactory 和 ApplicationContext 有什么区别?
193、什么是控制反转(IOC)?什么是依赖注入?
194、Spring IOC、AOP举例说明
195、使用 Spring 框架能带来哪些好处?
196、什么是 Spring 框架?Spring 框架有哪些主要模块?
197、举一个用 Java 实现的装饰模式(decorator design pattern)?它是作用于对象层次还是类层次?
198、请解释自动装配模式的区别?
199、使用工厂模式最主要的好处是什么?在哪里使用?
200、在 Java 中,什么叫观察者设计模式(observer design pattern)?
201、Java 中什么叫单例设计模式?请用 Java 写出线程安全的单例模式
202、什么是设计模式?你是否在你的代码里面使用过任何设计模式?
203、请列举出在 JDK 中几个常用的设计模式?
204、说一下 tcp 粘包是怎么产生的?
205、websocket应用的是哪个协议
206、如何实现跨域?说一下 JSONP 实现原理?
207、什么是 CSRF 攻击,如何避免?
208、什么是 XSS 攻击,如何避免?
209、get 和 post 请求有哪些区别?
210、OSI 的七层模型都有哪些?
211、tcp 为什么要三次握手,两次不行吗?为什么?
212、简述 tcp 和 udp的区别?
213、http 响应码 301 和 302 代表的是什么?有什么区别?
214、说一下 session 的工作原理?
215、cookie、session、token
216、什么是上下文切换?
217、如果客户端禁止 cookie 能实现 session 还能用吗?
218、session 和 cookie 有什么区别?
219、说一下 jsp 的 4 种作用域?
220、forward 和 redirect 的区别?
221、jsp 有哪些内置对象?作用分别是什么?
222、jsp 和 servlet 有什么区别?
223、Java Concurrency API 中的 Lock 接口(Lock interface)是什么?对比同步它有什么优势?
224、synchronized 和 ReentrantLock 区别是什么?
225、多线程中 synchronized 锁升级的原理是什么?
226、什么是自旋
227、为什么代码会重排序?
228、很多人都说要慎用 ThreadLocal,谈谈你的理解,使用 ThreadLocal 需要注意些什么?
229、请谈谈 ThreadLocal 是怎么解决并发安全的?
230、ThreadLocal 是什么?有哪些使用场景?
231、既然 volatile 能够保证线程间的变量可见性,是不是就意味着基于 volatile 变量的运算就是并发安全的?
232、volatile 关键字的作用
233、线程池中的线程是怎么创建的?是一开始就随着线程池的启动创建好的吗?
234、创建线程池的几个核心构造参数
235、Java 中的线程池是如何实现的
236、你了解过哪些同步器?请分别介绍下。
237、如何让 Java 的线程彼此同步?
238、AQS 对资源的共享方式?
239、那么请谈谈 AQS 框架是怎么回事儿?
240、跟 Synchronized 相比,可重入锁 ReentrantLock 其实现原理有什么不同?
241、什么是锁消除和锁粗化?
242、ReentrantLock 是如何实现可重入性的?
243、请尽可能详尽地对比下 Synchronized 和 ReentrantLock 的异同。
244、乐观锁一定就是好的吗?
245、为什么说 Synchronized 是一个悲观锁?乐观锁的实现原理又是什么?什么是 CAS,它有什么特性?
246、请谈谈 volatile 有什么特点,为什么它能保证变量对所有线程的可见性?
247、为什么说 Synchronized 是非公平锁?
248、Thread 类中的 yield 方法有什么作用?
249、Java 如何实现多线程之间的通讯和协作?
250、为什么 wait(), notify()和 notifyAll()必须在同步方法或者同步块中被调用?
251、JVM 对 Java 的原生锁做了哪些优化?
252、Synchronized 用过吗,其原理是什么?
253、为什么我们调用 start() 方法时会执行 run() 方法,为什么我们不能直接调用 run() 方法?
254、线程的run()和start()有什么区别?
255、请谈谈 ReadWriteLock 和 StampedLock
256、HashMap和HashSet的区别
257、concurrentHashMap和HashTable有什么区别
258、ConcurrentHashMap(JDK1.8)为什么要使用synchronized而不是如ReentranLock这样的可重入锁?
259、Java8开始ConcurrentHashMap,为什么舍弃分段锁?
260、队列和栈是什么?有什么区别?
261、java怎么确保一个集合不能被修改?
262、Iterator 和 ListIterator 有什么区别?
263、Iterator 怎么使用?有什么特点?
264、迭代器 Iterator 是什么?
265、哪些集合类是线程安全的
266、在 Queue 中 poll()和 remove()有什么区别?
267、如何实现数组和 List 之间的转换?
268、ArrayList 和 LinkedList 的区别是什么?
269、说一下 HashSet 的实现原理?
270、set有哪些实现类?
271、说一下 HashMap 的实现原理?
272、HashMap 和 Hashtable 有什么区别?
273、list与Set区别
274、Collection 和 Collections 有什么区别?
275、Java 容器都有哪些?
276、byte类型127+1等于多少
277、java实例化对象有哪几种方式
278、举例说明什么情况下会更倾向于使用抽象类而不是接口?
279、在 Java 中,什么时候用重载,什么时候用重写?
280、什么是 Java 的内存模型?
281、Java Bean 属性命名规范问题分析
282、说说Java Bean的命名规范
283、在 Java 中,为什么不允许从静态方法中访问非静态变量?
284、java 中都有哪些引用类型?
285、java 中操作字符串都有哪些类?它们之间有什么区别?
286、hashcode是什么?有什么作用?
287、常见的异常类有哪些?
288、try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗?
289、final、finally、finalize 有什么区别?
290、throw 和 throws 的区别?
291、为什么要使用克隆?如何实现对象克隆?深拷贝和浅拷贝区别是什么?
292、什么是 java 序列化?什么情况下需要序列化?
293、什么是反射?
294、Files的常用方法都有哪些?
295、BIO、NIO、AIO 有什么区别?
296、java 中 IO 流分为几种?
297、java接口和抽象类有什么区别?
298、java普通类和抽象类有哪些区别?
299、如何将字符串反转?
300、new String("a") + new String("b") 会创建几个对象?
301、String 类的常用方法都有那些?
302、java如何将字符串反转?
303、String str="i"与 String str=new String(“i”)一样吗?
304、String 属于基本的数据类型吗?
305、java 中的 Math.round(-1.5) 等于多少?
306、final 在 java 中有什么作用?
307、== 和 equals 的区别是什么?
308、JDK 和 JRE 有什么区别?
309、Integer f1 = 100, f2 = 100, f3 = 150, f4 = 150;System.out.println(f1 == f2);System.out.println(f3 ==
310、jvm如何判断对象是否应该回收?
311、总共200个球,两个人分别拿,至少拿一个,最多拿5个,如果你先拿,怎么保证你能拿到第200个球?
312、对数据库三大范式的理解,简单易懂
313、解决懒汉单例模式的双重检查锁线程安全问题
314、请写出多线程安全单例模式
315、spring的aop增强处理类型
316、说明mybatis的#{}和${}的区别并写出你常用的MyBatis.xml标签
317、spring给properties属性注入空字符串、注入null值
318、Spring提供哪几种注入方式?如何注入键值对?
319、简述java线程的生命周期
320、最有效的方法算出2乘以8等于几?
321、Servlet生命周期简述-java经典面试题
322、slf4j日志级别有哪几种?
323、spring的bean初始化过程
324、spring的bean初始化前、中、后想做一些事情,怎么办?
325、HashMap和ConcurrentHashMap区别
326、java接口与类的区别
327、运行bat文件启动java的jar且不弹出DOS窗口,后台运行java的jar包
328、java连接sqlserver的驱动包
329、-2 >>> 1结果是多少
330、-2 >> 1结果是多少
331、java多线程如何实现执行顺序
332、Java中volatile可以修饰数组吗
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值