天天看點

Java後端筆試面試問題小彙總

時間:2020/4/25

前言:基礎、架構、網絡、JDBC程式設計、XML程式設計、計算機基礎、資料結構與算法、設計模式、

一、基礎

1Java基礎

Java和PHP的差別

Java如何支援正規表達式操作、正規表達式及其用途

Java與JavaScript的比較

&和&&的差別

String和stringBuffer的差別、stringBuffer與stringBuilder的差別

基本的資料類型

JDK和JRE的差別、JVM概念與作用

反射的實作過程和作用

2面向對象

構造函數、方法覆寫于方法重載、重載和重寫的差別

面向對象的特征:抽象、繼承、封裝、多态

接口和抽象類的差別、類和對象的差別

Static關鍵字的意思、private

3線程

線程的基本狀态以及狀态之間的關系

線程池的概念以及優勢、有幾種、如何實作

同步和異步

線程同步和線程排程

建立線程的方式:

生産者消費者模式

4鎖:Java如何確定多個線程通路多個資源,同時不導緻死鎖;死鎖的概念

5垃圾收集GC:GC概念、原因、算法;記憶體洩漏

6IO:Java有幾種類型的流、異常、日志

二、架構

1spring

自動配置設定方式

Bean的作用域、生命周期

IOC和DI、DI如何實作;IOC和AOP概念、事務管理

beanFactory和ApplicationContext的差別

2mybatis

鎖機制的作用、悲觀鎖和樂觀鎖機制

3springMVC

工作原理、運作機制、優點

springMVC與springboot的差別

三、網絡

JSP的内置對象和其作用

JSP與servlet的相同點與不同點

Web.xml檔案的配置内容

監聽器listener(application、session、request)、過濾器filter

DAO模式

轉發和重定向的差別、get與post的差別、cookie與session

XML概念

四、JDBC

1SQL基礎

2JDBC基礎

基礎映射、資料庫優化方法、三種範式;資料庫樂觀鎖和悲觀鎖;資料庫的隔離級别

五、計算機基礎

1計算機網絡

TCP的4次握手

TCP為什麼建立連接配接、為什麼可靠、連接配接和釋放的過程(三次握手、四次揮手)

DNS的尋址過程、負載均衡和反向代理模式的優缺點

2作業系統

線程和程序的概念與差別

Socket程式設計的三種通信模型:BIO、NIO、AIO

記憶體碎片的處理、頁式存儲;如何提高并發性、死鎖的産生和解決

六、資料結構與算法

1二叉樹、哈希表

Java中hashmap

treeMap和treeSet在排序時如何比較元素

如何列印二叉樹每層的節點,深度,層序周遊

二叉樹任意兩個節點之間路徑的最大長度

B+樹和B-樹;二叉樹Z字型周遊

2連結清單、數組、堆和棧、隊

3算法:LRU算法、壓縮URL

七、設計模式

Java中的23種設計模式:大體分為三類