阿里面試官告訴你面試Java后端開發(fā)會被問到什么問題

面試java后端開發(fā),基本上會問你一些理論基礎,以及你對一些技術點的理解,或者說深一點問一問你所掌握的深淺如何? 如果之前有實習經(jīng)驗,還會問一些你做過的項目,以及你在其中擔任的角色,就是說你負責寫的模塊功能 等等。

計算機網(wǎng)絡基礎 無論是開發(fā)、運維、還是測試,計算機網(wǎng)絡基礎是必備的技術棧之一,也是我們?nèi)粘C嬖囍谐柕闹R之一。所以,對于計算機網(wǎng)絡的一些基礎知識點的掌握還是非常有必要的,今天,小編就給大家總一下常見的、高頻率的面試考點,如下。

Java基礎

Java概述

何為編程

什么是Java

jdk1.5之后的三大版本

JVM、JRE和JDK的關系

什么是跨平臺性?原理是什么

Java語言有哪些特點

什么是字節(jié)碼?采用字節(jié)碼的最大好處是什么

什么是Java程序的主類?應用程序和小程序的主類有何不同?

Java應用程序與小程序之間有那些差別?

Java和C++的區(qū)別

Oracle JDK 和 OpenJDK 的對比

基礎語法

數(shù)據(jù)類型

Java有哪些數(shù)據(jù)類型

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,以及不寫(默認)時的區(qū)別

運算符

&和&&的區(qū)別

關鍵字

Java 有沒有 goto

final 有什么用?

final finally finalize區(qū)別

this關鍵字的用法

super關鍵字的用法

this與super的區(qū)別

static存在的主要意義

static的獨特之處

static應用場景

static注意事項

流程控制語句

break ,continue ,return 的區(qū)別及作用

在 Java 中,如何跳出當前的多重嵌套循環(huán)

面向?qū)ο?/p>

面向?qū)ο蟾攀?/p>

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

面向?qū)ο笕筇匦?/p>

面向?qū)ο蟮奶卣饔心男┓矫?/p>

什么是多態(tài)機制?Java語言是如何實現(xiàn)多態(tài)的?

面向?qū)ο笪宕蠡驹瓌t是什么(可選)

類與接口

抽象類和接口的對比

普通類和抽象類有哪些區(qū)別?

抽象類能使用 final 修飾嗎?

創(chuàng)建一個對象用什么關鍵字?對象實例與對象引用有何不同?

變量與方法

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

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

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

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

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

靜態(tài)變量和實例變量區(qū)別

靜態(tài)變量與普通變量區(qū)別

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

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

什么是方法的返回值?返回值的作用是什么?

內(nèi)部類

什么是內(nèi)部類?

內(nèi)部類的分類有哪些

靜態(tài)內(nèi)部類

成員內(nèi)部類

局部內(nèi)部類

匿名內(nèi)部類

內(nèi)部類的優(yōu)點

內(nèi)部類有哪些應用場景

局部內(nèi)部類和匿名內(nèi)部類訪問局部變量的時候,為什么變量必須要加上final?

內(nèi)部類相關,看程序說出運行結(jié)果

重寫與重載

構(gòu)造器(constructor)是否可被重寫(override)

重載(Overload)和重寫(Override)的區(qū)別。重載的方法能否根據(jù)返回類型進行區(qū)分?

對象相等判斷

== 和 equals 的區(qū)別是什么

hashCode 與 equals (重要)

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

值傳遞

當一個對象被當作參數(shù)傳遞到一個方法后,此方法可改變這個對象的屬性,并可返回變化后的結(jié)果,那么這里到底是值傳遞還是引用傳遞

為什么 Java 中只有值傳遞

值傳遞和引用傳遞有什么區(qū)別

Java包

JDK 中常用的包有哪些

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

IO流

java 中 IO 流分為幾種?

BIO,NIO,AIO 有什么區(qū)別?

Files的常用方法都有哪些?

反射

什么是反射機制?

反射機制優(yōu)缺點

反射機制的應用場景有哪些?

Java獲取反射的三種方法

網(wǎng)絡編程

常用API

String相關

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

