以下是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可以修饰数组吗 |