秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等

第一部分 Java相关

1.1 JAVA基础

面向对象和面向过程的区别

Java 语言有哪些特点

关于 JVM JDK 和 JRE 最详细通俗的解答

Oracle JDK 和 OpenJDK 的对比

List 和 Set 的区别

什么是 Java 程序的主类 应用程序和小程序的主类有何不同

Java 应用程序与小程序之间有那些差别

字符型常量和字符串常量的区别

Java 面向对象编程三大特性: 封装 继承 多态

构造器 Constructor 是否可被 override

Arrays.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基础:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第1张图片

JAVA基础:答案

1.2 JAVA并发

Synchronized 用 过 吗 , 其 原 理 是 什 么 ?

你 刚 才 提 到 获 取 对 象 的 锁,这 个 “锁”到 底 是 什 么 ? 如 何 确 定对 象 的 锁 ?

什 么 是 可 重 入 性 , 为 什 么 说 Synchronized 是 可 重 入 锁 ?

JVM 对 Java 的 原 生 锁 做 了 哪 些 优 化 ?

为 什 么 说 Synchronized 是 非 公 平 锁 ?

什 么 是 锁 消 除 和 锁 粗 化 ?

为 什 么 说 Synchronized 是 一 个 悲 观 锁 ? 乐 观 锁 的 实 现 原 理

又 是 什 么 ? 什 么 是 CAS, 它 有 什 么 特 性 ?

既 然 提 到 可 以 通 过 配 置 不 同 参 数 创 建 出 不 同 的 线 程 池 , 那 么Java 中 默 认 实 现 好 的 线 程 池 又 有 哪 些 呢 ? 请 比 较 它 们 的 异 同 。在此我向大家推荐一个架构学习交流圈。交流学习伪鑫:1253431195(里面有大量的面试题及答案)里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化、分布式架构等这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

如 何 在 Java 线 程 池 中 提 交 线 程 ?

什 么 是 Java 的 内 存 模 型,Java 中 各 个 线 程 是 怎 么 彼 此 看 到对 方 的 变 量 的 ?

请 谈 谈 volatile 有 什 么 特 点 , 为 什 么 它 能 保 证 变 量 对 所 有 线程 的 可 见 性 ?

既 然 volatile 能 够 保 证 线 程 间 的 变 量 可 见 性 , 是 不 是 就 意 味着 基 于 volatile 变 量 的 运 算 就 是 并 发 安 全 的 ?

请 对 比 下 volatile 对 比 Synchronized 的 异 同 。

很 多 人 都 说 要 慎 用 ThreadLocal, 谈 谈 你 的 理 解 , 使 用

乐 观 锁 一 定 就 是 好 的 吗 ?

跟 Synchronized 相 比 , 可 重 入 锁 ReentrantLock 其 实 现原 理 有 什 么 不 同 ?

那 么 请 谈 谈 AQS 框 架 是 怎 么 回 事 儿 ?

请 尽 可 能 详 尽 地 对 比 下 Synchronized 和 ReentrantLock的 异 同 。

ReentrantLock 是 如 何 实 现 可 重 入 性 的 ?

除 了 ReetrantLock, 你 还 接 触 过 JUC 中 的 哪 些 并 发 工 具 ?

请 谈 谈 ReadWriteLock 和 StampedLock。

如 何 让 Java 的 线 程 彼 此 同 步 ? 你 了 解 过 哪 些 同 步 器 ? 请 分 别介 绍 下 。

CyclicBarrier 和 CountDownLatch 看 起 来 很 相 似 , 请 对 比下 呢 ?

Java 中 的 线 程 池 是 如 何 实 现 的 ?

创 建 线 程 池 的 几 个 核 心 构 造 参 数 ?

线 程 池 中 的 线 程 是 怎 么 创 建 的 ? 是 一 开 始 就 随 着 线 程 池 的 启 动创 建 好 的 吗 ?

JAVA并发:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第2张图片

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 和 FactoryBean

Spring IOC 的理解,其初始化过程?

BeanFactory 和 ApplicationContext?

Spring Bean 的生命周期,如何被管理的?Spring Bean 的加载过程是怎样的?

如果要你实现Spring AOP,请问怎么实现?

如果要你实现Spring IOC,你会注意哪些问题?

Spring 是如何管理事务的,事务管理机制?

Spring 的不同事务传播行为有哪些,干什么用的?

Spring 中用到了那些设计模式?

Spring MVC 的工作原理?

Spring 循环注入的原理?

Spring 如何保证 Controller 并发的安全?

Spring:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第3张图片

Spring:答案

2.2 Spring Boot

什么是 Spring Boot?

Spring 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:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第4张图片

Spring Boot:答案

2.3 Spring MVC

什么是 SpringMvc?

Spring 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:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第5张图片

Spring MVC:答案

2.4 Spring Cloud

什么是 Spring Cloud?

使用 Spring Cloud 有什么优势?

服务注册和发现是什么意思?Spring Cloud 如何实现?

负载平衡的意义什么?

什么是 Hystrix?它如何实现容错?

什么是 Hystrix 断路器?我们需要它吗?

什么是 Spring Cloud Bus?我们需要它吗?

什么是 Netflix Feign?它的优点是什么?

Spring Cloud:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第6张图片

Spring Cloud:答案

第三部分 数据库相关

3.1 MySQL高频面试知识点