什么是字符串常量池?

String 是最基本的數(shù)據(jù)類型嗎

String有哪些特性

String為什么是不可變的嗎?

String真的是不可變的嗎?

是否可以繼承 String 類

String str="i"與 String str=new String("i")一樣嗎?

String s = new String("xyz");創(chuàng)建了幾個字符串對象

如何將字符串反轉(zhuǎn)?

數(shù)組有沒有 length()方法?String 有沒有 length()方法

String 類的常用方法都有那些?

在使用 HashMap 的時候,用 String 做 key 有什么好處?

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

Date相關

包裝類相關

自動裝箱與拆箱

int 和 Integer 有什么區(qū)別

Integer a= 127 與 Integer b = 127相等嗎

常用工具類庫

單元測試

日志

Java基礎124道面試答案

需要獲取面試專題答案的小伙伴可關注公眾號“行動緩慢的程序猿”獲取

JVM

說一下 JVM 的主要組成部分及其作用?

說一下 JVM 運行時數(shù)據(jù)區(qū)

說一下堆棧的區(qū)別?

隊列和棧是什么?有什么區(qū)別?

對象的創(chuàng)建

為對象分配內(nèi)存

處理并發(fā)安全問題

對象的訪問定位

句柄訪問

直接指針

內(nèi)存溢出異常

Java會存在內(nèi)存泄漏嗎?請簡單描述垃圾收集器

簡述Java垃圾回收機制

GC是什么?為什么要GC

垃圾回收的優(yōu)點和原理。并考慮2種回收機制

垃圾回收器的基本原理是什么?垃圾回收器可以馬上回收內(nèi)存嗎?有什么辦法主動通知虛擬機進行垃圾回收?

Java 中都有哪些引用類型?

怎么判斷對象是否可以被回收?

在Java中,對象什么時候可以被垃圾回收

JVM中的永久代中會發(fā)生垃圾回收嗎

說一下 JVM 有哪些垃圾回收算法?

標記-清除算法

復制算法

標記-整理算法

分代收集算法

說一下 JVM 有哪些垃圾回收器?

詳細介紹一下 CMS 垃圾回收器?

新生代垃圾回收器和老年代垃圾回收器都有哪些?有什么區(qū)別?

簡述分代垃圾回收器是怎么工作的?

簡述java內(nèi)存分配與回收策率以及Minor GC和Major GC

對象優(yōu)先在 Eden 區(qū)分配

大對象直接進入老年代

長期存活對象將進入老年代

簡述java類加載機制?

描述一下JVM加載Class文件的原理機制

什么是類加載器,類加載器有哪些?

說一下類裝載的執(zhí)行過程?

什么是雙親委派模型?

說一下 JVM 調(diào)優(yōu)的工具?

常用的 JVM 調(diào)優(yōu)的參數(shù)都有哪些?

JVM 40道面試答案


Spring

Spring概述(10)

什么是spring?

Spring框架的設計目標,設計理念,和核心是什么

Spring的優(yōu)缺點是什么?

Spring有哪些應用場景

Spring由哪些模塊組成?

Spring 框架中都用到了哪些設計模式?

詳細講解一下核心容器(spring context應用上下文) 模塊

Spring框架中有哪些不同類型的事件

Spring 應用程序有哪些不同組件?

使用 Spring 有哪些方式?

Spring控制反轉(zhuǎn)(IOC)(13)

什么是Spring IOC 容器?

控制反轉(zhuǎn)(IoC)有什么作用

IOC的優(yōu)點是什么?

Spring IoC 的實現(xiàn)機制

Spring 的 IoC支持哪些功能

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

Spring 如何設計容器的,BeanFactory和ApplicationContext的關系詳解

ApplicationContext通常的實現(xiàn)是什么?

什么是Spring的依賴注入?

依賴注入的基本原則

依賴注入有什么優(yōu)勢

有哪些不同類型的依賴注入實現(xiàn)方式?

構(gòu)造器依賴注入和 Setter方法注入的區(qū)別

Spring Beans(19)

什么是Spring beans?

一個 Spring Bean 定義 包含什么?

