秋招面試總結(jié):Java+并發(fā)+Spring+MySQL+分布式+Redis+算法+JVM等

第一部分 Java相關(guān)

1.1 JAVA基礎(chǔ)

面向?qū)ο蠛兔嫦蜻^(guò)程的區(qū)別

Java 語(yǔ)言有哪些特點(diǎn)

關(guān)于 JVM JDK 和 JRE 最詳細(xì)通俗的解答

Oracle JDK 和 OpenJDK 的對(duì)比

List 和 Set 的區(qū)別

什么是 Java 程序的主類(lèi) 應(yīng)用程序和小程序的主類(lèi)有何不同

Java 應(yīng)用程序與小程序之間有那些差別

字符型常量和字符串常量的區(qū)別

Java 面向?qū)ο缶幊倘筇匦? 封裝 繼承 多態(tài)

構(gòu)造器 Constructor 是否可被 override

Arrays.sort 實(shí)現(xiàn)原理和 Collection 實(shí)現(xiàn)原理

重載和重寫(xiě)的區(qū)別

String StringBuffer 和 StringBuilder 的區(qū)別是什么? String 為什么是不可變的?

在一個(gè)靜態(tài)方法內(nèi)調(diào)用一個(gè)非靜態(tài)成員為什么是非法的?

在 Java 中定義一個(gè)不做事且沒(méi)有參數(shù)的構(gòu)造方法的作用

import java 和 和 javax 有什么區(qū)別?

創(chuàng)建一個(gè)對(duì)象用什么運(yùn)算符? 對(duì)象實(shí)體與對(duì)象引用有何不同?

HashMap 1.7 與 1.8 的 區(qū)別,說(shuō)明 1.8 做了哪些優(yōu)化,如何優(yōu)化的?

接口和抽象類(lèi)的區(qū)別是什么?

成員變量與局部變量的區(qū)別有那些?

一個(gè)類(lèi)的構(gòu)造方法的作用是什么若一個(gè)類(lèi)沒(méi)有聲明構(gòu)造方法, 該程序能正確執(zhí)行嗎 ? 為什么?

構(gòu)造方法有哪些特性?

靜態(tài)方法和實(shí)例方法有何不同

對(duì)象的相等與指向他們的引用相等,兩者有什么不同?

在調(diào)用子類(lèi)構(gòu)造方法之前會(huì)先調(diào)用父類(lèi)沒(méi)有參數(shù)的構(gòu)造方法,其目的是?

== 與 equals(重要)

hashCode 與 equals (重要)

為什么 Java 中只有值傳遞?

簡(jiǎn)述線(xiàn)程,程序、進(jìn)程的基本概念。以及他們之間關(guān)系是什么?

線(xiàn)程有哪些基本狀態(tài)?

Java 中的異常處理?

異常分類(lèi)以及處理機(jī)制

final finally finalize

強(qiáng)引用 、軟引用、 弱引用、虛引用

Java 序列化中如果有些字段不想進(jìn)行序列化 怎么辦?

獲取用鍵盤(pán)輸入常用的的兩種方法?

JAVA基礎(chǔ):答案

JAVA基礎(chǔ):答案

1.2 JAVA并發(fā)

Synchronized 用 過(guò) 嗎 , 其 原 理 是 什 么 ?

你 剛 才 提 到 獲 取 對(duì) 象 的 鎖,這 個(gè) “鎖”到 底 是 什 么 ? 如 何 確 定對(duì) 象 的 鎖 ?

什 么 是 可 重 入 性 , 為 什 么 說(shuō) Synchronized 是 可 重 入 鎖 ?

JVM 對(duì) Java 的 原 生 鎖 做 了 哪 些 優(yōu) 化 ?

為 什 么 說(shuō) Synchronized 是 非 公 平 鎖 ?

什 么 是 鎖 消 除 和 鎖 粗 化 ?

為 什 么 說(shuō) Synchronized 是 一 個(gè) 悲 觀 鎖 ? 樂(lè) 觀 鎖 的 實(shí) 現(xiàn) 原 理

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

既 然 提 到 可 以 通 過(guò) 配 置 不 同 參 數(shù) 創(chuàng) 建 出 不 同 的 線(xiàn) 程 池 , 那 么Java 中 默 認(rèn) 實(shí) 現(xiàn) 好 的 線(xiàn) 程 池 又 有 哪 些 呢 ? 請(qǐng) 比 較 它 們 的 異 同 。

