天天看點

java 入門面試題

起因

  • 焦慮。每次自己想跳槽的時候,内心總是擔憂着那些面試題怎麼解答。
  • 很多問題在實際工作中并不會遇到,沒有實際的解決問題經驗,看過也記不住。
  • 假如我明年需要換工作,那現在把下次的面試準備工作,拆分、融入到平時的每天中,會不會取得更滿意的offer?

目标

  • 收集網上各種經典的 java 面試題
  • 做出答案,分享出去,和猿友讨論,不斷進步
  • 擴大知識圖譜,紮實基礎,梳理知識脈絡
  • 避免下次面試時的準備工作
  • 鍛煉寫文章的能力

Java 面試題

基礎:

JDK 和 JRE 的差別

== 和 equals 的差別

基本類型和包裝類對象使用 == 和 equals進行比較的結果?

什麼是裝箱?什麼是拆箱?裝箱和拆箱的執行過程?常見問題?

hashCode()相同,equals() 也一定為 true嗎?

final 在 java 中的作用

final finally finalize()差別

finally語句塊一定執行嗎?

final 與 static 的差別

return 與 finally 的執行順序對傳回值的影響

String對象中的replace和replaceAll的差別?

Math.round(-1.5) 等于多少?

String 屬于基礎的資料類型嗎?

java 中操作字元串都有哪些類?它們之間有什麼差別?

如何将字元串反轉?

String 類的常用方法

普通類和抽象類有哪些差別?

抽象類必須要有抽象方法嗎?

抽象類能使用 final 修飾嗎?

接口和抽象類有什麼差別?

Java4種通路修飾符權限的差別?

Java中的 << << >>> 是什麼?

javap 指令

throw 和 throws 的差別?

try-catch-finally 中哪個部分可以省略?

常見的異常類有哪些?

IO:

java 中 IO 流有哪些?

BIO、NIO、AIO 有什麼差別?

什麼是JAVA内部類?

nio中的Files類常用方法

集合:

java 有哪些常用容器(集合)?

Collection 和 Collections 有什麼差別?

List、Set、Map 之間的差別是什麼?

HashMap 和 Hashtable 有什麼差別?

使用 HashMap 還是 TreeMap?

HashMap 的實作原理

HashSet 的實作原理

ArrayList 和 LinkedList 的差別

如何實作數組和 List 之間的轉換?

ArrayList 和 Vector 的差別是什麼?

Array 和 ArrayList 有何差別?

在 Queue 中 add() 和 offer()有什麼差別?

Queue 中 remove() 和 poll()有什麼差別?

在 Queue 中 element() 和 peek()有什麼差別?

哪些集合類是線程安全的?

疊代器 Iterator 是什麼?

Iterator 怎麼使用?有什麼特點?

Iterator 和 ListIterator 有什麼差別

怎麼確定一個集合不能被修改?

并發:

并行和并發有什麼差別?

線程和程序的差別?

守護線程是什麼?

建立線程有哪些方式?

sleep() 和 wait() 有什麼差別?

Runnable 和 Callable 有什麼差別?

線程有哪些狀态?

notify() 和 notifyAll() 有什麼差別?

JDK1.8 建立線程池有哪幾種方式?

線程池有哪些狀态?

線程池中 submit() 和 execute()方法有什麼差別?

java 程式中怎麼保證多線程的運作安全?

多線程鎖的更新原理是什麼?

什麼是死鎖?

怎麼防止死鎖?

ThreadLocal 是什麼?有哪些使用場景?

synchronized 底層實作原理?

synchronized 和 volatile 的差別是什麼?

synchronized 和 Lock 有什麼差別?

synchronized 和 ReentrantLock 差別是什麼?

ReadWriteLock 如何使用?

JDK 中 Atomic 開頭的類實作原子性的原理是什麼?

介紹一下 ForkJoinPool

LongAdder 與AtomicLong有什麼差別?

反射:

什麼是反射?

動态代理是什麼?應用場景?

怎麼實作動态代理?

序列化:

什麼是 java 序列化?什麼情況下需要序列化?

克隆:

什麼場景要對象克隆?

如何實作對象克隆?

深拷貝和淺拷貝差別是什麼?

web:

jsp 和 servlet 有什麼差別?

jsp 有哪些内置對象?作用分别是什麼?

jsp 的 4 種作用域?

session 和 cookie 有什麼差別?

session 的工作原理?

用戶端禁止 cookie,session 還能用嗎?

http 響應碼 301 和 302 代表的是什麼?有什麼差別?

forward 和 redirect 的差別?

tcp 和 udp 的差別?

tcp 為什麼要三次握手,兩次不行嗎?為什麼?

tcp 粘包是怎麼産生的?

OSI 的七層模型有哪些?

get 和 post 請求有哪些差別?

如何實作跨域?

JSONP 實作原理?

安全:

如何避免 sql 注入?

什麼是 XSS 攻擊,如何避免?

什麼是 CSRF 攻擊,如何避免?

設計模式:

常用的設計模式?

簡單工廠和抽象工廠有什麼差別?

Spring架構:

為什麼要使用 spring 架構?

什麼是 aop?

什麼是 ioc?

spring 有哪些主要子產品?

spring 常用的注入方式有哪些?

spring 中的 bean 是線程安全的嗎?

spring 支援幾種 bean 的作用域?

spring 自動裝配 bean 有哪些方式?

spring 事務實作方式有哪些?

介紹一下 spring mvc

spring mvc 運作流程?

spring mvc 有哪些元件?

@RequestMapping 的作用是什麼?

@Autowired 的作用是什麼?

什麼是 spring boot?為什麼要用?

spring boot 核心配置檔案是什麼?

spring boot 有哪些方式可以實作熱部署?

【Java面試題與答案】整理推薦

  • 基礎與文法
  • 集合
  • 網絡程式設計
  • 并發程式設計
  • Web
  • 安全
  • 設計模式
  • 架構
  • 算法與資料結構
  • 異常
  • 檔案解析與生成
  • Linux
  • MySQL
  • Oracle
  • Redis
  • Dubbo

繼續閱讀