Java面試筆記(強烈推薦)

    本文是我自己在秋招復習時的讀書筆記,整理的知識點,也是爲了防止忘記,尊重勞動成果,轉載註明出處哦!如果你也喜歡,那就點個小心心,文末讚賞一杯豆奶吧,嘻嘻。 讓我們共同成長吧……


第一部分:

目錄

一、算法 

    劍指 Offer 題解

        目錄根據原書第二版進行編排,代碼和原書有所不同,儘量比原書更簡潔。

    Leetcode 題解

        對題目做了一個大致分類,並對每種題型的解題思路做了總結。

    算法

        排序、並查集、棧和隊列、紅黑樹、散列表。

二、操作系統 

    計算機操作系統

        進程管理、內存管理、設備管理、鏈接。

    Linux

        基本實現原理以及基本操作。

三、網絡

    計算機網絡

        物理層、鏈路層、網絡層、運輸層、應用層。

    HTTP

        方法、狀態碼、Cookie、緩存、連接管理、HTTPs、HTTP 2.0。

    Socket

        I/O 模型、I/O 多路複用。

四、面向對象

    設計模式

        實現了 Gof 的 23 種設計模式。

    面向對象思想

        三大原則(繼承、封裝、多態)、類圖、設計原則。

五、數據庫

    數據庫系統原理

        事務、鎖、隔離級別、MVCC、間隙鎖、範式。

    SQL

        SQL 基本語法。

    Leetcode-Database 題解

        Leetcode 上數據庫題目的解題記錄。

    MySQL

        存儲引擎、索引、查詢優化、切分、複製。

    Redis

        五種數據類型、字典和跳躍表數據結構、使用場景、和 Memcache 的比較、淘汰策略、持久化、文件事件的 Reactor 模式、複製。

六、Java

    Java 基礎

        不會涉及很多基本語法介紹,主要是一些實現原理以及關鍵特性。

    Java 容器

        源碼分析:ArrayList、Vector、CopyOnWriteArrayList、LinkedList、HashMap、ConcurrentHashMap、LinkedHashMap、WeekHashMap。

    Java 併發

        線程使用方式、兩種互斥同步方法、線程協作、JUC、線程安全、內存模型、鎖優化。

    Java 虛擬機

        運行時數據區域、垃圾收集、類加載。

    Java I/O

        NIO 的原理以及實例。

七、系統設計 

    系統設計基礎

        性能、伸縮性、擴展性、可用性、安全性

    分佈式

        分佈式鎖、分佈式事務、CAP、BASE、Paxos、Raft

    集羣

        負載均衡、Session 管理

    攻擊技術

        XSS、CSRF、SQL 注入、DDoS

    緩存

        緩存特徵、緩存位置、緩存問題、數據分佈、一致性哈希、LRU、CDN

    消息隊列

        消息處理模型、使用場景、可靠性

八、工具 

    Git

        一些 Git 的使用和概念。

    Docker

        Docker 基本原理。

    正則表達式

        正則表達式基本語法。

    構建工具

        構建工具的基本概念、主流構建工具介紹。

九、編碼實踐 

    重構

        參考 重構 改善既有代碼的設計。

    代碼可讀性

        參考 編寫可讀代碼的藝術。

    代碼風格規範

        Google 開源項目的代碼風格規範。

        第一部分轉自:https://github.com/sjsdfg/Interview-Notebook-PDF,對於java程序員面試來說,是個很好的整理思路的文章,強烈推薦。感謝樓主分享。


第二部分

目錄

一、常用集合

        ArrayList/Vector

        LinkedList

        HashMap

        HashSet

        LinkedHashMap

二、Java 多線程

        多線程中的常見問題

        synchronized 關鍵字原理

        多線程的三大核心

        對鎖的一些認知

        ReentrantLock 實現原理

        ConcurrentHashMap 的實現原理

        如何優雅的使用和理解線程池

        深入理解線程通信

        交替打印奇偶數

三、JVM

        Java 運行時內存劃分

        類加載機制

        OOM 分析

        垃圾回收

        對象的創建與內存分配

        你應該知道的 volatile 關鍵字

四、分佈式相關

        分佈式限流

        基於 Redis 的分佈式鎖

        分佈式緩存設計

        分佈式 ID 生成器

五、常用框架\第三方組件

        Spring Bean 生命週期

        Spring AOP 的實現原理

        Guava 源碼分析(Cache 原理)

六、架構設計

        秒殺系統設計

        秒殺架構實踐

七、DB 相關

        MySQL 索引原理

        SQL 優化

        數據庫水平垂直拆分

八、數據結構與算法

        紅包算法

        二叉樹層序遍歷

        是否爲快樂數字

        鏈表是否有環

        從一個數組中返回兩個值相加等於目標值的下標

        一致性 Hash 算法

        限流算法

        三種方式反向打印單向鏈表

        合併兩個排好序的鏈表

        兩個棧實現隊列

        動手實現一個 LRU cache

        鏈表排序

        數組右移 k 次

九、Netty 相關

        SpringBoot 整合長連接心跳機制

        從線程模型的角度看 Netty 爲什麼是高性能的?

十、附加技能

        TCP/IP 協議

        一個學渣的阿里之路

 

    第二部分轉自:https://github.com/crossoverJie/JCSprout


鏈接:https://www.jianshu.com/p/d58dceab06ae
 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章