如何給Spring 容器提供配置元數(shù)據(jù)?Spring有幾種配置方式

Spring配置文件包含了哪些信息

Spring基于xml注入bean的幾種方式

你怎樣定義類的作用域?

解釋Spring支持的幾種bean的作用域

Spring框架中的單例bean是線程安全的嗎?

Spring如何處理線程并發(fā)問題?

解釋Spring框架中bean的生命周期

哪些是重要的bean生命周期方法? 你能重載它們嗎?

什么是Spring的內(nèi)部bean?什么是Spring inner beans?

在 Spring中如何注入一個java集合?

什么是bean裝配?

什么是bean的自動裝配?

解釋不同方式的自動裝配,spring 自動裝配 bean 有哪些方式?

使用@Autowired注解自動裝配的過程是怎樣的?

自動裝配有哪些局限性?

你可以在Spring中注入一個null 和一個空字符串嗎?

Spring注解(8)

什么是基于Java的Spring注解配置? 給一些注解的例子

怎樣開啟注解裝配?

@Component, @Controller, @Repository, @Service 有何區(qū)別?

@Required 注解有什么作用

@Autowired 注解有什么作用

@Autowired和@Resource之間的區(qū)別

@Qualifier 注解有什么作用

@RequestMapping 注解有什么用?

Spring數(shù)據(jù)訪問(14)

解釋對象/關系映射集成模塊

在Spring框架中如何更有效地使用JDBC?

解釋JDBC抽象和DAO模塊

spring DAO 有什么用?

spring JDBC API 中存在哪些類?

JdbcTemplate是什么

使用Spring通過什么方式訪問Hibernate?使用 Spring 訪問 Hibernate 的方法有哪些?

如何通過HibernateDaoSupport將Spring和Hibernate結(jié)合起來?

Spring支持的事務管理類型, spring 事務實現(xiàn)方式有哪些?

Spring事務的實現(xiàn)方式和實現(xiàn)原理

說一下Spring的事務傳播行為

說一下 spring 的事務隔離?

Spring框架的事務管理有哪些優(yōu)點?

你更傾向用那種事務管理類型?

Spring面向切面編程(AOP)(13)

什么是AOP

Spring AOP and AspectJ AOP 有什么區(qū)別?AOP 有哪些實現(xiàn)方式?

JDK動態(tài)代理和CGLIB動態(tài)代理的區(qū)別

如何理解 Spring 中的代理?

解釋一下Spring AOP里面的幾個名詞

Spring在運行時通知對象

Spring只支持方法級別的連接點

在Spring AOP 中,關注點和橫切關注的區(qū)別是什么?在 spring aop 中 concern 和 cross-cutting concern 的不同之處

Spring通知有哪些類型?

什么是切面 Aspect?

解釋基于XML Schema方式的切面實現(xiàn)

解釋基于注解的切面實現(xiàn)

有幾種不同類型的自動代理?


SpringBoot

什么是 Spring Boot?

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

Spring Boot 的核心注解是哪個?它主要由哪幾個注解組成的?

什么是 JavaConfig?

Spring Boot 自動配置原理是什么?

你如何理解 Spring Boot 配置加載順序?

什么是 YAML?

YAML 配置的優(yōu)勢在哪里 ?

Spring Boot 是否可以使用 XML 配置 ?

spring boot 核心配置文件是什么?bootstrap.properties?和?application.properties?有何區(qū)別 ?

什么是 Spring Profiles?

如何在自定義端口上運行 Spring Boot 應用程序?

如何實現(xiàn) Spring Boot 應用程序的安全性?

比較一下 Spring Security 和 Shiro 各自的優(yōu)缺點 ?

Spring Boot 中如何解決跨域問題 ?

什么是 CSRF 攻擊?

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

如何在 Spring Boot 中禁用 Actuator 端點安全性?

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

什么是 WebSockets?

什么是 Spring Data ?

什么是 Spring Batch?

什么是 FreeMarker 模板?

如何集成 Spring Boot 和 ActiveMQ?

什么是 Apache Kafka?

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

前后端分離,如何維護接口文檔 ?

