疫情当下、裁员浪潮,焦虑和不安充斥着这个金九银十。为了能让大家有更好的面试资料去面试大厂的技术岗位,花费了2个多月的时间,把市面上的所有的Java面试题,做了一个归纳
![](https://img-blog.csdnimg.cn/img_convert/61fd06c8c81c227aec2a79bd65daea88.jpeg)
本文档是从阿里面试官整理的Java面试题其包含的内容模块有:基础、JVM、多线程与高并发、Spring、MyBatis、SpringBoot、MYSQL、SpringCloud、Dubbo、Nginx、MQ、数据结构与算法、Linux、Zookeeper、Redis、分布式、网络、设计模式、maven、ElasticSearch、git、软实力集训等!
注:熬夜整理最新《10w+字总结的Java面试题(附答案)》,篇幅原因,以下会列举全部的面试题,答案截图展现部分,但如果你也需要刷题造火箭,需要的小伙伴可以转发+关注+收藏之后, 私信【Java面试题】即可!!
目录:
![](https://img-blog.csdnimg.cn/img_convert/e2d1fed0fa6c6c24c0e3100e3039bc32.jpeg)
Java基础篇
![](https://img-blog.csdnimg.cn/img_convert/cfb562fce7fe0fb4afbb6c25914e65c3.jpeg)
- 1.什么是Java
- 2. Java的特点有哪些
- 3. JDK和JRE和JVM的区别
- 4. Oracle JDK 和 OpenJDK 的对比
- 5. Java有哪些数据类型
- 6. Java中引用数据类型有哪些,它们与基本数据类型有什么区别?
- 7. 从使用方面来说
- 8. Java中的自动装箱与拆箱
- 9. 为什么要有包装类型?
- 10. a=a+b与a+=b有什么区别吗?
![](https://img-blog.csdnimg.cn/img_convert/74d942ed4bdd4ec42e93b031dd2793d4.jpeg)
字符串&集合面试题汇总
- 1. Java 中操作字符串都有哪些类?它们之间有什么区别?
- 2. String、StringBuffer和StringBuilder区别(类似上一题)
- 3、 相同点
- 4. String str="i"与 String str=new String("i")一样吗?
- 5. String 类的常用方法都有那些?
Java并发编程
- 1.多线程有什么用?
- 2.多线程和单线程的区别和联系?
- 3.简述线程、程序、进程的基本概念。以及他们之间关系是什么?
- .4. 线程的创建方式
- 5.线程有哪些基本状态?
- 6.如何停止一个正在运行的线程
- 7. start(方法和run(0方法的区别
- 8.为什么我们调用start0方法时会执行run(方法,为什么我们不能直接调用run0方法?
- 9. Runnable接C和C allable接口的区别
- 10.什么是线程安全?
- 11.线程的状态转换?
- 12.在多线程中,什么是上下文切换(context- switching)?
- 13. Java中堆和栈有什么不同?
- 14.如何确保线程安全?
- 15.什么是竞态条件?你怎样发现和解决竞争?
- 16.用户线程和守护线程有什么区别?
- 17.如何创建守护线程?以及在什么场合来使用它?
- 18.线程安全的级别
- 19.你对线程优先级的理解是什么?
- 20.什么是线程调度器(Thread Scheduler)和时间分(Time Slicing)?
- 21. volatile关键字的作用
- 22. volatile 变和atomic变量有什么不同?
- 23. volatile是什么?可以保证有序性吗?
- 24.什么是Java内存模型
- 25. sleep方法和wait方法有什么区别
- 26.线程的sleep0方法和yield0方法有什么区别?
- 27. Thread.sleep(0)的作用是什么
- . 28.线程类的构造方法、静态块是被哪个线程调用的
- 29.在线程中你怎么处理不可控制异常?
- 30.同步方法和同步块,哪个是更好的选择
- 31.有三个线程T1,T2,T3,如何保证顺序执行? .
- 32.什么是CAS
- 33. CAS? CAS有什么缺陷,如何解决?
- . 34.什么是AQS
- 35.线程池作用
- 36. ThreadLocal是什么
- 37. ThreadLocal有什么用
- 38. ThreadLocal原理,使用注意点,应用场景有哪些?
- 39. notify0和notifyAll()有什么区别?
- 40.为什么wait(方法和notify0/notifyAlI0方法要在同步块中被调用
- 41. wait(方法和notify()/notifyAll0方法在放弃对象监视器时有什么区别
- 42. wait0方法和notify0/notifyAII0)方法在放弃对象监视器时有什么区别
- 43.线程中断是否能直接调用stop,为什么?
- 44.什么是阻塞(Blocking) 和非阻塞(Non- Blocking) ?
- 45.什么是自旋
- 46.自旋锁的优缺点?