纵观今年的技术招聘市场, Java 依旧是当仁不让的霸主 !即便遭受 Go 等新兴语言不断冲击,依旧岿然不动。究其原因:
Java 有着极其成熟的生态,这个不用我多说;
Java 在 运维、可观测性、可监 控性方面都有着非常优秀的表现;
Java 也在积极 应对容器化、云原生等大趋势,比如 Spring Boot 就已经全面拥抱云原生。
企业对 Java 的需求最大 ,Java 程序员的群体也最为庞大,有着 1200 万之多 ,彼此之间都有更多的选择。
换句话说,也是最修罗场的!
但是有很多的同学提问“想进大厂光靠背八股文可以嘛”我可以明确的告诉你可以!但是你要有一份涉及到全栈技术的面试笔记,所以当下的金九银十最好跳槽的机会,要想拿下心仪的 Offer ,咱就一定要做好准备,把那些必考点、套路都给吃透了!
因此我整合了数位大佬,汇总一线大厂的情况,整理了一套超全的Java全栈面试笔记:我愿称之为“圣经”接下来我就给大家展示!需要获取完整版的小伙伴点击下方小卡片!
Java全栈面试笔记“圣经”我的Java全栈笔记:
由于文章幅篇的限制小编就用截图的方式给大家展示啦
Java 基础
- Java 概述
- 基础语法
- 面向对象
- 类与接口
- 变量与方法
- 内部类
- 重写与重裁
- 对象相等判断
- 值传递
- Java 包
- IO 流
- 反射
- 常用 API
- 集合容器概述
- Collection 接口
- Map 接口
- HashTable, HashMap , TreeMap 区别?
- HashMap 的数据结构
- HashMap 的扩容因子
- 多线程修改 HashMap
- 讲讲 IO 里面的常见类,字节流、字符流、接口、实现类、方法阻塞
- NIO
- 什么时候使用字节流、什么时候使用字符流递归读取文件夹下的文件,代码怎么实现
- SynchronousQueue 实现原理
- 自定义类加载器
- 面向对象和面向过程的区别
- Java 语言有哪些特点
- 关于 JVM JDK 和 JRE 最详细通俗的解答 Oracle JDK 和 OpenJDK 的对比
- Java 和 C++ 的区别
- 什么是 Java 程序的主类应用程序和小程序的主类有何不同
- Java 应用程序与小程序之间有哪些差别
- 字符型常量和字符串常量的区别
- 构造器 Constructor 是否可被 override 重载和重写的区别
- Java 面向对象编程三大特性:封装继承多态
- ......
Java 基础 - 内容(部分展现):
![634822affac248eeda5cd9e6b924edc9.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0b96c247cfa80902d1dc04b59951336b.jpeg)
![4968c8ff42a1c2623045de6803e8aee4.jpeg](https://i-blog.csdnimg.cn/blog_migrate/3d4b44318e57a8683523ddc06632cad1.jpeg)
![bff7871e69de9b5b3863d47fefcbf481.jpeg](https://i-blog.csdnimg.cn/blog_migrate/da1b6c0532b7845a896b44f5f9181ef2.jpeg)
JVM
- 说一下 JVM 的主要组成部分及其作用?
- 说一下 JVM 运行时数据区
- 深拷贝和浅拷贝
- 说一下堆栈的区别?
- 队列和栈是什么?有什么区别?
- 对象的创建
- 为对象分配内存
- 处理并发安全问题
- 对象的访问定位
- 内存溢出异常 Java 会存在内存泄漏吗?请简单描述
- 内存溢出异常
- JVM 内存模型,GC 机制和原理;
- GC 分哪两种,Minor GC 和 Full GC 有什么区别?什么时候会触发 Full GC ?
- JVM 里的有几种 classloader , 为什么会有多种?
- 什么是双亲委派机制?介绍一些运作过程,双亲委派模型的好处;
- 常见的 JVM 调优方法有哪些?可以具体到调整哪个参数,调成什么值?
- Java 的内存模型以及 GC 算法
- jvm 性能调优都做了什么
- java classload 机制详解
- jvm 如何分配直接内存,new 对象如何不分配在堆而是栈上,常量池解析
- ......
JVM - 内容(部分展现):
![0568d24acfd179962239dbee92d611f0.jpeg](https://i-blog.csdnimg.cn/blog_migrate/b9e4c6777f2cca5a230e6e0d3502a9b6.jpeg)
![96dc5d179ebf43091afcf81247e55176.jpeg](https://i-blog.csdnimg.cn/blog_migrate/161a268822d2e304ba55ca20166da963.jpeg)
![b8967294d379f1912dea10e8e9427d53.jpeg](https://i-blog.csdnimg.cn/blog_migrate/546b77d24f88e7fa24c891e1a2f9df05.jpeg)
多线程
- 简述线程,程序、进程的基本概念。以及他们之间关系是什么线程有哪些基本状态?
- 如何理解内存泄漏问题?有哪些情况会导致内存泄露?如何解决?详解 java 内存泄露和如何避免内存泄漏
- 线程池的原理,为什么要创建线程池?创建线程池的方式;线程的生命周期,什么时候会出现僵死进程;
- 说说线程安全问题,什么是线程安全,如何实现线程安全;创建线程池有哪几个核心参数﹖如何合理配置线程池的大小?
- volatile、ThreadLocal 的使用场晟和原理;
- ThreadLocal 什么时候会出现 OOM 的情况?为什么?synchronized、volatile 区别
- synchronized 锁粒度、模拟死锁场景;Java 并发和并行
- 怎么提高并发量,请列举你所知道的方案?
- 系统的用户量有多少?多用户并发访问时如何解决?
- 说说阻塞队列的实现:可以参考 ArrayBlockingQueue 的底层实现(锁和同步都行)进程通讯的方式:消息队列,共享内存,信号量,socket 通讯等
- 为什么要用线程池
- 线程池的基础概念自带线程池的各种坑
- volatile 关键字的用法:使多线程中的变量可见
- 线程的几种状态
- 常用的线程池模式以及不同线程池的使用场景
- 线程间通信,wait 和 notifywait 和 notify 的理解与使用
- java 线程池主线程等待子线程执行完成进程和线程的区别
- 什么叫线程安全?举例说明并发、同步的接口或方法
- HashMap 是否线程安全,为何不安全。
- volatile 的理解
- 线程
- JAVA 多线程并发
- JAVA 线程实现 / 创建方式 4 种线程池
- 线程生命周期 (状态) 终止线程 4 种方式 leep 与 wait 区别 start 与 run 区别 JAVA 后台线程
- JAVA 锁
- 线程基本方法线程上下文切换同步锁与死锁
- 线程池原理
- JAVA 阻塞队列原理
- ......
多线程 - 内容(部分展现):
![2e2df97972675009d6f155d118a8a417.jpeg](https://i-blog.csdnimg.cn/blog_migrate/c41de714d606ae2cbd3943a6ecbe5a43.jpeg)
![c803e2448ba880e9640ee2405865e046.jpeg](https://i-blog.csdnimg.cn/blog_migrate/67bb7985086e9e5e845baa7742abbe71.jpeg)
![df672db90120b6b001aea13b3886a551.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e713acf00ca0a39bf3fd934f508ffacd.jpeg)
Spring
- Spring 原理
- Spring 特点
- Spring 核心组件
- Spring 常用模块
- Spring 主要包
- Spring 常用注解
- Spring 第三方结合
- Spring IOC 原理
- Spring APO 原理
- Spring MVC 原理
- Spring AOP 的实现原理和场景;
- Spring bean 的作用域和生命周期
- Spring 5 比 Spring4 做了哪些改进;
- springMVC 的原理
- spring 中 beanFactory 和 ApplicationContext 的联系和区别
- spring 注入的几种方式 (循环注入)
- springIOc
- spring AOP 的原理
- spring AOP 两种代理方式
- Spring 如何保证 Controller 并发的安全?
- spring 中用到哪些设计模式?
- Spring IOC 的理解,其初始化过程?
- Spring 的事务管理
- SpringMVC 概述
- Spring 概述
- Spring 控制反转 (IOC)
- Spring 注解
- Spring 数据访问
- Spring 面向切面编程 (AOP)
- 什么是 AOP
- SpringMVC 面试题
- ......
Spring - 部分内容展现:
![a8e0f35a5bfcc73794f898d73f01f5c3.jpeg](https://i-blog.csdnimg.cn/blog_migrate/617804e040dcfb400e0d26222647bb70.jpeg)
![cd9d7b2de04e8f16139d25eb92ebb215.jpeg](https://i-blog.csdnimg.cn/blog_migrate/91d6042ae1862540d574f7ba7baa35cf.jpeg)
![a3af3120b1bb04715fc0bed20af3d839.jpeg](https://i-blog.csdnimg.cn/blog_migrate/564fe27f37fadd3df970f9ca6bc9a11d.jpeg)
Spring Boot
- Spring Boot 概述配置
- 安全
- 监视器
- 整合第三方项目
- 其他
- Spring Boot 原理
- Spring BootSpring 做了哪些改进?
- Spring boot 热加载
- Spring Boot 设置有效时间和自动刷新缓存,hibernate 和 ibatis 的区别...
- 讲讲 mybatis 的连接池。
- 经典面试题解读
Spring Boot 部分内容展现:
![fa7b15b42b8fb0bcf8d26d71e4c7fc5a.jpeg](https://i-blog.csdnimg.cn/blog_migrate/ea62132567f7eabf864324f14b051785.jpeg)
Spring Cloud、分布式
- 分布式事务、分布式锁
- Spring Cloud 熔断机制介绍;
- Spring Cloud 对比下 Dubbo, 什么场景下该使用 Spring Cloud ?
- CAP 原理和 BASE 理论
- Spring Cloud 面试题
- 为什么需要学习 Spring Cloud 什么是 Spring Cloud
- 设计目标与优缺点 Spring Cloud 发展前景整体架构
- 主要项目
- Spring Cloud 的版本关系
- SpringBoot 和 SpringCloud 的区别?
- 并多子月月手口热是什么爱思了 Spring cLtoud sneaa,
- 负载平衡的意义什么?
- 什么是 Hystrix? 它如何实现容错?
- 什么是 Hystrix 断路器?我们需要它吗?
- Spring Cloud 断路器的作用
Spring Cloud、分布式部分内容展现:
![c3820cfe16440ff5d3f44fdf2cc4fc2d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/3676d57b67dbb100954b5542637e76c2.jpeg)
![eebe3eb0e20db62fc09cb2dc86e898ba.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e02ebb800e385bfd767fde2fc3eb66a5.jpeg)
Dubbo
- 基础知识
- 架构设计
- 注册中心
- 集群
- 配置
- 通信协议
- 设计模式
- 运维管理
- SPI
- Dubbo 完整的一次调用链路介绍
- Dubbo 支持几种负载均衡策略?
- Dubbo Provider 服务提供者要控制执行并发请求上限,具体怎么做 Dubbo 启动的时候支持几种配置方式?
- 分布式系统原理
- Dubbo 支持哪些协议,每种协议的应用场景,优缺点?
- Dubbo 超时时间怎样设置?
- Dubbo 有些哪些注册中心?
- Dubbo 集群的负载均衡有哪些策略
- ......
Dubbo 部分内容展现:
![b7b62cdb37a225d4495089f44bed0855.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e306f09cb2aa84c4108fcec195ccf064.jpeg)
![5cc28c6cbc3eb76e0324a072af325cb4.jpeg](https://i-blog.csdnimg.cn/blog_migrate/329e98fd64358e9250229573a33cfe18.jpeg)
Mybatis
![25295f789fe580f61bfcf4de08848c3e.jpeg](https://i-blog.csdnimg.cn/blog_migrate/77cec4adf29b8cfe59f68d846d93fe59.jpeg)
Redis
![60ce8429531c83b9c959f62ae70a08ef.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f9d05ac697dffe2e4b264a22d15c6261.jpeg)
网络
![a95735be6e85f7a30f1b109b50844c1f.jpeg](https://i-blog.csdnimg.cn/blog_migrate/0101bad6209b725182c21ea306e515e7.jpeg)
Linux
![64918a171d236198c710bc691af0f209.jpeg](https://i-blog.csdnimg.cn/blog_migrate/44f4d06c643077de498733f4acce7f49.jpeg)
MQ
![31022ff2117ed1a7734d36a87b1c98c4.jpeg](https://i-blog.csdnimg.cn/blog_migrate/04e1bb4992ed47301a1edac1e4b9ee70.jpeg)
Zookeeper
![675b148b8a096f19a695d875dddb5a46.jpeg](https://i-blog.csdnimg.cn/blog_migrate/fed6fe4ba1b99c160badda9d9f113755.jpeg)
Netty
![8990402a7426eaefbb8188bc6cf1cf1b.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e1714d7faf4eaf2098a125673be8e350.jpeg)
大数据
![2510cd2f0f9f205e053ac232006a5d6d.jpeg](https://i-blog.csdnimg.cn/blog_migrate/8dbe4f93c2e9abd4f958d4b769e7ebcd.jpeg)
![07e4e6192052f55f9a652b7d4c75fb41.jpeg](https://i-blog.csdnimg.cn/blog_migrate/289135f032f2b9919281adc9b12a7c3c.jpeg)
![139dce05516b472e4aeb769feaa409f9.jpeg](https://i-blog.csdnimg.cn/blog_migrate/5831d988240e2336314d5c40a91e69b8.jpeg)
算法 (左程云老师 - 主要讲技巧)
![5df9505ad07a2e778bf5c76778f0a628.jpeg](https://i-blog.csdnimg.cn/blog_migrate/e996d1936c31607d5e7d8fd95e067384.jpeg)
![793b8ac6c89a35141cf95057baed6a12.jpeg](https://i-blog.csdnimg.cn/blog_migrate/9002eea5c1798b9cd78050ee67b79cd4.jpeg)
![bf414ffb94fd77d384d2ec0a5e80bdcd.jpeg](https://i-blog.csdnimg.cn/blog_migrate/f742dd74cf9237c23e994a8fec78b43e.jpeg)
项目方面 (主要讲经验)
大型网约车项目白皮书(附代码)
![7df7a1c4dcb15cabc3a1b923655ce5a5.jpeg](https://i-blog.csdnimg.cn/blog_migrate/2283ec42f002e6bd68ca5e78285dd790.jpeg)
设计模式
![1244f96f78248e413a28b9193e5b21a3.jpeg](https://i-blog.csdnimg.cn/blog_migrate/bb4e1c85b0acb9df0a6c78ad608d9f2e.jpeg)
![a917bba30cc2939d9568b8f31f017f2f.jpeg](https://i-blog.csdnimg.cn/blog_migrate/7362524e3728ecc366695bf8ee252f98.jpeg)