大家好,我是R哥。
不要再找乱七八糟的面试题了,浪费时间不说,还会被误导。
我这几年一直坚持在运营这个小程序:Java面试库,题库中的内容都是我工作这么多年,以及写博客、写公众号、写书这么多年积累的精华,已经不仅仅是面试题了。
小程序刷题首年 199 元,续期 99 元/年,我敢说实际价值远超门票价格 100 倍+,也已经帮助了许多小伙伴进入大厂。
即使如此,但还是有部分小伙伴有顾虑的,没关系,我做了一个 Java 面试小册,内容选自小程序:Java面试库,相当于一个部分精选吧,有兴趣的先订阅学习下。
10 元买断永久学习,限前 500 人:

作者R哥为 10 年+ 程序员、系统架构师、面试官,10 年+写作经验,全网粉丝 50w+,「Spring Boot 核心技术与最佳实践」书籍作者。
本专栏主要分享一线大厂 Java 面试题,主要包括 Java 基础、集合、IO、JVM、多线程等 Java 核心技术面试题,共 100 道。
下面是专栏完整目录:
Java 基础
JDK 与 JRE 的区别是什么?
Java 有哪几种基本数据类型?包装类型呢?
== 和 equals 比较有什么区别?
字符串比较是用 equals 还是 == ?为什么?
public,private,protected,默认的区别?
i++ 和 ++i 的区别?
& 和 && 的区别?
你怎么理解值传递和引用传递?Java 到底是值传递还是引用传递?
static 关键字有什么用?static 变量和普通变量的区别?
final 关键字有哪些用法?
final、finally、finalize 有什么区别?
Java 支持多继承吗?为什么?
重载和重写有什么区别?构造器可以被重写和重载吗?
Java 异常有哪些分类?Error 和 Exception 有什么区别?
throw 和 throws 的区别?
int 和 Integer 有什么区别?
StringBuffer 和 StringBuilder 的区别?
接口和抽象类有什么区别?
0.1 + 0.2 == 0.3 正确么?为什么?
2 * 8 最有效率的计算方法是什么?
String 是可变的吗?能不能被继承?为什么?
String 的底层实现是怎样的?
Java 9 之后,String 底层为什么使用 b...
try 里面 return,finally还会执行吗...
Java 类初始化顺序是怎样的?
Java 反射机制有什么用?
String str = "R"; 创建了几个对象?new String("R") 呢?
Java 有哪几种级别的引用?
可以自定义一个 java.lang.String 吗?
什么是对象克隆?浅拷贝和深拷贝的区别?
equals 和 hashCode 的区别和联系?为什么重写 equals 就要重写 hashCode?
Java 集合
说说常见的集合有哪些?常见的并发集合有哪些?
Comparable 和 Comparator 接口的区别?
HashMap 与 Hashtable 的区别?
HashMap 的数据结构是什么?
HashMap 在 JDK 8 中有哪些改变?
JDK 8 HashMap 为啥要引入红黑树?什么情况会用红黑树?
HashMap 的 put 方法逻辑?
HashMap 的 get 方法逻辑?
HashMap 是线程安全的吗?
HashMap 是怎么解决 hash 冲突的?
ConcurrentHashMap 的数据结构?
ArrayList 是线程安全的么?为什么?
ArrayList 和 LinkedList 的区别?
ArrayList 和 LinkedList 哪个更占空间?
什么是 CopyOnWriteArrayList?
CopyOnWrite* 并发集合有哪些优缺点?应用...
fail-fast 与 fail-safe 有什么区别?
Java IO(流)
Java 有哪几种类型的流?
你怎么理解 IO、BIO、NIO、AIO?
IO 流中的 flush 是指什么?什么时候需要 flush 操作?
IO 流中的 close 和 flush 的区别?
为什么需要 NIO?用 IO 和线程池不行吗?
NIO 有哪三大件组成?它们之间的关系是怎样的?
NIO 是如何实现多路复用的?
怎么反复读取输入流中的内容?
Java 如何高效率读写大文件?
Java 序列化是什么?有哪两种序列化方式?
Java 虚拟机(JVM)
Java 为什么能一次编写,处处运行?
JVM 是什么?常用的 JVM 参数有哪些?
Java 内存模型和 JVM 内存模型的区别?
Java 8 中的内存结构有什么变化?
JVM 哪块内存区域不会发生内存溢出?
JVM 从 GC 角度看,堆的分区情况?
什么情况下会发生栈内存溢出?
什么是类加载器?
什么是双亲委派模型?
Java 内存模型定义了哪几种原子操作?
什么是指令重排序?怎么避免指令重排序?
GC 是什么?为什么需要 GC?
JVM 如何判断一个对象可被回收?
常用的垃圾收集器有哪些?
常用的垃圾回收算法有哪些?
什么是内存泄漏?如何防止内存泄漏?
一个线程 OOM 后,其他线程还能运行吗?
常用的 JVM 调优命令有哪些?
JVM 对频繁调用的方法做了哪些优化?
Java 多线程
进程和线程的区别?
为什么要使用多线程?
创建线程有哪几种方式?
什么是守护线程?
线程的状态有哪几种?怎么流转的?
join 方法有什么用?什么原理?
start 和 run 方法有什么区别?
sleep 和 wait 方法有什么区别?
你怎么理解 wait、notify、notifyAll?有什么要注意的吗?
什么是死锁?怎么避免死锁?
SimpleDateFormat 是线程安全的吗?为什么?以及怎么解决?
什么是 CAS?
Java 中原子操作的类有哪些?
什么是重入锁?你怎么理解重入?
什么是锁升级?锁升级的过程是怎样的?
什么是线程池?有哪些核心参数?
线程池的工作流程是怎样的?
Java 里面有哪些内置的线程池?
ThreadLocal 有什么用?底层实现是?
volatile 关键字有什么用?有哪些应用场景?
CountDownLatch 与 CyclicBarrier 的区别?
什么是 Happens-Before 原则?有哪些原则?
为什么不推荐使用 stop 停止线程?如何优雅地终止一个线程?
这些题目你会几道?
虽然都是我写的,但过久也也都会忘,所以大家有必要买一个备用还是有必要的。
目前内测特惠价 10 元,永久买断,永久学习,学会任何一点都能值回票价,满 500 人订阅价格会调整至 19.9 元。

有面试需要的建议人手一份,10 块钱买不了吃亏上当。
订阅后,加我微信并备注:100,并发送订阅截图,可免费领取 10 套程序员精美简历模板。
点击阅读原文链接快速订阅