如 何 在 Java 線(xiàn) 程 池 中 提 交 線(xiàn) 程 ?

什 么 是 Java 的 內(nèi) 存 模 型,Java 中 各 個(gè) 線(xiàn) 程 是 怎 么 彼 此 看 到對(duì) 方 的 變 量 的 ?

請(qǐng) 談 談 volatile 有 什 么 特 點(diǎn) , 為 什 么 它 能 保 證 變 量 對(duì) 所 有 線(xiàn)程 的 可 見(jiàn) 性 ?

既 然 volatile 能 夠 保 證 線(xiàn) 程 間 的 變 量 可 見(jiàn) 性 , 是 不 是 就 意 味著 基 于 volatile 變 量 的 運(yùn) 算 就 是 并 發(fā) 安 全 的 ?

請(qǐng) 對(duì) 比 下 volatile 對(duì) 比 Synchronized 的 異 同 。

很 多 人 都 說(shuō) 要 慎 用 ThreadLocal, 談 談 你 的 理 解 , 使 用

樂(lè) 觀 鎖 一 定 就 是 好 的 嗎 ?

跟 Synchronized 相 比 , 可 重 入 鎖 ReentrantLock 其 實(shí) 現(xiàn)原 理 有 什 么 不 同 ?

那 么 請(qǐng) 談 談 AQS 框 架 是 怎 么 回 事 兒 ?

請(qǐng) 盡 可 能 詳 盡 地 對(duì) 比 下 Synchronized 和 ReentrantLock的 異 同 。

ReentrantLock 是 如 何 實(shí) 現(xiàn) 可 重 入 性 的 ?

除 了 ReetrantLock, 你 還 接 觸 過(guò) JUC 中 的 哪 些 并 發(fā) 工 具 ?

請(qǐng) 談 談 ReadWriteLock 和 StampedLock。

如 何 讓 Java 的 線(xiàn) 程 彼 此 同 步 ? 你 了 解 過(guò) 哪 些 同 步 器 ? 請(qǐng) 分 別介 紹 下 。

CyclicBarrier 和 CountDownLatch 看 起 來(lái) 很 相 似 , 請(qǐng) 對(duì) 比下 呢 ?

Java 中 的 線(xiàn) 程 池 是 如 何 實(shí) 現(xiàn) 的 ?

創(chuàng) 建 線(xiàn) 程 池 的 幾 個(gè) 核 心 構(gòu) 造 參 數(shù) ?

線(xiàn) 程 池 中 的 線(xiàn) 程 是 怎 么 創(chuàng) 建 的 ? 是 一 開(kāi) 始 就 隨 著 線(xiàn) 程 池 的 啟 動(dòng)創(chuàng) 建 好 的 嗎 ?

JAVA并發(fā):答案

JAVA并發(fā):答案

第二部分 Spring相關(guān)

1.1 Spring

什么是 Spring 框架?Spring 框架有哪些主要模塊?

使用 Spring 框架能帶來(lái)哪些好處?

Spring 框架中有哪些不同類(lèi)型的事件?

Spring 框架中都用到了哪些設(shè)計(jì)模式?

什么是控制反轉(zhuǎn)(IOC)?

請(qǐng)解釋下 Spring 框架中的 IoC ?

BeanFactory 和 和 ApplicationContext 有什么區(qū)別?

Spring 有幾種配置方式?

如何用基于 XML 配置的方式配置 Spring ?

如何用基于 Java 配置的方式配置 Spring ?

怎樣用注解的方式配置 Spring ?

請(qǐng)解釋 Spring Bean 的生命周期?

Spring Bean 的作用域之間有什么區(qū)別?

什么是 Spring inner beans ?

Spring 框架中的單例 Beans 是線(xiàn)程安全的么?

請(qǐng)舉例說(shuō)明如何在 Spring 中注入一個(gè) Java Collection ?

如何向 Spring Bean 中注入一個(gè) Java.util.Properties ?

請(qǐng)解釋 Spring Bean 的自動(dòng)裝配?

請(qǐng)解釋自動(dòng)裝配模式的區(qū)別?

如何開(kāi)啟基于注解的自動(dòng)裝配

請(qǐng)舉例解釋@Required 注解?

請(qǐng)舉例解釋@Autowired 注解?

請(qǐng)舉例說(shuō)明@Qualifier 注解?

構(gòu)造方法注入和設(shè)值注入有什么區(qū)別?

FileSystemResource 和 和 ClassPathResource 有何區(qū)別?

BeanFactory 和 FactoryBean

