【重点】Java大厂面试10个知识点汇总
生活随笔
收集整理的這篇文章主要介紹了
【重点】Java大厂面试10个知识点汇总
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
本文收錄在豬哥GitHub:https://github.com/pig6/Java 中,本項目收集一線大廠面試、實戰(zhàn)、Java學(xué)習(xí)路線等。
本篇筆記是我五年來的工作學(xué)習(xí)面試經(jīng)驗&記錄,希望對大家有一些幫助
一、java基礎(chǔ)
- Object類的所有方法:getClass hashCode equals clone toString notify notifyAll wait finalize
- 八種基本數(shù)據(jù)類型&取值范圍
- 自動拆裝箱&包裝類型的緩存機制
- ThreadLocal 理解String&不可變性 StringBuffer StringBuilder源碼
- ArrayList LinkedList HashMap(重點,可以花一天時間徹底掌握) LinkedHashMap TreeMap HashSet LinkedHashSet TreeSet源碼
- 異常體系結(jié)構(gòu)
- Java8:理解函數(shù)式編程 流式操作 CompletableFuture
二、并發(fā)編程
必考,高并發(fā)的解決必要手段,對于juc以及線程模型的演進(jìn)過程的掌握非常重要
- 理解并發(fā)與并行
- 線程池的原理:理解每個參數(shù)
- Thread Runnable Callable
- AQS(重要:常常會配合synchronized來說) Condition
- Lock:ReentrantLock ReentrantReadWriteLock
- Semaphore CountDownLatch CyclicBarrier
- 各種Atomic
- ConcurrentHashMap BlockingQueue CopyOnWriteArrayList
- Executors
- 線程的狀態(tài)轉(zhuǎn)換:wait sleep notify notifyAll join park
- 停止線程的方法
- 線程模型:理解BIO、NIO(重點)、AIO、了解netty
- 并發(fā)包就那些東西,掌握AQS之后其他的很快就打通了,所以不用
三、jvm
《深入理解java虛擬機》沒事就看一遍,每次都會有新的理解
- jvm內(nèi)存結(jié)構(gòu)
- 常用調(diào)優(yōu)參數(shù)
- gc算法
- gc的工具:CMS&G1重點&ZGC
- java內(nèi)存模型:
- 可見性、原子性、順序性、happens-before、內(nèi)存屏障、volatile、final
- synchronized(對象頭):偏向鎖->輕量級鎖->重量級鎖、monitor、鎖優(yōu)化、鎖消除、鎖粗化、自旋鎖、可重入鎖
- 常用工具以及命令
- 類加載過程
- 對象創(chuàng)建過程
- fullGC的排查思路
- 工具:jps, jstack, jmap、jstat, jconsole, jinfo, jhat, javap, Arthas
四、設(shè)計模式
- 創(chuàng)建型:單例模式、抽象工廠模式、建造者模式、工廠模式、原型模式。
- 結(jié)構(gòu)型模式:適配器模式、橋接模式、裝飾模式、組合模式、外觀模式、享元模式、代理模式。
- 行為型模式:模版方法模式、命令模式、迭代器模式、觀察者模式、中介者模式、備忘錄模式、解釋器模式(Interpreter模式)、狀態(tài)模式、策略模式、職責(zé)鏈模式(責(zé)任鏈模式)、訪問者模式。
五、mysql
下面列出來的全是重點
- 常用sql以及內(nèi)置函數(shù)
- 索引
- hash索引
- b+樹的索引
- 聚集索引&非聚集索引
- 回表
- 聯(lián)合索引:最左前綴&覆蓋索引&索引下沉
- 事務(wù)&隔離級別&實現(xiàn)原理:readview undolog redolog mvcc
- 鎖的使用&鎖算法&行鎖&表鎖&樂觀鎖&悲觀鎖
- 連接查詢的原理(算法)
- binlog&使用場景
- 分庫分表:垂直&水平
- 工具:explain
六、redis
《redis的設(shè)計與實現(xiàn)》看完這本書就行了,深入淺出,很快就可以看完和掌握,直接搞定redis
- 熟練五種類型對象&適用場景:字符串 列表 哈希 集合 有序集合
- 了解底層數(shù)據(jù)結(jié)構(gòu):SDS 鏈表 字典 跳躍表 整數(shù)集合 壓縮列表
- 淘汰策略
- RDB&AOF
- 復(fù)制功能的實現(xiàn)
- Sentinel&集群的結(jié)構(gòu)
- 發(fā)布訂閱&事務(wù)
- 分布式鎖
- 常見問題&解決方案:緩存擊穿,緩存穿透,緩存雪崩
七、web
感覺很少有人問了,應(yīng)屆生可能問的多些
- 三次握手與四次揮手
- http/1.0 http/1.1 http/2之間的區(qū)別
- http中 get和post區(qū)別
- 理解https加密過程
- forward&redirect的區(qū)別
- CSRF&XSS攻擊與防范
- 常見的web請求返回的狀態(tài)碼
- cookie&session
- Servlet&filter&listener
- DNS
- tomcat&nginx區(qū)別
八、spring
說實話問到我的不多,感覺掌握下面幾個足夠了
- IOC&DI&AOP
- 掌握常用注解
- 如何解決循環(huán)依賴
- 事務(wù)傳播機制
- 事務(wù)失效場景
- springMVC的理解
- springboot的理解
九、分布式&高可用
平時多注意怎么處理好程序可能遇到的極端情況,保證服務(wù)的高可用
- zookeeper
- 理解使用:文件系統(tǒng)+監(jiān)聽器
- 了解選舉算法&分布式鎖的實現(xiàn)
- mq(重要,有時候面試官直接一串mq連環(huán)炮就可以決定要不要一個人了)
- 作用:異步 解耦 削峰
- kafka(之后會就kafka寫一個系列)
- 設(shè)計架構(gòu)
- 如何保證高可用
- 如何保證高吞吐
- 如何實現(xiàn)局部有序
- 重復(fù)消費的問題
- 延遲消息
- 了解dubbo&spring cloud&Consul工作流程
- 限流&熔斷:Hystrix/Resilience4j(高可用的必須中間件)
- 鏈路追蹤(了解實現(xiàn)原理)
十、算法&數(shù)據(jù)結(jié)構(gòu)
常刷leetcode
- 棧、隊列、鏈表、數(shù)組、哈希表、樹、堆、圖
- 快排&二分&分治&遞歸&滑動窗口/雙指針&BFS&DFS
十一、工具
- git多分支協(xié)作流程
- maven常用命令&生命周期
- linux常用命令:tail grep awk sed等等
備注
- 看著確實很絕望,up本人也是
- 個人難免有盲區(qū),歡迎評論區(qū)指正&補充,會持續(xù)更新
- but
- 種一棵樹,最好的時間是十年前,其次是現(xiàn)在,大家共勉
總結(jié)
以上是生活随笔為你收集整理的【重点】Java大厂面试10个知识点汇总的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Pycharm、Idea、Goland
- 下一篇: 互联网大厂必学技能:压力测试!