事务四大特性(ACID)原子性、一致性、隔离性、持久性?

事务的并发?事务隔离级别,每个级别会引发什么问题,MySQL默认是哪个级别?

MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)的区别?

MySQL的MyISAM与InnoDB两种存储引擎在,事务、锁级别,各自的适用场景?

查询语句不同元素(where、jion、limit、group by、having等等)执行先后顺序?

什么是临时表,临时表什么时候删除?

MySQL B+Tree索引和Hash索引的区别?

sql查询语句确定创建哪种类型的索引?如何优化查询?

聚集索引和非聚集索引区别?

有哪些锁(乐观锁悲观锁),select 时怎么加排它锁?

非关系型数据库和关系型数据库区别,优势比较?

数据库三范式,根据某个场景设计数据表?

数据库的读写分离、主从复制,主从复制分析的 7 个问题?

使用explain优化sql和索引?

MySQL慢查询怎么解决?

什么是 内连接、外连接、交叉连接、笛卡尔积等?

mysql都有什么锁,死锁判定原理和具体场景,死锁怎么解决?

varchar和char的使用场景?

mysql 高并发环境解决方案?

数据库崩溃时事务的恢复机制(REDO日志和UNDO日志)?

MySQL高频面试知识点:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第7张图片

MySQL高频面试知识点:答案

3.2 MySQL性能调优实践

为查询缓存优化你的查询

EXPLAIN你的SELECT查询

当只要一行数据时使用LIMIT 1

为搜索字段建索引

在Join表的时候使用相当类型的例,并将其索引

千万不要 ORDER BY RAND()

避免 SELECT *

永远为每张表设置一个 ID

使用 ENUM 而不是 VARCHAR

从 PROCEDURE ANALYSE() 取得建议

尽可能的使用 NOT NULL

Prepared Statements

无缓冲的查询

把 IP 地址存成 UNSIGNED INT

固定长度的表会更快

垂直分割

拆分大的 DELETE 或 INSERT 语句

越小的列会越快

选择正确的存储引擎

使用一个对象关系映射器(Object Relational Mapper)

小心“永久链接”

为查询缓存优化你的查询

EXPLAIN你的SELECT查询

当只要一行数据时使用LIMIT 1

为搜索字段建索引

在Join表的时候使用相当类型的例,并将其索引

千万不要 ORDER BY RAND()

避免 SELECT *

永远为每张表设置一个 ID

使用 ENUM 而不是 VARCHAR

从 PROCEDURE ANALYSE() 取得建议

尽可能的使用 NOT NULL

Prepared Statements

无缓冲的查询

把 IP 地址存成 UNSIGNED INT

固定长度的表会更快

垂直分割

拆分大的 DELETE 或 INSERT 语句

越小的列会越快

选择正确的存储引擎

使用一个对象关系映射器(Object Relational Mapper)

小心“永久链接”

MySQL性能调优实践:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第8张图片

MySQL性能调优实践:答案

第四部分 Redis

redis 简介

为什么要用 redis /为什么要用缓存(高性能、高并发)

为什么要用 redis 而不用 map/guava 做缓存?

redis 和 memcached 的区别

redis 常见数据结构以及使用场景分析(String、Hash、List、Set、Sorted Set

redis 设置过期时间

redis 内存淘汰机制(MySQL里有2000w数据,Redis中只存20w的数据,如何保证Redis中的数据都是热点数据?

redis 持久化机制(怎么保证 redis 挂掉之后再重启数据可以进行恢复

redis 事务

Redis 常见异常及解决方案(缓存穿透、缓存雪崩、缓存预热、缓存降级

分布式环境下常见的应用场景(分布式锁、分布式自增 ID

Redis 集群模式(主从模式、哨兵模式、Cluster 集群模式

如何解决 Redis 的并发竞争 Key 问题

如何保证缓存与数据库双写时的数据一致性?

Redis:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第9张图片

第五部分 分布式相关

Dubbo的底层实现原理和机制

描述一个服务从发布到被消费的详细过程

分布式系统怎么做服务治理

接口的幂等性的概念

消息中间件如何解决消息丢失问题

Dubbo的服务请求失败怎么处理

重连机制会不会造成错误

对分布式事务的理解

如何实现负载均衡,有哪些算法可以实现?

Zookeeper的用途,选举的原理是什么?

数据的垂直拆分水平拆分。

zookeeper原理和适用场景

zookeeper watch机制

redis/zk节点宕机如何处理

分布式集群下如何做到唯一序列号

如何做一个分布式锁

用过哪些MQ,怎么用的,和其他mq比较有什么优缺点,MQ的连接是线程安全的吗

MQ系统的数据如何保证不丢失

列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题

zookeeper的选举策略

第六部分 JVM

JVM 内存结构

HotSpot 虚拟机对象探秘

垃圾收集策略与算法

HotSpot 垃圾收集器

内存分配与回收策略

JVM 性能调优

类文件结构

类加载的时机

类加载的过程

类加载器

JVM:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第10张图片

JVM:答案

第七部分 算法

编程技巧

线性表

字符串

栈和队列

排序

查找

暴力枚举法

广度优先搜素

深度优先搜素

分治法

贪心法

动态规划

细节实现题

算法:答案

秋招面试总结:Java+并发+Spring+MySQL+分布式+Redis+算法+JVM等_第11张图片

你可能感兴趣的:(java,spring,boot,spring,spring,cloud,架构)