Spring IOC 的理解,其初始化過(guò)程?

BeanFactory 和 ApplicationContext?

Spring Bean 的生命周期,如何被管理的?Spring Bean 的加載過(guò)程是怎樣的?

如果要你實(shí)現(xiàn)Spring AOP,請(qǐng)問(wèn)怎么實(shí)現(xiàn)?

如果要你實(shí)現(xiàn)Spring IOC,你會(huì)注意哪些問(wèn)題?

Spring 是如何管理事務(wù)的,事務(wù)管理機(jī)制?

Spring 的不同事務(wù)傳播行為有哪些,干什么用的?

Spring 中用到了那些設(shè)計(jì)模式?

Spring MVC 的工作原理?

Spring 循環(huán)注入的原理?

Spring 如何保證 Controller 并發(fā)的安全?

Spring:答案

Spring:答案

2.2 Spring Boot

什么是 Spring Boot?

Spring Boot 有哪些優(yōu)點(diǎn)?

什么是 JavaConfig?

如何重新加載 Spring Boot 上的更改,而無(wú)需重新啟動(dòng)服務(wù)器?

Spring Boot 中的監(jiān)視器是什么?

如何在 Spring Boot 中禁用 Actuator 端點(diǎn)安全性?

如何在自定義端口上運(yùn)行 Spring Boot 應(yīng)用程序?

什么是 YAML?

什么是 Spring Profiles?

什么是 Spring Batch?

如何集成 Spring Boot 和 ActiveMQ?

如何使用 Spring Boot 實(shí)現(xiàn)分頁(yè)和排序?

什么是 Swagger?你用 Spring Boot 實(shí)現(xiàn)了它嗎?

什么是 FreeMarker 模板?

如何使用 Spring Boot 實(shí)現(xiàn)異常處理?

您使用了哪些 starter maven 依賴(lài)項(xiàng)?

什么是 CSRF 攻擊?

什么是 WebSockets?

什么是 AOP?

什么是 Apache Kafka?

我們?nèi)绾伪O(jiān)視所有 Spring Boot 微服務(wù)?

Spring Boot:答案

Spring Boot:答案

2.3 Spring MVC

什么是 SpringMvc?

Spring MVC 的優(yōu)點(diǎn):

SpringMVC 工作原理?

SpringMVC 流程?

SpringMvc 的控制器是不是單例模式,如果是,有什么問(wèn)題,怎么解決?

如果你也用過(guò) struts2.簡(jiǎn)單介紹下 springMVC 和 struts2 的區(qū)別有哪些?

SpingMvc 中的控制器的注解一般用那個(gè),有沒(méi)有別的注解可以替代?

@RequestMapping 注解用在類(lèi)上面有什么作用?

怎么樣把某個(gè)請(qǐng)求映射到特定的方法上面?

如果在攔截請(qǐng)求中,我想攔截 get 方式提交的方法,怎么配置?

怎么樣在方法里面得到 Request,或者 Session?

我想在攔截的方法里面得到從前臺(tái)傳入的參數(shù),怎么得到?

如果前臺(tái)有很多個(gè)參數(shù)傳入,并且這些參數(shù)都是一個(gè)對(duì)象的,那么怎么樣快速得到這個(gè)對(duì)象?

SpringMvc 中函數(shù)的返回值是什么?

SpringMVC 怎么樣設(shè)定重定向和轉(zhuǎn)發(fā)的?

SpringMvc 用什么對(duì)象從后臺(tái)向前臺(tái)傳遞數(shù)據(jù)的?

SpringMvc 中有個(gè)類(lèi)把視圖和數(shù)據(jù)都合并的一起的,叫什么?

怎么樣把 ModelMap 里面的數(shù)據(jù)放入 Session 里面?

SpringMvc 怎么和 AJAX 相互調(diào)用的?

講下 SpringMvc 的執(zhí)行流程

SpringMvc 里面攔截器是怎么寫(xiě)的?

當(dāng)一個(gè)方法向 AJAX 返回特殊對(duì)象,譬如 Object,List 等,需要做什么處理?

Spring MVC:答案

Spring MVC:答案

2.4 Spring Cloud

什么是 Spring Cloud?

使用 Spring Cloud 有什么優(yōu)勢(shì)?

服務(wù)注冊(cè)和發(fā)現(xiàn)是什么意思?Spring Cloud 如何實(shí)現(xiàn)?

負(fù)載平衡的意義什么?

什么是 Hystrix?它如何實(shí)現(xiàn)容錯(cuò)?

