恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了

作为一个 Java 程序员,你平时总是陷在业务开发里,每天噼里啪啦忙敲着代码,上到系统开发,下到 Bug 修改,你感觉自己无所不能。然而偶尔的一次聚会,你听说和自己一起出道的同学早已经年薪 50 万,而自己却囊中羞涩。于是你也想看看新机会,找个新平台,好好发展。
但是面试的时候,当那个笑眯眯的面试官问出那些你再熟悉不过的 Java 问题时,你只是感觉似曾相识,却怎么也回答不到点上。比如 HashMap 的工作原理,再或者 volatile 的使用场景。
这个时候,你可能会怀疑自己的能力,也痛恨为什么当初自己没有好好复习。
该新版文档在Github上上传一个星期已经收获30K+star的Java核心面试神技(这参数,质量多高就不用我多说了吧)非常全面,包涵Java基础、Java集合、JavaWeb、Java异常、OOP、IO与NIO、反射、注解、多线程、JVM、MySQL、MongoDB、Spring全家桶、计算机网络、分布式架构、Redis、Linux、git、前端、算法与数据结构、MyBatis、RocketMQ、Netty、Dubbo、Zookeeper、分布式缓存、数据结构等等内容非常丰富,已经帮很多人拿下互联网一线公司的offer。下面我来跟大家一起分享一下。
JavaOOP
什么是B/S架构?什么是C/S架构
Java都有哪些开发平台?
什么是JDK?什么是JRE?
Java语言有哪些特点
面向对象和面向过程的区别
什么是数据结构?
Java的数据结构有哪些?
什么是OOP?
类与对象的关系?
Java中有几种数据类型

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Java集合/泛型
ArrayList和linkedList的区别
HashMap和HashTable的区别
Collection包结构,与Collections的区别
泛型常用特点 (待补充)
说说List,Set,Map三者的区别
Array与ArrayList有什么不一样?
Map有什么特点
集合内存放于 Java.util 包中, 主要有几 种接口
什么是list接口
说说ArrayList(数组)

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
由于文档里的细节内容实在过多所以只编辑了部分知识点的章节粗略的介绍下,每个章节小节点里面都有更细化的内容!以下就是部分章节目录,由于头条的篇幅限制目录上的详细讲解也无法一一列出,文末底下有获取以下章节的所有详细知识讲解。
Java异常
Java中异常分为哪两种?
异常的处理机制有几种?
如何自定义一个异常
try catch fifinally,try里有return,finally还执行么?
Excption与Error包结构
Thow与thorws区别
Error与Exception区别?
error和exception有什么区别

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Java中的IO与NIO
Java 中 IO 流?
Java IO与 NIO的区别
常用io类有哪些
字节流与字符流的区别
阻塞 IO 模型
非阻塞 IO 模型
多路复用 IO 模型
信号驱动 IO 模型
异步 IO 模型
JAVA NIO

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Java反射
除了使用new创建对象之外,还可以用什么方法创建对象?
Java反射创建对象效率高还是通过new创建对象的效率高?
java反射的作用
哪里会用到反射机制?
反射的实现方式:
实现Java反射的类:
反射机制的优缺点:
Java 反射 API
反射使用步骤(获取 Class 对象、调用对象方法)
获取 Class 对象有几种方法
利用反射动态创建对象实例

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Java序列化
什么是java序列化,如何实现java序列化?
保存(持久化)对象及其状态到内存或者磁盘
序列化对象以字节数组保持-静态成员不保存
序列化用户远程对象传输
Serializable 实现序列化
writeObject 和 readObject 自定义序列化策略
序列化 ID
序列化并不保存静态变量
Transient 关键字阻止该变量被序列化到文件中
序列化(深 clone 一中实现)

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
多线程&并发
JAVA 并发知识库
Java中实现多线程有几种方法
继承 Thread 类
实现 Runnable 接口。
ExecutorService、 Callable、 Future 有返回值线程
基于线程池的方式
4 种线程池
如何停止一个正在运行的线程
notify()和notifyAll()有什么区别?
sleep()和wait() 有什么区别?
volatile 是什么?可以保证有序性吗?

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
JVM
java中会存在内存泄漏吗,请简单描述。
64 位 JVM 中,int 的长度是多数?
Serial 与 Parallel GC 之间的不同之处?
32 位和 64 位的 JVM,int 类型变量的长度是多数?
Java 中 WeakReference 与 SoftReference 的区别?
JVM 选项 -XX:+UseCompressedOops 有什么作用?为什么要使用
怎样通过 Java 程序来判断 JVM 是 32 位 还是 64位?
32 位 JVM 和 64 位 JVM 的最大堆内存分别是多数?
JRE、JDK、JVM 及 JIT 之间有什么不同?
解释 Java 堆空间及 GC?

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Mysql
数据库存储引擎
InnoDB(B+树)
TokuDB( Fractal Tree-节点带数据)
Memory
数据库引擎有哪些
InnoDB与MyISAM的区别
索引
常见索引原则有
数据库的三范式是什么
第一范式(1st NF - 列都是不可再分)

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Redis
什么是 Redis?
Redis 与其他 key-value 存储有什么不同?
Redis 的数据类型?
使用 Redis 有哪些好处?
Redis 相比 Memcached 有哪些优势?
Memcache 与 Redis 的区别都有哪些?
Redis 是单进程单线程的?
一个字符串类型的智能存储最大容量是多少?
Redis持久化机制
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Memcached
Memcached 是什么,有什么作用?
memcached 服务在企业集群架构中有哪些应用场景?
Memcached 服务分布式集群如何实现?
Memcached 服务特点及工作原理是什么?
简述 Memcached 内存管理机制原理?
memcached 是怎么工作的?
memcached 最大的优势是什么?
memcached 和 MySQL 的 query
memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
memcached 的 cache 机制是怎样的?
memcached 如何实现冗余机制?

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
MongoDB
mongodb是什么?
mongodb有哪些特点?
你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?
NoSQL数据库有哪些类型?
MySQL与MongoDB之间最基本的差别是什么?
你怎么比较MongoDB、CouchDB及CouchBase?
MongoDB成为最好NoSQL数据库的原因是什么?
journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
分析器在MongoDB中的作用是什么?
名字空间(namespace)是什么?

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Spring
不同版本的 Spring Framework 有哪些主要功能?
什么是 Spring Framework?
列举 Spring Framework 的优点。
Spring Framework 有哪些不同的功能?
Spring Framework 中有多少个模块,它们分别是什么?
什么是 Spring 配置文件?
Spring 应用程序有哪些不同组件?
使用 Spring 有哪些方式?
什么是 Spring IOC 容器?
什么是依赖注入?

恐怖:这份Github神仙面试笔记,简直把所有Java知识面试题写出来了
Spring Boot
什么是 Spring Boot?
为什么要用SpringBoot
Spring Boot 有哪些优点?
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
运行Spring Boot有哪几种方式
如何理解 Spring Boot 中的 Starters?
如何在Spring Boot启动的时候运行一些特定的代码?
Spring Boot 需要独立的容器运行吗?
Spring Boot中的监视器是什么?
如何使用Spring Boot实现异常处理?

需要更多Java知识面试题 点赞+评论知识