Java 类加载过程?
描述一下 JVM 加载 Class 文件的原理机制?
Java 内存分配。
GC 是什么? 为什么要有 GC?
简述 Java 垃圾回收机制。
如何判断一个对象是否存活?(或者 GC 对象的判定方法)
垃圾回收的优点和原理。并考虑 2 种回收机制。
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
Java 中会存在内存泄漏吗,请简单描述。
深拷贝和浅拷贝。
System.gc() 和 Runtime.gc() 会做什么事情?
finalize() 方法什么时候被调用?析构函数 (finalization) 的目的是什么?
如果对象的引用被置为 null,垃圾收集器是否会立即释放对象占用的内存?
什么是分布式垃圾回收(DGC)?它是如何工作的?
串行(serial)收集器和吞吐量(throughput)收集器的区别是什么?
在 Java 中,对象什么时候可以被垃圾回收?
简述 Java 内存分配与回收策率以及 Minor GC 和 MajorGC。
JVM 的永久代中会发生垃圾回收么?
Java 中垃圾收集的方法有哪些?
类加载器双亲委派模型机制?
数据库专题
请简洁描述 MySQL 中 InnoDB 支持的四种事务隔离级别名称,以及逐级之间的区别?
在 MySQL 中 ENUM 的用法是什么?
CHAR 和 VARCHAR 的区别?
列的字符串类型可以是什么?
MySQL 中使用什么存储引擎?
TIMESTAMP 在 UPDATE CURRENT_TIMESTAMP 数据类型上做什么?
主键和候选键有什么区别?
MySQL 数据库服务器性能分析的方法命令有哪些?
LIKE 和 REGEXP 操作有什么区别?
BLOB 和 TEXT 有什么区别?
数据库的三范式?
MySQL 表中允许有多少个 TRIGGERS?
什么是通用 SQL 函数?
MySQL 中有哪几种锁?
MySQL 数据优化。
MySQL 的关键字。
存储引擎。
数据库备份。
truncate delete drop 的区别。
Redis 是什么?两句话做一下概括。
Redis(管道,哈希)。
Redis 实现原理或机制。
Redis 有两种类型分区。
什么是 MongoDB。
MongoDB 特点。
MongoDB 的功能。
MongoDB 的适用场景。
Redis、memcache、MongoDB 对比。
Redis 有什么用?只有了解了它有哪些特性,我们在用的时候才能扬长避短,为我们所用。
集合框架主题
ArrayList 和 Vector 的区别。
说说 ArrayList,Vector, LinkedList 的存储性能和特性。
快速失败 (fail-fast) 和安全失败 (fail-safe) 的区别是什么?
hashmap 的数据结构。
HashMap 的工作原理是什么?
Hashmap 什么时候进行扩容呢?
List、Map、Set 三个接口,存取元素时,各有什么特点?
Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用 == 还是equals()? 它们有何区别?
两个对象值相同 (x.equals(y) == true),但却可有不同的 hash code,这句话对不对?
heap 和 stack 有什么区别。
Java 集合类框架的基本接口有哪些?
HashSet 和 TreeSet 有什么区别?
HashSet 的底层实现是什么?
LinkedHashMap 的实现原理?
为什么集合类没有实现 Cloneable 和 Serializable 接口?
什么是迭代器 (Iterator)?
Iterator 和 ListIterator 的区别是什么?
数组 (Array) 和列表 (ArrayList) 有什么区别?什么时候应该使用 Array 而不是ArrayList?
Java 集合类框架的最佳实践有哪些?
Set 里的元素是不能重复的,那么用什么方法来区分重复与否呢?是用 == 还是equals()?它们有何区别?
Comparable 和 Comparator 接口是干什么的?列出它们的区别。
Collection 和 Collections 的区别。
多线程 / 高并发专题
stop() 和 suspend() 方法为何不推荐使用?
sleep() 和 wait() 有什么区别?
同步和异步有何异同,在什么情况下分别使用他们?
当一个线程进入一个对象的一个 synchronized 方法后,其它线程是否可进入此对象的其它方法?
简述 synchronized 和 java.util.concurrent.locks.Lock 的异同?
概括的解释下线程的几种可用状态。
什么是 ThreadLocal?
run() 和 start() 区别。
请说出你所知道的线程同步的方法。
线程调度和线程控制。
什么是线程饿死,什么是活锁?
多线程中的忙循环是什么?
volatile 变量是什么?volatile 变量和 atomic 变量有什么不同?
volatile 类型变量提供什么保证?能使得一个非原子操作变成原子操作吗?
最新BAT java经典必考面试题链接:https://pan.baidu.com/s/1B_Lc1tluda0fbdrFnexOMQ
提取码:gw8d