通过Java面试前需要做足各方面的准备工作,肯定都会浏览大量的面试题,小偏整理了Java 面试题汇总及答案2020最新,谢谢您的认真阅读。
Java基础
面向对象的特征:继承、封装和多态
int 和 Integer 有什么区别;
Integer的值缓存范围
说说反射的用途及实现
Http 请求的 GET 和 POST 方式的区别
MVC设计思想
什么是Java序列化和反序列化;
如何实现Java序列化;
重载和重写的区别
进程和线程
线程和进程的概念
并行和并发的概念
创建线程的方式及实现
进程间通信的方式
说说 CountDownLatch、CyclicBarrier 原理和区别
说说 Semaphore 原理
说说 Exchanger 原理
ThreadLocal 原理分析;
ThreadLocal为什么会出现OOM,出现的深层次原理
讲讲线程池的实现原理
线程池的几种实现方式
线程的生命周期;状态是如何转移的
锁机制
什么是线程安全?如何保证线程安全?
重入锁的概念;重入锁为什么可以防止死锁?
产生死锁的四个条件
如何检查死锁
volatile 实现原理
synchronized 实现原理(对象监视器)
synchronized 与 lock 的区别
AQS 同步队列
CAS 无锁的概念;乐观锁和悲观锁
常见的原子操作类
什么是 ABA 问题;出现 ABA 问题 JDK 是如何解决的
乐观锁的业务场景及实现方式
Java 8 并发包下常见的并发类
偏向锁、轻量级锁、重量级锁、自旋锁的概念
数据库
DDL、DML、DCL 分别指什么
explain 命令
脏读、幻读、不可重复读
事务的隔离级别
数据库的几大范式
说说分库与分表设计
分库与分表带来的分布式困境与对应之策
说说 SQL 优化之道
InnoDB 与 MyISAM 区别、优缺点、使用场景
B+树索引、全文索引、哈希索引,的区别
什么是自适应哈希索引(AHI)
为什么要用 B+tree 作为 MySql 索引的数据结构
聚集索引与非聚集索引的区别
limit 20000 加载很慢怎么解决
常见的几种分布式 ID 的设计方案
JVM
JVM 运行时内存区域划分
常见的 GC 回收算法及其含义
常见的 JVM 性能监控和故障处理工具类
JVM 性能调优
类加载器、双亲委派模型
类加载的过程
强引用、软引用、弱引用、虚引用
Java 内存模型 JMM
离职原因是一个很重要的问题,因为它考验的不但是你的工作能力和性格,更考验你的情商和智商。
不讨巧的离职原因包括:工作业绩差,沟通能力差,老板傻逼,看同事不顺眼,和公司有纠纷……
所以,尽量挑一些主观上无法避免的原因,比如:公司的产品质量出了问题,公司面临破产,部门被合并,亲人有重大变故,公司的氛围和你想要的相去甚远(顺便夸夸新东家)。
最重要的一点是,强调现在是你最想要稳定的时期。换句话说,就是前面那些都是浮云!