利用空余时间整理了一份《Java核心知识手册》,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。
前段时间,朋友圈分享了这份这份面试手册的初稿,在几位同学的提议下,对手册进行了一定的优化。于是有了现在的新版本的面试手册。
废话不多说,本手册目前为最新版,内容有以下板块:
- 基础篇
- JVM篇
- 多线程&&并发篇
- Spring篇
- MyBatis篇
- SpringBoot篇
- MySQL篇
- Redis篇
- SpringCloud篇
- Nginx篇
- MQ篇
- 数据结构与算法篇
- Linux篇
- 简历篇
JVM篇
1.知识点汇总
JVM是Java运行基础面试时一定会遇到VM的有关问题,内容相对集中,但对知识深度要求较高.
多线程&并发篇
1. Java中实现多线程有几种方法
继承Thread类;
实现Runnable接口;
实现Callable接通过FutureTask包装器来创建Thread线程;
使用ExecutorService. Callable. Future实现有返回结果的多线程 (也就是使用了ExecutorService来管理前面的三种方式)。
Spring篇
1. Spring的I0C和AOP机制?
斑们是在使用Spring框架的过程中,其实就是为了使用0C,依赖注入。和ADP,酌切面壤程这两.个是5pring的灵魂
主要用到的设计模式有工厂模式和代理模式
10C就是典型的工厂模式,通过sionfactory去注入实例。
AOP就是典型的代理模式的体现
代理模式是常用的ava设计模式,他的特征是代理类与委托类有同样的接口,代理类主要负责为要托类预处理消息,过滤消息,把滑息转发给要托类。以及事后处理消息等。代理类与要托类之间通常会存在关联关系,一个代理类的对象与个要托类的对象关联,代理类的对象本身并不真正实现服务,而是通过调用委托类的对象的相关方法,来提供特定的服务。
MyBatis篇
1.什么是MyBatis
(1) Mybatis是- 一个半ORM (对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动、创建连接、创建statement等繁杂的过程。 程序员直接编写原生态sql,可以严格控制sq|执行性能,灵活度高。
(2) MyBatis 可以使用XML或注解来配置和映射原生信息,将POJO映射成数据库中的记录,避免了几乎所有的JDBC代码和手动设置参数以及获取结果集。
(3)通过xml文件或注解的方式将要执行的各种statement配置起来,并通过java对象和statement中sq|的动态参数进行映射生成最终执行的sq|语句,最后由mybati框架执行sq|并将结果映射为java对象并返回。(从执行sq|到返回result的过程)。
SpringBoot篇
1.为什么要用SpringBoot
MySQL篇
1、数据库的三范式是什么
第-范式:列不可再分
第二范式:行可以唯一-区分,主键约束,
第三范式:表的非主属性不能依赖与其他表的非主属性外键约束
且三大范式是一级- -级依赖的,第二范式建立在第-范式上,第三范式建立第-第二范式上。
大表如何优化?
Redis篇
SpringCloud篇
1.什么是SpringCloud
Spring cloud流应用程序启动器是基于Spring Boot的Spring集成应用程序,提供与外部系统的集成。Spring cloud Task, -个生命周期短暂的微服务框架,用于快速构建执行有限数据处理的应用程序
Nginx篇
1、简述一下什么是Nginx,它有什么优势和功能?
MQ篇
1、为什么使用MQ
核心:解耦,异步,削峰
数据结构与算法篇
Linux篇