如何重新加載 Spring Boot 上的更改,而無需重新啟動服務器?Spring Boot項目如何熱部署?

您使用了哪些 starter maven 依賴項?

Spring Boot 中的 starter 到底是什么 ?

spring-boot-starter-parent 有什么用 ?

Spring Boot 打成的 jar 和普通的 jar 有什么區(qū)別 ?

運行 Spring Boot 有哪幾種方式?

Spring Boot 需要獨立的容器運行嗎?

開啟 Spring Boot 特性有哪幾種方式?

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

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

微服務中如何實現(xiàn) session 共享 ?

Spring Boot 中如何實現(xiàn)定時任務 ?

SpringBoot 40道面試答案

Spring Cloud

為什么需要學習Spring Cloud

什么是Spring Cloud

設計目標與優(yōu)缺點

設計目標

優(yōu)缺點

Spring Cloud發(fā)展前景

整體架構(gòu)

主要項目

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的區(qū)別?

使用 Spring Boot 開發(fā)分布式微服務時,我們面臨以下問題

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

Spring Cloud 和dubbo區(qū)別?

負載平衡的意義什么?

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

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

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

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

Spring Cloud斷路器的作用

什么是Spring Cloud Config?

什么是Spring Cloud Gateway?

SpringCloud 34道面試答案

MyBatis

MyBatis是什么?

ORM是什么

為什么說Mybatis是半自動ORM映射工具?它與全自動的區(qū)別在哪里?

傳統(tǒng)JDBC開發(fā)存在的問題

JDBC編程有哪些不足之處,MyBatis是如何解決這些問題的?

Mybatis優(yōu)缺點

MyBatis框架適用場景

Hibernate 和 MyBatis 的區(qū)別

MyBatis的解析和運行原理

MyBatis編程步驟是什么樣的?

請說說MyBatis的工作原理

MyBatis的功能架構(gòu)是怎樣的

MyBatis的框架架構(gòu)設計是怎么樣的

Mybatis都有哪些Executor執(zhí)行器?它們之間的區(qū)別是什么?

Mybatis中如何指定使用哪一種Executor執(zhí)行器?

Mybatis是否支持延遲加載?如果支持,它的實現(xiàn)原理是什么?

#{}和${}的區(qū)別

模糊查詢like語句該怎么寫

在mapper中如何傳遞多個參數(shù)

Mybatis如何執(zhí)行批量操作

如何獲取生成的主鍵

當實體類中的屬性名和表中的字段名不一樣 ,怎么辦

Mapper 編寫有哪幾種方式?

什么是MyBatis的接口綁定?有哪些實現(xiàn)方式?

使用MyBatis的mapper接口調(diào)用時有哪些要求?

最佳實踐中,通常一個Xml映射文件,都會寫一個Dao接口與之對應,請問,這個Dao接口的工作原理是什么?Dao接口里的方法,參數(shù)不同時,方法能重載嗎

Mybatis的Xml映射文件中,不同的Xml映射文件,id是否可以重復?

簡述Mybatis的Xml映射文件和Mybatis內(nèi)部數(shù)據(jù)結(jié)構(gòu)之間的映射關系?

Mybatis是如何將sql執(zhí)行結(jié)果封裝為目標對象并返回的?都有哪些映射形式?

Xml映射文件中,除了常見的select|insert|updae|delete標簽之外,還有哪些標簽?

Mybatis映射文件中,如果A標簽通過include引用了B標簽的內(nèi)容,請問,B標簽能否定義在A標簽的后面,還是說必須定義在A標簽的前面?

MyBatis實現(xiàn)一對一,一對多有幾種方式,怎么操作的?

Mybatis是否可以映射Enum枚舉類?

Mybatis動態(tài)sql是做什么的?都有哪些動態(tài)sql?能簡述一下動態(tài)sql的執(zhí)行原理不?

Mybatis是如何進行分頁的?分頁插件的原理是什么?

簡述Mybatis的插件運行原理,以及如何編寫一個插件。

Mybatis的一級、二級緩存

Mybatis 面試答案

需要獲取面試專題答案的小伙伴可關注公眾號“行動緩慢的程序猿”獲取

