一面
- 自我介紹
- 介紹一下項目
- Exception && Error
- synchronized關鍵字static修飾和沒有static修飾
- 比如synchronized修飾方法,讓循環輸出1-10,new兩個類,調用該線程
- 作用域不同,static修飾指同步類,輸出兩次1-10
- 非static修飾,是同步局部變量,不能確定結果
- final修飾字段,方法,類
- 字段不可變
- 方法不可override
- 類不能被繼承
- String,StringBuilder,StringBuffer
- String不可變,源碼是用final修飾的private數組,同時方法等沒改變數組的值
- StringBuilder,StringBuffer都可變,StringBuffer線程安全
- ArrayList和LinkedList
- 同:實現List接口
- 異:ArrayList查 O(1),增刪 O(n)
- LinkedList查 O(n),增刪 O(1)
- 知不知道Dequeue?
- 實現最小棧GetMin()
- leetcode原題 155.Min Stack
Q: Exception && Error
[外鏈圖片轉存失敗,源站可能有防盜鏈機制,建議將圖片保存下來直接上傳(img-wRq1Vj0T-1588923946285)(http://p9fh1pach.bkt.clouddn.com/20160603151809323.jpeg)]
A: Error和Exception都繼承自Throwable;
Exception:
RuntimeException 類及其子類表示“JVM 常用操作”引發的錯誤
- 可以是可被控制(checked)或者不可控制(unchecked);
- unchecked exception(非檢查異常): 運行時異常,比如常見的NullPointerException、IndexOutOfBoundsException。對於運行時異常,java編譯器不要求必須進行異常捕獲處理或者拋出聲明,由程序員自行決定。
- checked exception(檢查異常,編譯異常): 非運行時異常,java編譯器強制程序員必須進行捕獲處理,比如常見的IOExeption和SQLException。對於非運行時異常如果不進行捕獲或者拋出聲明處理,編譯都不會通過。
- 表示一個由程序員導致的錯誤;
- 應該在應用程序級被處理;
Error:
大多數錯誤與代碼編寫者執行的操作無關,而表示代碼運行時 JVM(Java 虛擬機)出現的問題。
- 總是不可控制的(unchecked);
- 經常用來表示系統錯誤或者底層資源錯誤;
- 如果可能的話,應該在系統級被捕捉;
二面
- 自我介紹
- 項目介紹比較詳細
- 問了下熟悉的技術