什么是 Hystrix 斷路器?我們需要它嗎?

什么是 Spring Cloud Bus?我們需要它嗎?

什么是 Netflix Feign?它的優(yōu)點(diǎn)是什么?

Spring Cloud:答案

Spring Cloud:答案

第三部分 數(shù)據(jù)庫(kù)相關(guān)

3.1 MySQL高頻面試知識(shí)點(diǎn)

事務(wù)四大特性(ACID)原子性、一致性、隔離性、持久性?

事務(wù)的并發(fā)?事務(wù)隔離級(jí)別,每個(gè)級(jí)別會(huì)引發(fā)什么問(wèn)題,MySQL默認(rèn)是哪個(gè)級(jí)別?

MySQL常見(jiàn)的三種存儲(chǔ)引擎(InnoDB、MyISAM、MEMORY)的區(qū)別?

MySQL的MyISAM與InnoDB兩種存儲(chǔ)引擎在,事務(wù)、鎖級(jí)別,各自的適用場(chǎng)景?

查詢(xún)語(yǔ)句不同元素(where、jion、limit、group by、having等等)執(zhí)行先后順序?

什么是臨時(shí)表,臨時(shí)表什么時(shí)候刪除?

MySQL B+Tree索引和Hash索引的區(qū)別?

sql查詢(xún)語(yǔ)句確定創(chuàng)建哪種類(lèi)型的索引?如何優(yōu)化查詢(xún)?

聚集索引和非聚集索引區(qū)別?

有哪些鎖(樂(lè)觀鎖悲觀鎖),select 時(shí)怎么加排它鎖?

非關(guān)系型數(shù)據(jù)庫(kù)和關(guān)系型數(shù)據(jù)庫(kù)區(qū)別,優(yōu)勢(shì)比較?

數(shù)據(jù)庫(kù)三范式,根據(jù)某個(gè)場(chǎng)景設(shè)計(jì)數(shù)據(jù)表?

數(shù)據(jù)庫(kù)的讀寫(xiě)分離、主從復(fù)制,主從復(fù)制分析的 7 個(gè)問(wèn)題?

使用explain優(yōu)化sql和索引?

MySQL慢查詢(xún)?cè)趺唇鉀Q?

什么是 內(nèi)連接、外連接、交叉連接、笛卡爾積等?

mysql都有什么鎖,死鎖判定原理和具體場(chǎng)景,死鎖怎么解決?

varchar和char的使用場(chǎng)景?

mysql 高并發(fā)環(huán)境解決方案?

數(shù)據(jù)庫(kù)崩潰時(shí)事務(wù)的恢復(fù)機(jī)制(REDO日志和UNDO日志)?

MySQL高頻面試知識(shí)點(diǎn):答案

MySQL高頻面試知識(shí)點(diǎn):答案

3.2 MySQL性能調(diào)優(yōu)實(shí)踐

為查詢(xún)緩存優(yōu)化你的查詢(xún)

EXPLAIN你的SELECT查詢(xún)

當(dāng)只要一行數(shù)據(jù)時(shí)使用LIMIT 1

為搜索字段建索引

在Join表的時(shí)候使用相當(dāng)類(lèi)型的例,并將其索引

千萬(wàn)不要 ORDER BY RAND()

避免 SELECT *

永遠(yuǎn)為每張表設(shè)置一個(gè) ID

使用 ENUM 而不是 VARCHAR

從 PROCEDURE ANALYSE() 取得建議

盡可能的使用 NOT NULL

Prepared Statements

無(wú)緩沖的查詢(xún)

把 IP 地址存成 UNSIGNED INT

固定長(zhǎng)度的表會(huì)更快

垂直分割

拆分大的 DELETE 或 INSERT 語(yǔ)句

越小的列會(huì)越快

選擇正確的存儲(chǔ)引擎

使用一個(gè)對(duì)象關(guān)系映射器(Object Relational Mapper)

小心“永久鏈接”

為查詢(xún)緩存優(yōu)化你的查詢(xún)

EXPLAIN你的SELECT查詢(xún)

當(dāng)只要一行數(shù)據(jù)時(shí)使用LIMIT 1

為搜索字段建索引

在Join表的時(shí)候使用相當(dāng)類(lèi)型的例,并將其索引

千萬(wàn)不要 ORDER BY RAND()

避免 SELECT *

永遠(yuǎn)為每張表設(shè)置一個(gè) ID

使用 ENUM 而不是 VARCHAR

