## 前言
2020已经进入尾声了,金九银十马上结束,接下来就是将近半年的面试真空期!如果最近还不拿到心仪的offer的话,可能大概率要等到明年的金三银四去了!一年之计在于秋,金九已经过去了,但银十正在进行,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概述
- 什么是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 方案(服务端路由查询)
- 基于客户端分配
总结
以上只是这份面试题的部分展示,这份面试题内容涵盖:Java、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技术栈!现在免费分享给大家!欢迎关注我的公众号前程有光领取这份面试题!
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。