我的面试宝典:一线互联网大厂Java核心面试题库
以下是我个人的一些做法,希望可以给各位提供一些帮助:
整理了很长一段时间,拿来复习面试刷题非常合适,其中包括了Java基础、异常、集合、并发编程、JVM、Spring全家桶、MyBatis、Redis、数据库、中间件MQ、Dubbo、Linux、Tomcat、ZooKeeper、Netty等等,且还会持续的更新…可star一下!
283页的Java进阶核心pdf文档
Java部分:Java基础,集合,并发,多线程,JVM,设计模式
数据结构算法:Java算法,数据结构
开源框架部分:Spring,MyBatis,MVC,netty,tomcat
分布式部分:架构设计,Redis缓存,Zookeeper,kafka,RabbitMQ,负载均衡等
微服务部分:SpringBoot,SpringCloud,Dubbo,Docker
还有源码相关的阅读学习
-
Java语言有哪些特点
-
面向对象和面向过程的区别
-
什么是数据结构?
-
Java的数据结构有哪些?
-
什么是OOP?
-
类与对象的关系?
-
Java中有几种数据类型
-
ArrayList和linkedList的区别
-
HashMap和HashTable的区别
-
Collection包结构,与Collections的区别
-
泛型常用特点 (待补充)
-
说说List,Set,Map三者的区别
-
Array与ArrayList有什么不一样?
-
Map有什么特点
-
集合内存放于 Java.util 包中, 主要有几 种接口
-
什么是list接口
-
说说ArrayList(数组)
-
Java中异常分为哪两种?
-
异常的处理机制有几种?
-
如何自定义一个异常
-
try catch fifinally,try里有return,finally还执行么?
-
Excption与Error包结构
-
Thow与thorws区别
-
Error与Exception区别?
-
error和exception有什么区别
-
Java 中 IO 流?
-
Java IO与 NIO的区别
-
常用io类有哪些
-
字节流与字符流的区别
-
阻塞 IO 模型
-
非阻塞 IO 模型
-
多路复用 IO 模型
-
信号驱动 IO 模型
-
异步 IO 模型
-
JAVA NIO
-
除了使用new创建对象之外,还可以用什么方法创建对象?
-
Java反射创建对象效率高还是通过new创建对象的效率高?
-
java反射的作用
-
哪里会用到反射机制?
-
反射的实现方式:
-
实现Java反射的类:
-
反射机制的优缺点:
-
Java 反射 API
-
反射使用步骤(获取 Class 对象、调用对象方法)
-
获取 Class 对象有几种方法
-
利用反射动态创建对象实例
-
什么是java序列化,如何实现java序列化?
-
保存(持久化)对象及其状态到内存或者磁盘
-
序列化对象以字节数组保持-静态成员不保存
-
序列化用户远程对象传输
-
Serializable 实现序列化
-
writeObject 和 readObject 自定义序列化策略
-
序列化 ID
-
序列化并不保存静态变量
-
Transient 关键字阻止该变量被序列化到文件中
-
序列化(深 clone 一中实现)
JAVA 并发知识库
-
Java中实现多线程有几种方法
-
继承 Thread 类
-
实现 Runnable 接口。
-
ExecutorService、 Callable、 Future 有返回值线程
-
基于线程池的方式
-
4 种线程池
-
如何停止一个正在运行的线程
-
notify()和notifyAll()有什么区别?
-
sleep()和wait() 有什么区别?
-
volatile 是什么?可以保证有序性吗?
-
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?
-
数据库存储引擎
-
InnoDB(B+树)
-
TokuDB( Fractal Tree-节点带数据)
-
Memory
-
数据库引擎有哪些
-
InnoDB与MyISAM的区别
-
索引
-
常见索引原则有
-
数据库的三范式是什么
-
第一范式(1st NF - 列都是不可再分)
-
什么是 Redis?
-
Redis 与其他 key-value 存储有什么不同?
-
Redis 的数据类型?
-
使用 Redis 有哪些好处?
-
Redis 相比 Memcached 有哪些优势?
-
Memcache 与 Redis 的区别都有哪些?
-
Redis 是单进程单线程的?
-
一个字符串类型的智能存储最大容量是多少?
-
Redis持久化机制
-
缓存雪崩、缓存穿透、缓存预热、缓存更新、缓存降级等问题
-
Memcached 是什么,有什么作用?
-
memcached 服务在企业集群架构中有哪些应用场景?
-
Memcached 服务分布式集群如何实现?
-
Memcached 服务特点及工作原理是什么?
-
简述 Memcached 内存管理机制原理?
-
memcached 是怎么工作的?
-
memcached 最大的优势是什么?
-
memcached 和 MySQL 的 query
-
memcached 和服务器的 local cache(比如 PHP 的 APC、mmap 文件等)相比,有什么优缺点?
-
memcached 的 cache 机制是怎样的?
-
memcached 如何实现冗余机制?
-
mongodb是什么?
-
mongodb有哪些特点?
-
你说的NoSQL数据库是什么意思?NoSQL与RDBMS直接有什么区别?为什么要使用和不使用NoSQL数据库?说一说NoSQL数据库的几个优点?
-
NoSQL数据库有哪些类型?
-
MySQL与MongoDB之间最基本的差别是什么?
-
你怎么比较MongoDB、CouchDB及CouchBase?
-
MongoDB成为最好NoSQL数据库的原因是什么?
-
journal回放在条目(entry)不完整时(比如恰巧有一个中途故障了)会遇到问题吗?
-
分析器在MongoDB中的作用是什么?
-
名字空间(namespace)是什么?
-
不同版本的 Spring Framework 有哪些主要功能?
-
什么是 Spring Framework?
-
列举 Spring Framework 的优点。
-
Spring Framework 有哪些不同的功能?
-
Spring Framework 中有多少个模块,它们分别是什么?
-
什么是 Spring 配置文件?
-
Spring 应用程序有哪些不同组件?
-
使用 Spring 有哪些方式?
-
什么是 Spring IOC 容器?
-
什么是依赖注入?
-
什么是 Spring Boot?
-
为什么要用SpringBoot
-
Spring Boot 有哪些优点?
-
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
-
运行Spring Boot有哪几种方式
-
如何理解 Spring Boot 中的 Starters?
-
如何在Spring Boot启动的时候运行一些特定的代码?
-
Spring Boot 需要独立的容器运行吗?
-
Spring Boot中的监视器是什么?
-
如何使用Spring Boot实现异常处理?
-
什么是 Spring Cloud?
-
使用 Spring Cloud 有什么优势?
-
服务注册和发现是什么意思?Spring Cloud 如何实现?
-
负载平衡的意义什么?
-
什么是 Hystrix?它如何实现容错?
-
什么是 Hystrix 断路器?我们需要它吗?
-
什么是 Netflix Feign?它的优点是什么?
-
什么是 Spring Cloud Bus?我们需要它吗?
-
什么是微服务
-
什么是服务熔断?什么是服务降级
-
什么是 rabbitmq
-
为什么要使用 rabbitmq
-
使用 rabbitmq 的场景
-
如何确保消息正确地发送至 RabbitMQ? 如何确保消息接收方消费了消息?
-
如何避免消息重复投递或重复消费?
-
消息基于什么传输?
-
消息如何分发?
-
消息怎么路由?
-
如何确保消息不丢失?
-
使用 RabbitMQ 有什么好处?
最后:学习总结——MyBtis知识脑图(纯手绘xmind文档)
学完之后,若是想验收效果如何,其实最好的方法就是可自己去总结一下。比如我就会在学习完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!
完一个东西之后自己去手绘一份xmind文件的知识梳理大纲脑图,这样也可方便后续的复习,且都是自己的理解,相信随便瞟几眼就能迅速过完整个知识,脑补回来。下方即为我手绘的MyBtis知识脑图,由于是xmind文件,不好上传,所以小编将其以图片形式导出来传在此处,细节方面不是特别清晰。但可给感兴趣的朋友提供完整的MyBtis知识脑图原件(包括上方的面试解析xmind文档)
[外链图片转存中…(img-v03icxqG-1715709269616)]
除此之外,前文所提及的Alibaba珍藏版mybatis手写文档以及一本小小的MyBatis源码分析文档——《MyBatis源码分析》等等相关的学习笔记文档,也皆可分享给认可的朋友!