從 PROCEDURE ANALYSE() 取得建議

盡可能的使用 NOT NULL

Prepared Statements

無(wú)緩沖的查詢(xún)

把 IP 地址存成 UNSIGNED INT

固定長(zhǎng)度的表會(huì)更快

垂直分割

拆分大的 DELETE 或 INSERT 語(yǔ)句

越小的列會(huì)越快

選擇正確的存儲(chǔ)引擎

使用一個(gè)對(duì)象關(guān)系映射器(Object Relational Mapper)

小心“永久鏈接”

MySQL性能調(diào)優(yōu)實(shí)踐:答案

MySQL性能調(diào)優(yōu)實(shí)踐:答案

第四部分 Redis

redis 簡(jiǎn)介

為什么要用 redis /為什么要用緩存(高性能、高并發(fā))

為什么要用 redis 而不用 map/guava 做緩存?

redis 和 memcached 的區(qū)別

redis 常見(jiàn)數(shù)據(jù)結(jié)構(gòu)以及使用場(chǎng)景分析(String、Hash、List、Set、Sorted Set

redis 設(shè)置過(guò)期時(shí)間

redis 內(nèi)存淘汰機(jī)制(MySQL里有2000w數(shù)據(jù),Redis中只存20w的數(shù)據(jù),如何保證Redis中的數(shù)據(jù)都是熱點(diǎn)數(shù)據(jù)?

redis 持久化機(jī)制(怎么保證 redis 掛掉之后再重啟數(shù)據(jù)可以進(jìn)行恢復(fù)

redis 事務(wù)

Redis 常見(jiàn)異常及解決方案(緩存穿透、緩存雪崩、緩存預(yù)熱、緩存降級(jí)

分布式環(huán)境下常見(jiàn)的應(yīng)用場(chǎng)景(分布式鎖、分布式自增 ID

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

如何解決 Redis 的并發(fā)競(jìng)爭(zhēng) Key 問(wèn)題

如何保證緩存與數(shù)據(jù)庫(kù)雙寫(xiě)時(shí)的數(shù)據(jù)一致性?

Redis:答案

Redis:答案

第五部分 分布式相關(guān)

Dubbo的底層實(shí)現(xiàn)原理和機(jī)制

描述一個(gè)服務(wù)從發(fā)布到被消費(fèi)的詳細(xì)過(guò)程

分布式系統(tǒng)怎么做服務(wù)治理

接口的冪等性的概念

消息中間件如何解決消息丟失問(wèn)題

Dubbo的服務(wù)請(qǐng)求失敗怎么處理

重連機(jī)制會(huì)不會(huì)造成錯(cuò)誤

對(duì)分布式事務(wù)的理解

如何實(shí)現(xiàn)負(fù)載均衡,有哪些算法可以實(shí)現(xiàn)?

Zookeeper的用途,選舉的原理是什么?

數(shù)據(jù)的垂直拆分水平拆分。

zookeeper原理和適用場(chǎng)景

zookeeper watch機(jī)制

redis/zk節(jié)點(diǎn)宕機(jī)如何處理

分布式集群下如何做到唯一序列號(hào)

如何做一個(gè)分布式鎖

用過(guò)哪些MQ,怎么用的,和其他mq比較有什么優(yōu)缺點(diǎn),MQ的連接是線(xiàn)程安全的嗎

MQ系統(tǒng)的數(shù)據(jù)如何保證不丟失

列舉出你能想到的數(shù)據(jù)庫(kù)分庫(kù)分表策略;分庫(kù)分表后,如何解決全表查詢(xún)的問(wèn)題

zookeeper的選舉策略

第六部分 JVM

JVM 內(nèi)存結(jié)構(gòu)

HotSpot 虛擬機(jī)對(duì)象探秘

垃圾收集策略與算法

HotSpot 垃圾收集器

內(nèi)存分配與回收策略

JVM 性能調(diào)優(yōu)

類(lèi)文件結(jié)構(gòu)

類(lèi)加載的時(shí)機(jī)

類(lèi)加載的過(guò)程

類(lèi)加載器

JVM:答案

JVM:答案

第七部分 算法

編程技巧

線(xiàn)性表

字符串

棧和隊(duì)列

樹(shù)

排序

查找

暴力枚舉法

廣度優(yōu)先搜素

深度優(yōu)先搜素

分治法

貪心法

動(dòng)態(tài)規(guī)劃

細(xì)節(jié)實(shí)現(xiàn)題

算法:答案

算法:答案

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容