Tomcat

Tomcat是什么?

Tomcat的缺省端口是多少,怎么修改

tomcat 有哪幾種Connector 運行模式(優(yōu)化)?

Tomcat有幾種部署方式?

tomcat容器是如何創(chuàng)建servlet類實例?用到了什么原理?

Tomcat工作模式

Tomcat頂層架構(gòu)

Tomcat頂層架構(gòu)小結(jié)

Connector和Container的微妙關系

Container架構(gòu)分析

Container如何處理請求的

Tomcat面試答案

ZooKeeper

ZooKeeper 是什么?

ZooKeeper 提供了什么?

Zookeeper 文件系統(tǒng)

Zookeeper 怎么保證主從節(jié)點的狀態(tài)同步?

四種類型的數(shù)據(jù)節(jié)點 Znode

Zookeeper Watcher 機制 -- 數(shù)據(jù)變更通知

客戶端注冊 Watcher 實現(xiàn)

服務端處理 Watcher 實現(xiàn)

客戶端回調(diào) Watcher

ACL 權(quán)限控制機制

Chroot 特性

會話管理

服務器角色

Zookeeper 下 Server 工作狀態(tài)

數(shù)據(jù)同步

zookeeper 是如何保證事務的順序一致性的?

分布式集群中為什么會有 Master主節(jié)點?

zk 節(jié)點宕機如何處理?

zookeeper 負載均衡和 nginx 負載均衡區(qū)別

Zookeeper 有哪幾種幾種部署模式?

集群最少要幾臺機器,集群規(guī)則是怎樣的?集群中有 3 臺服務器,其中一個節(jié)點宕機,這個時候 Zookeeper 還可以使用嗎?

集群支持動態(tài)添加機器嗎?

Zookeeper 對節(jié)點的 watch 監(jiān)聽通知是永久的嗎?為什么不是永久的?

Zookeeper 的 java 客戶端都有哪些?

chubby 是什么,和 zookeeper 比你怎么看?

說幾個 zookeeper 常用的命令。

ZAB 和 Paxos 算法的聯(lián)系與區(qū)別?

Zookeeper 的典型應用場景

Zookeeper 都有哪些功能?

說一下 Zookeeper 的通知機制?

Zookeeper 和 Dubbo 的關系?

Zookeeper 面試答案

Netty

Netty 是什么?

Netty 的特點是什么?

Netty 的優(yōu)勢有哪些?

Netty 的應用場景有哪些?

Netty 高性能表現(xiàn)在哪些方面?

BIO、NIO和AIO的區(qū)別?

NIO的組成?

Netty的線程模型?

TCP 粘包/拆包的原因及解決方法?

什么是 Netty 的零拷貝?

Netty 中有哪種重要組件?

Netty 發(fā)送消息有幾種方式?

默認情況 Netty 起多少線程?何時啟動?

了解哪幾種序列化協(xié)議?

如何選擇序列化協(xié)議?

Netty 支持哪些心跳類型設置?

Netty 和 Tomcat 的區(qū)別?

NIOEventLoopGroup源碼?

JDK原生NIO程序的問題

Netty的特點

Netty常見使用場景

I/O模型

阻塞I/O

I/O復用模型

基于buffer

線程模型

事件驅(qū)動模型

Reactor線程模型

Netty線程模型

異步處理

Bootstrap、ServerBootstrap

Future、ChannelFuture

Channel

Selector

NioEventLoop

NioEventLoopGroup

ChannelHandler

ChannelHandlerContext

ChannelPipline

Netty 面試答案

硬核資料:關注即私信或(點擊獲取)可領取行業(yè)經(jīng)典書籍PDF。

技術互助:技術群大佬指點迷津,你的問題可能不是問題,求資源在(技術群)里喊一聲。

面試題庫:由P8大佬們共同投稿,熱乎的大廠面試真題,持續(xù)更新中。(點擊獲取

知識體系:含編程語言、算法、大數(shù)據(jù)生態(tài)圈組件(Mysql、Hive、Spark、Flink)、數(shù)據(jù)倉庫

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

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

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