写在前面
想在面试、工作中脱颖而出?想在最短的时间内快速掌握 Java 的核心基础知识点?想要成为一位优秀的 Java 工程师?本篇文章能助你一臂之力!
很多同学对一些新技术名词都能侃侃而谈,但对一些核心原理理解的不够透彻,特别是对 Java的一些核心基础知识点掌握的不够,例如JVM、常用的算法和数据结构等。正所谓万丈高楼平地起,只有把基础掌握的牢固,才能走的更远,面对不断更新的技术才能快速掌握,同时在面试、工作中也更能脱颖而出!
下方面试题我只挑选了几个比较好的,剩余的实在是太多了写不完,都整理成笔记了。另外本人整理收藏了20年多家公司面试知识点整理 【+jcc4261获取】,以及各种Java核心知识点免费分享给大家,下方只是部分截图。所有的面试题目都不是一成不变的,特别是像一线大厂,下面的面试题只是给大家一个借鉴作用,最主要的是给自己增加知识的储备,有备无患。
文档涵盖知识:
面试必问的:Java基础、高并发、多线程、分布式、设计模式、Spring全家桶、Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、MongoDB、Redis、MySQL、RabbitMQ、Kafka、Linux、Netty、Tomcat等等知识点详细讲解及面试押题。
而且!
它还有各种思维导图来帮助大家学习、理解!
下面我就来介绍一下这份 “Java 核心面试知识点” 到底涵盖了多少知识点!
JVM
一、线程
二、JVM 内存区域
- 程序计数器(线程私有)
- 虚拟机栈(线程私有)
- 本地方法区(线程私有)
- 堆(Heap-线程共享)-运行时数据区
- 方法区/永久代(线程共享)
三、JVM 运行时内存
-
新生代
-
老年代
-
永久代
四、垃圾回收与算法
- 如何确定垃圾
- 标记清除算法(Mark-Sweep)
- 复制算法(copying)
- 标记整理算法(Mark-Compact)
- 分代收集算法
五、JAVA 四中引用类型
- 强引用
- 软引用
- 虚引用
- 弱引用
六、GC 分代收集算法 VS 分区收集算法
- 分代收集算法
- 分区收集算法
七、GC 垃圾收集器
- Serial 垃圾收集器(单线程、复制算法)
- ParNew 垃圾收集器(Serial+多线程)
- Parallel Scavenge 收集器(多线程复制算法、高效)
- Serial Old 收集器(单线程标记整理算法 )
- Parallel Old 收集器(多线程标记整理算法)
- CMS 收集器(多线程标记清除算法)
- G1 收集器
八、JAVA IO/NIO
- 阻塞 IO 模型
- 非阻塞 IO 模型
- 多路复用 IO 模型
- 信号驱动 IO 模型
- 异步 IO 模型
- JAVA IO 包
- JAVA NIO
- Channel
- Buffer
- Selector
九、JVM 类加载机制
-
JVM 类加载机制
-
类加载器
-
双亲委派
-
OSGI(动态模型系统)
Java集合
-
接口继承关系和实现
-
List
-
Set
-
Map
JAVA 多线程并发
- JAVA 并发知识库
- JAVA 线程实现/创建方式
- 4 种线程池
- 线程生命周期(状态)
- 终止线程 4 种方式
- sleep 与 wait 区别
- start 与 run 区别
- JAVA 后台线程
- JAVA 锁
- 线程基本方法
- 线程上下文切换
- 同步锁与死锁
- 线程池原理
- JAVA 阻塞队列原理
- CyclicBarrier、CountDownLatch、Semaphore 的用法
- volatile 关键字的作用(变量可见性、禁止重排序)
- 如何在两个线程之间共享数据
- ThreadLocal 作用(线程本地存储)
- synchronized 和 ReentrantLock 的区别
- ConcurrentHashMap 并发
- Java 中用到的线程调度
- 进程调度算法
- 什么是 CAS(比较并交换-乐观锁机制-锁自旋)
- 什么是 AQS(抽象的队列同步器)
![](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/c71cdb62fe734e14a4046b3b73b25aad~tplv-k3u1fbpfcp-watermark.image?)
复制代码
JAVA 基础
-
JAVA 异常分类及处理
-
JAVA 反射
-
JAVA 注解
-
JAVA 内部类
-
JAVA 泛型
-
JAVA 序列化(创建可复用的 Java 对象)
-
JAVA 复制
Spring 原理
- Spring 特点
- Spring 核心组件
- Spring 常用模块
- Spring 主要包
- Spring 常用注解
- Spring 第三方结合
- Spring IOC 原理
- Spring APO 原理
- Spring MVC 原理
- Spring Boot 原理
- JPA 原理
- Mybatis 缓存
- Tomcat 架构
![](https://p9-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/9e1178baa98e42aba98c4ab45250f03a~tplv-k3u1fbpfcp-watermark.image?)
复制代码
微服务
什么是微服务?
-
服务注册发现
-
API 网关
-
配置中心
-
事件调度(kafka)
-
服务跟踪(starter-sleuth)
-
服务熔断(Hystrix)
-
API 管理
Netty 与 RPC
-
Netty 原理
-
Netty 高性能
-
Netty RPC 实现
-
RMI 实现方式
-
Protoclol Buffer
-
Thrift
Zookeeper
- Zookeeper 概念
- Zookeeper 角色
- Zookeeper 工作原理(原子广播)
- Znode 有四种形式的目录节点
Kafka
-
Kafka 概念
-
Kafka 数据存储设计
-
生产者设计
-
消费者设计
RabbitMQ
-
概念
-
RabbitMQ 架构
-
Exchange 类型