轰轰烈烈的“金三银四”春招季已经落幕有人欢喜有人愁不管你是喜是忧学习总归是好的。这不小编特地整理了一下春招面试知识点JAVA 岗一起分享出来给大家看看~第一部分 Java 相关1.1 JAVA 基础面向对象和面向过程的区别Java 语言有哪些特点关于 JVM JDK 和 JRE 最详细通俗的解答Oracle JDK 和 OpenJDK 的对比List 和 Set 的区别什么是 Java 程序的主类 应用程序和小程序的主类有何不同Java 应用程序与小程序之间有那些差别字符型常量和字符串常量的区别Java 面向对象编程三大特性: 封装 继承 多态构造器 Constructor 是否可被 overrideArrays.sort 实现原理和 Collection 实现原理重载和重写的区别String StringBuffer 和 StringBuilder 的区别是什么 String 为什么是不可变的在一个静态方法内调用一个非静态成员为什么是非法的在 Java 中定义一个不做事且没有参数的构造方法的作用import java 和 和 javax 有什么区别创建一个对象用什么运算符? 对象实体与对象引用有何不同?HashMap 1.7 与 1.8 的 区别说明 1.8 做了哪些优化如何优化的接口和抽象类的区别是什么成员变量与局部变量的区别有那些一个类的构造方法的作用是什么若一个类没有声明构造方法, 该程序能正确执行吗 ? 为什么?构造方法有哪些特性静态方法和实例方法有何不同对象的相等与指向他们的引用相等两者有什么不同在调用子类构造方法之前会先调用父类没有参数的构造方法其目的是? 与 equals(重要hashCode 与 equals 重要为什么 Java 中只有值传递简述线程程序、进程的基本概念。以及他们之间关系是什么?线程有哪些基本状态?Java 中的异常处理?异常分类以及处理机制final finally finalize强引用 、软引用、 弱引用、虚引用Java 序列化中如果有些字段不想进行序列化 怎么办?获取用键盘输入常用的的两种方法?JAVA 基础答案1.2 JAVA 并发Synchronized 用 过 吗 其 原 理 是 什 么 你 刚 才 提 到 获 取 对 象 的 锁这 个 “锁”到 底 是 什 么 如 何 确 定对 象 的 锁 什 么 是 可 重 入 性 为 什 么 说 Synchronized 是 可 重 入 锁 JVM 对 Java 的 原 生 锁 做 了 哪 些 优 化 为 什 么 说 Synchronized 是 非 公 平 锁 什 么 是 锁 消 除 和 锁 粗 化 为 什 么 说 Synchronized 是 一 个 悲 观 锁 乐 观 锁 的 实 现 原 理又 是 什 么 什 么 是 CAS 它 有 什 么 特 性 既 然 提 到 可 以 通 过 配 置 不 同 参 数 创 建 出 不 同 的 线 程 池 那 么 Java 中 默 认 实 现 好 的 线 程 池 又 有 哪 些 呢 请 比 较 它 们 的 异 同 。如 何 在 Java 线 程 池 中 提 交 线 程 什 么 是 Java 的 内 存 模 型Java 中 各 个 线 程 是 怎 么 彼 此 看 到对 方 的 变 量 的 请 谈 谈 volatile 有 什 么 特 点 为 什 么 它 能 保 证 变 量 对 所 有 线程 的 可 见 性 既 然 volatile 能 够 保 证 线 程 间 的 变 量 可 见 性 是 不 是 就 意 味着 基 于 volatile 变 量 的 运 算 就 是 并 发 安 全 的 请 对 比 下 volatile 对 比 Synchronized 的 异 同 。很 多 人 都 说 要 慎 用 ThreadLocal 谈 谈 你 的 理 解 使 用乐 观 锁 一 定 就 是 好 的 吗 跟 Synchronized 相 比 可 重 入 锁 ReentrantLock 其 实 现原 理 有 什 么 不 同 那 么 请 谈 谈 AQS 框 架 是 怎 么 回 事 儿 请 尽 可 能 详 尽 地 对 比 下 Synchronized 和 ReentrantLock 的 异 同 。ReentrantLock 是 如 何 实 现 可 重 入 性 的 除 了 ReetrantLock 你 还 接 触 过 JUC 中 的 哪 些 并 发 工 具 请 谈 谈 ReadWriteLock 和 StampedLock。如 何 让 Java 的 线 程 彼 此 同 步 你 了 解 过 哪 些 同 步 器 请 分 别介 绍 下 。CyclicBarrier 和 CountDownLatch 看 起 来 很 相 似 请 对 比下 呢 Java 中 的 线 程 池 是 如 何 实 现 的 创 建 线 程 池 的 几 个 核 心 构 造 参 数 线 程 池 中 的 线 程 是 怎 么 创 建 的 是 一 开 始 就 随 着 线 程 池 的 启 动创 建 好 的 吗 JAVA 并发答案第二部分 Spring 相关1.1 Spring什么是 Spring 框架Spring 框架有哪些主要模块使用 Spring 框架能带来哪些好处Spring 框架中有哪些不同类型的事件Spring 框架中都用到了哪些设计模式什么是控制反转(IOC)请解释下 Spring 框架中的 IoC BeanFactory 和 和 ApplicationContext 有什么区别Spring 有几种配置方式如何用基于 XML 配置的方式配置 Spring 如何用基于 Java 配置的方式配置 Spring 怎样用注解的方式配置 Spring 请解释 Spring Bean 的生命周期Spring Bean 的作用域之间有什么区别什么是 Spring inner beans Spring 框架中的单例 Beans 是线程安全的么请举例说明如何在 Spring 中注入一个 Java Collection 如何向 Spring Bean 中注入一个 Java.util.Properties 请解释 Spring Bean 的自动装配请解释自动装配模式的区别如何开启基于注解的自动装配请举例解释 Required 注解请举例解释 Autowired 注解请举例说明 Qualifier 注解构造方法注入和设值注入有什么区别FileSystemResource 和 和 ClassPathResource 有何区别BeanFactory 和 FactoryBeanSpring IOC 的理解其初始化过程BeanFactory 和 ApplicationContextSpring Bean 的生命周期如何被管理的Spring Bean 的加载过程是怎样的如果要你实现 Spring AOP请问怎么实现如果要你实现 Spring IOC你会注意哪些问题Spring 是如何管理事务的事务管理机制Spring 的不同事务传播行为有哪些干什么用的Spring 中用到了那些设计模式Spring MVC 的工作原理Spring 循环注入的原理Spring 如何保证 Controller 并发的安全Spring答案2.2 Spring Boot什么是 Spring BootSpring Boot 有哪些优点什么是 JavaConfig如何重新加载 Spring Boot 上的更改而无需重新启动服务器Spring Boot 中的监视器是什么如何在 Spring Boot 中禁用 Actuator 端点安全性如何在自定义端口上运行 Spring Boot 应用程序什么是 YAML什么是 Spring Profiles什么是 Spring Batch如何集成 Spring Boot 和 ActiveMQ如何使用 Spring Boot 实现分页和排序什么是 Swagger你用 Spring Boot 实现了它吗什么是 FreeMarker 模板如何使用 Spring Boot 实现异常处理您使用了哪些 starter maven 依赖项什么是 CSRF 攻击什么是 WebSockets什么是 AOP什么是 Apache Kafka我们如何监视所有 Spring Boot 微服务Spring Boot答案2.3 Spring MVC什么是 SpringMvcSpring MVC 的优点SpringMVC 工作原理SpringMVC 流程SpringMvc 的控制器是不是单例模式,如果是,有什么问题,怎么解决如果你也用过 struts2.简单介绍下 springMVC 和 struts2 的区别有哪些?SpingMvc 中的控制器的注解一般用那个,有没有别的注解可以替代RequestMapping 注解用在类上面有什么作用怎么样把某个请求映射到特定的方法上面如果在拦截请求中,我想拦截 get 方式提交的方法,怎么配置怎么样在方法里面得到 Request,或者 Session我想在拦截的方法里面得到从前台传入的参数,怎么得到如果前台有很多个参数传入,并且这些参数都是一个对象的,那么怎么样快速得到这个对象SpringMvc 中函数的返回值是什么SpringMVC 怎么样设定重定向和转发的SpringMvc 用什么对象从后台向前台传递数据的SpringMvc 中有个类把视图和数据都合并的一起的,叫什么怎么样把 ModelMap 里面的数据放入 Session 里面SpringMvc 怎么和 AJAX 相互调用的讲下 SpringMvc 的执行流程SpringMvc 里面拦截器是怎么写的当一个方法向 AJAX 返回特殊对象,譬如 Object,List 等,需要做什么处理Spring MVC答案2.4 Spring Cloud什么是 Spring Cloud使用 Spring Cloud 有什么优势服务注册和发现是什么意思Spring Cloud 如何实现负载平衡的意义什么什么是 Hystrix它如何实现容错什么是 Hystrix 断路器我们需要它吗什么是 Spring Cloud Bus我们需要它吗什么是 Netflix Feign它的优点是什么Spring Cloud答案第三部分 数据库相关3.1 MySQL 高频面试知识点事务四大特性ACID原子性、一致性、隔离性、持久性事务的并发事务隔离级别每个级别会引发什么问题MySQL 默认是哪个级别MySQL 常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别MySQL 的 MyISAM 与 InnoDB 两种存储引擎在事务、锁级别各自的适用场景查询语句不同元素where、jion、limit、group by、having 等等执行先后顺序什么是临时表临时表什么时候删除?MySQL BTree 索引和 Hash 索引的区别sql 查询语句确定创建哪种类型的索引如何优化查询聚集索引和非聚集索引区别有哪些锁乐观锁悲观锁select 时怎么加排它锁非关系型数据库和关系型数据库区别优势比较数据库三范式根据某个场景设计数据表数据库的读写分离、主从复制主从复制分析的 7 个问题使用 explain 优化 sql 和索引MySQL 慢查询怎么解决什么是 内连接、外连接、交叉连接、笛卡尔积等mysql 都有什么锁死锁判定原理和具体场景死锁怎么解决varchar 和 char 的使用场景mysql 高并发环境解决方案数据库崩溃时事务的恢复机制REDO 日志和 UNDO 日志MySQL 高频面试知识点答案3.2 MySQL 性能调优实践为查询缓存优化你的查询EXPLAIN 你的 SELECT 查询当只要一行数据时使用 LIMIT 1为搜索字段建索引在 Join 表的时候使用相当类型的例并将其索引千万不要 ORDER BY RAND()避免 SELECT *永远为每张表设置一个 ID使用 ENUM 而不是 VARCHAR从 PROCEDURE ANALYSE() 取得建议尽可能的使用 NOT NULLPrepared Statements无缓冲的查询把 IP 地址存成 UNSIGNED INT固定长度的表会更快垂直分割拆分大的 DELETE 或 INSERT 语句越小的列会越快选择正确的存储引擎使用一个对象关系映射器(Object Relational Mapper)小心“永久链接”为查询缓存优化你的查询EXPLAIN 你的 SELECT 查询当只要一行数据时使用 LIMIT 1为搜索字段建索引在 Join 表的时候使用相当类型的例并将其索引千万不要 ORDER BY RAND()避免 SELECT *永远为每张表设置一个 ID使用 ENUM 而不是 VARCHAR从 PROCEDURE ANALYSE() 取得建议尽可能的使用 NOT NULLPrepared Statements无缓冲的查询把 IP 地址存成 UNSIGNED INT固定长度的表会更快垂直分割拆分大的 DELETE 或 INSERT 语句越小的列会越快选择正确的存储引擎使用一个对象关系映射器(Object Relational Mapper)小心“永久链接”MySQL 性能调优实践答案第四部分 Redisredis 简介为什么要用 redis /为什么要用缓存高性能、高并发为什么要用 redis 而不用 map/guava 做缓存?redis 和 memcached 的区别redis 常见数据结构以及使用场景分析String、Hash、List、Set、Sorted Setredis 设置过期时间redis 内存淘汰机制MySQL 里有 2000w 数据Redis 中只存 20w 的数据如何保证 Redis 中的数据都是热点数据redis 持久化机制怎么保证 redis 挂掉之后再重启数据可以进行恢复redis 事务Redis 常见异常及解决方案缓存穿透、缓存雪崩、缓存预热、缓存降级分布式环境下常见的应用场景分布式锁、分布式自增 IDRedis 集群模式主从模式、哨兵模式、Cluster 集群模式如何解决 Redis 的并发竞争 Key 问题如何保证缓存与数据库双写时的数据一致性Redis答案第五部分 分布式相关Dubbo 的底层实现原理和机制描述一个服务从发布到被消费的详细过程分布式系统怎么做服务治理接口的幂等性的概念消息中间件如何解决消息丢失问题Dubbo 的服务请求失败怎么处理重连机制会不会造成错误对分布式事务的理解如何实现负载均衡有哪些算法可以实现Zookeeper 的用途选举的原理是什么数据的垂直拆分水平拆分。zookeeper 原理和适用场景zookeeper watch 机制redis/zk 节点宕机如何处理分布式集群下如何做到唯一序列号如何做一个分布式锁用过哪些 MQ怎么用的和其他 mq 比较有什么优缺点MQ 的连接是线程安全的吗MQ 系统的数据如何保证不丢失列举出你能想到的数据库分库分表策略分库分表后如何解决全表查询的问题zookeeper 的选举策略第六部分 JVMJVM 内存结构HotSpot 虚拟机对象探秘垃圾收集策略与算法HotSpot 垃圾收集器内存分配与回收策略JVM 性能调优类文件结构类加载的时机类加载的过程类加载器JVM答案第七部分 算法编程技巧线性表字符串栈和队列树排序查找暴力枚举法广度优先搜素深度优先搜素分治法贪心法动态规划图细节实现题算法答案最后面试专题学习书籍有需要的朋友可以点击下方名片获取