大廠面試系列(十三):Java基礎
Java基礎
- hashmap1.7跟1.8?優化點?紅黑樹化爲何是8?退化爲何?
- dp怎麼玩?回溯怎麼玩?遞歸怎麼玩?stack能解決啥問題?fifo能解決啥問題?dfs怎麼玩?bfs怎麼玩?
- 雙親委派模型。JDBC和雙親委派模型關係
- TCP四次揮手,TIME_WAIT發生在哪一方 TIME_WAIT過多如何處理
- HashMap底層結構 put操做講一下,HashMap、HashMap如何保證線程安全、ConcurrentHashMap
- 從ConcurrentHashMap一路問到鎖&鎖優化->LongAdder->僞共享->緩存行填充->cas等諸多技術細節;
- 觀察者模式與中介者模式有什麼區別?
- 手寫一個基於懶漢式的雙重檢測的單例。
- HashMap相關?爲何要引入紅黑樹? 如何在紅黑樹中插入一個節點。 鏈表是如何轉換爲紅黑樹的?
- 對ConcurrentHashMap的理解,⽐如在什麼地⽅會涉及到線程安全問題以及ConcurrentHashMap是如何解決的?
- Http請求的徹底過程
- HashMap擴容的觸發條件是什麼
- HashMap的實現原理,什麼是hash碰撞,怎樣解決hash碰撞?
- mysql 的sql自己沒問題的狀況下,沒走索引緣由
- mysql快照是怎麼實現的
- mysql分頁有什麼優化
- 講一下Http,HTTP安全不?HTTPS如何解決的?HTTP的數字證書如何認證?TCP與UDP區別?TCP爲何要四次? 爲何TIME_WAIT 等待的時間是 2MSL?已經主動關閉鏈接了爲何還要保持資源一段時間呢? TIME_WAIT 過多有什麼危害?若是已經建⽴了鏈接,可是客戶端忽然出現故障了怎麼辦?保活機制說一下?
- 說一下undolog, redolog MySQL如何保證redo log和binlog的數據是一致的,若是一個sql執行很慢,你能分析一下緣由嗎? 爲何數據庫會選錯了索引
- 對樂觀鎖和悲觀鎖的理解;
- hashMap什麼狀況下會出現循環鏈表?concurrentHashMap寫的時候用什麼鎖?
- 定義Integer x=20 Integer y=200 在內存裏是個什麼過程? volite關鍵字的原理?它能保證原子性嗎?AtomicInteger底層怎麼實現的?
- threadLocal關鍵字有用過嗎?若是沒有重寫initialValue方法就直接get會怎樣?
- 1.java的基本數據類型與包裝類; 二、final修飾變量類方法; 三、String爲何是不可變的,以及new String(「abc」)建立了幾個對象; 四、String、StringBuffer、以及StringBuilder的區別; 五、static修飾變量,方法,代碼塊; 六、重寫跟重載的區別; 七、接口跟抽象類; 八、反射、繼承、枚舉、異常等知識點; 九、爲何要重寫hashcode和equals方法,以及hashcode相同equals是否相同
- 集合相關 一、ArrayList的底層實現、擴容過程、add過程、Fail-Fast機制; 二、ArrayList與Linkedlist、Vectot的區別; 三、如何得到一個線程安全的List; 四、CopyOnWriteArrayList是如何實現線程安全的; 五、Linkedlist的底層實現,以及如何使用LinkedList實現一個LRU; 六、TreeSet、HashSet、LinkedHashSet的底層實現以及之間的區別; 七、PriorityQueue、LinkedBlockingQueue、ArrayBlockingQueue的實現以及區別; 八、HashMap的底層實現,擴容過程,達到閾值必定會擴容嗎、put過程、樹化過程,如何肯定負載因子、以及爲何線程不安全和1.8作了哪些優化; 九、HashMap與HashTable的區別,如何得到一個線程安全的Map; 十、ConcurrentHashMap爲何是線程安全的,以及1.8作了哪些優化; 十一、LinkedHashMap的底層實現,以及如何實現LRU; 十二、TreeMap的底層實現; 1三、迭代器的實現;
-
- 面向對象的特色有哪些? 2. 列舉幾個java經常使用的package及其做用 3. 接口和抽象類有什麼聯繫和區別 4. 重載和重寫有什麼區別 5. java有哪些基本數據類型? 6. Java支持的數據類型有哪些?什麼是自動拆裝箱? 7. int 和 Integer 有什麼區別 8. 數組有沒有length()方法?String有沒有length()方法? 9. Java中符號>>和>>>有什麼區別? 10. Java類的實例化順序 11. 什麼是值傳遞和引用傳遞 (1)值傳遞是對基本型變量而言的,傳遞的是該變量的一個副本,改變副本不影響原變量. (2)引用傳遞通常是對於對象型變量而言的,傳遞的是該對象地址的一個副本, 並非原對象自己 。 12. String能被繼承嗎?爲何? 13. String和StringBuilder、StringBuffer的區別?
- 深拷貝和淺拷貝。
- Integer a1 = new Integer(2); Integer a2 = new Integer(2); a1.equals(a2)的結果??
- 爲何在重寫equals方法的時候要重寫hashcode的方法?
- HTTP 1.0 和 HTTP 2.0 的區別 HTTP 2.0 作了哪些優化
- JDK中偏向鎖、自旋鎖、輕量級鎖、重量級鎖的區別? JDK鎖自旋的自旋閾值瞭解嗎?如何調整自旋次數?
- 若是相等hash對象太多,那麼怎麼解決迭代的影響?
- 服務器CPU數量及線程池數量的關係?
- 一億條記錄,內存中確定放不下,要怎麼找出其中最大的十條?
- 爲何要用讀寫鎖而不用synchronized這種同步鎖?
- 事務隔離性的理解,爲何會有髒讀,可重複讀,提交讀等。
- 瞭解哪些設計模式,6個設計原則分別是什麼?每種設計原則體現的設計模式是哪一個?
- 如何實現session共享?用Redis該如何實現?
- 常見的stackoverflowexception,outofmemoryexception是怎麼回事;
- top和jstack命令用過沒,jstack命令的nid是什麼意思,怎麼查看java某個進程的線程?
- ABA怎麼發生的,怎麼解決ABA問題
- Mysql對聯合索引有優化麼?會自動調整順序麼?哪一個版本開始優化?
- 什麼是死鎖? 2.死鎖產生的條件? 3.怎樣避免死鎖?
- TCP三次握手和四次揮手的流程,爲何斷開鏈接要4次,若是握手只有兩次,會出現什麼 .TIME_WAIT和CLOSE_WAIT的區別 .說說你知道的幾種HTTP響應碼
歡迎搜索關注本人與朋友共同開發的微信面經小程序【大廠面試助手】和公衆號【微瞰技術】
歡迎關注本站公眾號,獲取更多信息