前言:一年之计在于秋,金九已经过去了,但银十正在进行,2020已经接近尾声了,作为一个开发人员,你是否面上了自己理想的公司,薪资达到心中理想的高度?
进大厂是大部分程序员的梦想,而进大厂的门槛也是比较高的,所以这里整理了一份阿里、腾讯、字节跳动、头条等大厂面试大全其中概括的知识点有:Java基础,spring,springboot,springcloud,JVM,MyBatis,Redis。
Java基础
Java概述
何为编程
什么是Java
jdk1.5之后的三大版本
JVM、JRE和JDK的关系
什么是跨平台性?原理是什么
Java语言有哪些特点
什么是字节码?采用字节码的最大好处是什么
什么是Java程序的主类?应用程序和小程序的主类有何不同?
Java应用程序与小程序之间有那些差别?
Java和C++的区别
Oracle JDK 和 OpenJDK 的对比
基础语法
数据类型
Java有哪些数据类型
switch 是否能作用在 byte 上,是否能作用在 long 上,是否能作用在 String 上
用最有效率的方法计算 2 乘以 8
Math.round(11.5) 等于多少?Math.round(-11.5)等于多少
float f=3.4;是否正确
short s1 = 1; s1 = s1 + 1;有错吗?short s1 = 1; s1 += 1;有错吗
编码
Java语言采用何种编码方案?有何特点?
注释
什么Java注释
访问修饰符
访问修饰符 public,private,protected,以及不写(默认)时的区别
运算符
&和&&的区别
关键字
Java 有没有 goto
final 有什么用?
final finally finalize区别
this关键字的用法
super关键字的用法
this与super的区别
static存在的主要意义
static的独特之处
static应用场景
static注意事项
流程控制语句
break ,continue ,return 的区别及作用
在 Java 中,如何跳出当前的多重嵌套循环
面向对象
面向对象概述
面向对象和面向过程的区别
JVM
说一下 JVM 的主要组成部分及其作用?
说一下 JVM 运行时数据区
说一下堆栈的区别?
队列和栈是什么?有什么区别?
对象的创建
为对象分配内存
处理并发安全问题
对象的访问定位
句柄访问
直接指针
内存溢出异常
Java会存在内存泄漏吗?请简单描述垃圾收集器
简述Java垃圾回收机制
GC是什么?为什么要GC
垃圾回收的优点和原理。并考虑2种回收机制
垃圾回收器的基本原理是什么?垃圾回收器可以马上回收内存吗?有什么办法主动通知虚拟机进行垃圾回收?
Java 中都有哪些引用类型?
怎么判断对象是否可以被回收?
在Java中,对象什么时候可以被垃圾回收
JVM中的永久代中会发生垃圾回收吗
说一下 JVM 有哪些垃圾回收算法?
标记-清除算法
复制算法
标记-整理算法
分代收集算法
说一下 JVM 有哪些垃圾回收器?
详细介绍一下 CMS 垃圾回收器?
新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么区别?
简述分代垃圾回收器是怎么工作的?
简述java内存分配与回收策率以及Minor GC和Major GC
对象优先在 Eden 区分配
大对象直接进入老年代
长期存活对象将进入老年代
简述java类加载机制?
描述一下JVM加载Class文件的原理机制
什么是类加载器,类加载器有哪些?
说一下类装载的执行过程?
什么是双亲委派模型?
说一下 JVM 调优的工具?
常用的 JVM 调优的参数都有哪些?
Spring
Spring概述(10)
什么是spring?
Spring框架的设计目标,设计理念,和核心是什么
Spring的优缺点是什么?
Spring有哪些应用场景
Spring由哪些模块组成?
Spring 框架中都用到了哪些设计模式?
详细讲解一下核心容器(spring context应用上下文) 模块
Spring框架中有哪些不同类型的事件
Spring 应用程序有哪些不同组件?
使用 Spring 有哪些方式?
Spring控制反转(IOC)(13)
什么是Spring IOC 容器?
控制反转(IoC)有什么作用
IOC的优点是什么?
Spring IoC 的实现机制
Spring 的 IoC支持哪些功能
BeanFactory 和 ApplicationContext有什么区别?
Spring 如何设计容器的,BeanFactory和ApplicationContext的关系详解
ApplicationContext通常的实现是什么?
什么是Spring的依赖注入?
依赖注入的基本原则
依赖注入有什么优势
有哪些不同类型的依赖注入实现方式?
构造器依赖注入和 Setter方法注入的区别
Spring Beans(19)
什么是Spring beans?
一个 Spring Bean 定义 包含什么?
如何给Spring 容器提供配置元数据?Spring有几种配置方式
Spring配置文件包含了哪些信息
Spring基于xml注入bean的几种方式
你怎样定义类的作用域?
解释Spring支持的几种bean的作用域
Spring框架中的单例bean是线程安全的吗?
Spring如何处理线程并发问题?
解释Spring框架中bean的生命周期
哪些是重要的bean生命周期方法?你能重载它们吗?
SpringBoot
什么是 Spring Boot?
Spring Boot 有哪些优点?
Spring Boot 的核心注解是哪个?它主要由哪几个注解组成的?
什么是 JavaConfig?
Spring Boot 自动配置原理是什么?
你如何理解 Spring Boot 配置加载顺序?
什么是 YAML?
YAML 配置的优势在哪里 ?
Spring Boot 是否可以使用 XML 配置 ?
spring boot 核心配置文件是什么?bootstrap.properties 和 application.properties 有何区别 ?
什么是 Spring Profiles?
如何在自定义端口上运行 Spring Boot 应用程序?
如何实现 Spring Boot 应用程序的安全性?
比较一下 Spring Security 和 Shiro 各自的优缺点 ?
Spring Boot 中如何解决跨域问题 ?
什么是 CSRF 攻击?
Spring Boot 中的监视器是什么?
如何在 Spring Boot 中禁用 Actuator 端点安全性?
我们如何监视所有 Spring Boot 微服务?
什么是 WebSockets?
什么是 Spring Data ?
什么是 Spring Batch?
什么是 FreeMarker 模板?
如何集成 Spring Boot 和 ActiveMQ?
什么是 Apache Kafka?
什么是 Swagger?你用 Spring Boot 实现了它吗?
前后端分离,如何维护接口文档 ?
如何重新加载 Spring Boot 上的更改,而无需重新启动服务器?Spring Boot项目如何热部署?
您使用了哪些 starter maven 依赖项?
Spring Boot 中的 starter 到底是什么 ?
spring-boot-starter-parent 有什么用 ?
Spring Boot 打成的 jar 和普通的 jar 有什么区别 ?
运行 Spring Boot 有哪几种方式?
Spring Boot 需要独立的容器运行吗?
开启 Spring Boot 特性有哪几种方式?
如何使用 Spring Boot 实现异常处理?
如何使用 Spring Boot 实现分页和排序?
微服务中如何实现 session 共享 ?
Spring Boot 中如何实现定时任务 ?
Spring Cloud
为什么需要学习Spring Cloud
什么是Spring Cloud
设计目标与优缺点
设计目标
优缺点
Spring Cloud发展前景
整体架构
主要项目
Spring Cloud Config
Spring Cloud Netflix
Spring Cloud Bus
Spring Cloud Consul
Spring Cloud Security
Spring Cloud Sleuth
Spring Cloud Stream
Spring Cloud Task
Spring Cloud Zookeeper
Spring Cloud Gateway
Spring Cloud OpenFeign
Spring Cloud的版本关系
Spring Cloud和SpringBoot版本对应关系
Spring Cloud和各子项目版本对应关系
SpringBoot和SpringCloud的区别?
使用 Spring Boot 开发分布式微服务时,我们面临以下问题
服务注册和发现是什么意思?Spring Cloud 如何实现?
Spring Cloud 和dubbo区别?
负载平衡的意义什么?
什么是 Hystrix?它如何实现容错?
什么是 Hystrix 断路器?我们需要它吗?
什么是 Netflix Feign?它的优点是什么?
什么是 Spring Cloud Bus?我们需要它吗?
Spring Cloud断路器的作用
什么是Spring Cloud Config?
什么是Spring Cloud Gateway?
MyBatis
MyBatis是什么?
ORM是什么
为什么说Mybatis是半自动ORM映射工具?它与全自动的区别在哪里?
传统JDBC开发存在的问题
JDBC编程有哪些不足之处,MyBatis是如何解决这些问题的?
Mybatis优缺点
MyBatis框架适用场景
Hibernate 和 MyBatis 的区别
MyBatis的解析和运行原理
MyBatis编程步骤是什么样的?
请说说MyBatis的工作原理
MyBatis的功能架构是怎样的
MyBatis的框架架构设计是怎么样的
Mybatis都有哪些Executor执行器?它们之间的区别是什么?
Mybatis中如何指定使用哪一种Executor执行器?
Mybatis是否支持延迟加载?如果支持,它的实现原理是什么?
#{}和${}的区别
模糊查询like语句该怎么写
在mapper中如何传递多个参数
Mybatis如何执行批量操作
如何获取生成的主键
当实体类中的属性名和表中的字段名不一样 ,怎么办
Mapper 编写有哪几种方式?
什么是MyBatis的接口绑定?有哪些实现方式?
使用MyBatis的mapper接口调用时有哪些要求?
最佳实践中,通常一个Xml映射文件,都会写一个Dao接口与之对应,请问,这个Dao接口的工作原理是什么?Dao接口里的方法,参数不同时,方法能重载吗
Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重复?
简述Mybatis的Xml映射文件和Mybatis内部数据结构之间的映射关系?
Mybatis是如何将sql执行结果封装为目标对象并返回的?都有哪些映射形式?
Xml映射文件中,除了常见的select|insert|updae|delete标签之外,还有哪些标签?
Mybatis映射文件中,如果A标签通过include引用了B标签的内容,请问,B标签能否定义在A标签的后面,还是说必须定义在A标签的前面?
MyBatis实现一对一,一对多有几种方式,怎么操作的?
Mybatis是否可以映射Enum枚举类?
Mybatis动态sql是做什么的?都有哪些动态sql?能简述一下动态sql的执行原理不?
Mybatis是如何进行分页的?分页插件的原理是什么?
简述Mybatis的插件运行原理,以及如何编写一个插件。
Mybatis的一级、二级缓存
Redis
什么是Redis
Redis有哪些优缺点
为什么要用 Redis /为什么要用缓存
为什么要用 Redis 而不用 map/guava 做缓存?
Redis为什么这么快
Redis有哪些数据类型
Redis的应用场景
什么是Redis持久化?
Redis 的持久化机制是什么?各自的优缺点?
如何选择合适的持久化方式
Redis持久化数据和缓存怎么做扩容?
Redis的过期键的删除策略
Redis key的过期时间和永久有效分别怎么设置?
我们知道通过expire来设置key 的过期时间,那么对过期的数据怎么处理呢?
MySQL里有2000w数据,redis中只存20w的数据,如何保证redis中的数据都是热点数据
Redis的内存淘汰策略有哪些
Redis主要消耗什么物理资源?
Redis的内存用完了会发生什么?
Redis如何做内存优化?
Redis线程模型
什么是事务?
Redis事务的概念
Redis事务的三个阶段
Redis事务相关命令
事务管理(ACID)概述
Redis事务支持隔离性吗
Redis事务保证原子性吗,支持回滚吗
Redis事务其他实现
哨兵模式
官方Redis Cluster 方案(服务端路由查询)
基于客户端分配
由于文章篇幅原因,答案不能一起上传,我这边整理了一份文档有需要的可以:“加我VX小助理”即可免费获取到。
以下为我整理的答案解析文档;