摘要:適配器模式將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作。這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,使它們能夠自動(dòng)更新自己。
1、常用設(shè)計(jì)模式
單例模式:懶漢式、餓漢式、雙重校驗(yàn)鎖、靜態(tài)加載,內(nèi)部類(lèi)加載、枚舉類(lèi)加載。保證一個(gè)類(lèi)僅有一個(gè)實(shí)例,并提供一個(gè)訪問(wèn)它的全局訪問(wèn)點(diǎn)。
代理模式:動(dòng)態(tài)代理和靜態(tài)代理,什么時(shí)候使用動(dòng)態(tài)代理。
適配器模式:將一個(gè)類(lèi)的接口轉(zhuǎn)換成客戶希望的另外一個(gè)接口。適配器模式使得原本由于接口不兼容而不能一起工作的那些類(lèi)可以一起工作。
裝飾者模式:動(dòng)態(tài)給類(lèi)加功能。
觀察者模式:有時(shí)被稱(chēng)作發(fā)布/訂閱模式,觀察者模式定義了一種一對(duì)多的依賴(lài)關(guān)系,讓多個(gè)觀察者對(duì)象同時(shí)監(jiān)聽(tīng)某一個(gè)主題對(duì)象。這個(gè)主題對(duì)象在狀態(tài)發(fā)生變化時(shí),會(huì)通知所有觀察者對(duì)象,使它們能夠自動(dòng)更新自己。
策略模式:定義一系列的算法,把它們一個(gè)個(gè)封裝起來(lái), 并且使它們可相互替換。
外觀模式:為子系統(tǒng)中的一組接口提供一個(gè)一致的界面,外觀模式定義了一個(gè)高層接口,這個(gè)接口使得這一子系統(tǒng)更加容易使用。
命令模式:將一個(gè)請(qǐng)求封裝成一個(gè)對(duì)象,從而使您可以用不同的請(qǐng)求對(duì)客戶進(jìn)行參數(shù)化。
創(chuàng)建者模式:將一個(gè)復(fù)雜的構(gòu)建與其表示相分離,使得同樣的構(gòu)建過(guò)程可以創(chuàng)建不同的表示。
抽象工廠模式:提供一個(gè)創(chuàng)建一系列相關(guān)或相互依賴(lài)對(duì)象的接口,而無(wú)需指定它們具體的類(lèi)。
2、基礎(chǔ)知識(shí)
Java基本類(lèi)型哪些,所占字節(jié)和范圍
Set、List、Map的區(qū)別和聯(lián)系
什么時(shí)候使用Hashmap
什么時(shí)候使用Linkedhashmap、Concurrenthashmap、Weakhashmap
哪些集合類(lèi)是線程安全的
為什么Set、List、map不實(shí)現(xiàn)Cloneable和Serializable接口
Concurrenthashmap的實(shí)現(xiàn),1.7和1.8的實(shí)現(xiàn)
Arrays.sort的實(shí)現(xiàn)
什么時(shí)候使用CopyOnArrayList
volatile的使用
synchronied的使用
reentrantlock的實(shí)現(xiàn)和Synchronied的區(qū)別
CAS的實(shí)現(xiàn)原理以及問(wèn)題
AQS的實(shí)現(xiàn)原理
接口和抽象類(lèi)的區(qū)別,什么時(shí)候使用
類(lèi)加載機(jī)制的步驟,每一步做了什么,static和final修改的成員變量的加載時(shí)機(jī)
雙親委派模型
反射機(jī)制:反射動(dòng)態(tài)擦除泛型、反射動(dòng)態(tài)調(diào)用方法等
動(dòng)態(tài)綁定:父類(lèi)引用指向子類(lèi)對(duì)象
JVM內(nèi)存管理機(jī)制:有哪些區(qū)域,每個(gè)區(qū)域做了什么
JVM垃圾回收機(jī)制:垃圾回收算法 垃圾回收器 垃圾回收策略
jvm參數(shù)的設(shè)置和jvm調(diào)優(yōu)
什么情況產(chǎn)生年輕代內(nèi)存溢出、什么情況產(chǎn)生年老代內(nèi)存溢出
內(nèi)部類(lèi):靜態(tài)內(nèi)部類(lèi)和匿名內(nèi)部類(lèi)的使用和區(qū)別
Redis和memcached:什么時(shí)候選擇redis,什么時(shí)候選擇memcached,內(nèi)存模型和存儲(chǔ)策略是什么樣的
MySQL的基本操作 主從數(shù)據(jù)庫(kù)一致性維護(hù)
mysql的優(yōu)化策略有哪些
mysql索引的實(shí)現(xiàn) B+樹(shù)的實(shí)現(xiàn)原理
什么情況索引不會(huì)命中,會(huì)造成全表掃描
java中bio nio aio的區(qū)別和聯(lián)系
為什么bio是阻塞的 nio是非阻塞的 nio是模型是什么樣的
Java io的整體架構(gòu)和使用的設(shè)計(jì)模式
Reactor模型和Proactor模型
http請(qǐng)求報(bào)文結(jié)構(gòu)和內(nèi)容
http三次握手和四次揮手
rpc相關(guān):如何設(shè)計(jì)一個(gè)rpc框架,從io模型 傳輸協(xié)議 序列化方式綜合考慮
Linux命令 統(tǒng)計(jì),排序,前幾問(wèn)題等
StringBuff 和StringBuilder的實(shí)現(xiàn),底層實(shí)現(xiàn)是通過(guò)byte數(shù)據(jù),外加數(shù)組的拷貝來(lái)實(shí)現(xiàn)的
cas操作的使用
內(nèi)存緩存和數(shù)據(jù)庫(kù)的一致性同步實(shí)現(xiàn)
微服務(wù)的優(yōu)缺點(diǎn)
線程池的參數(shù)問(wèn)題
ip問(wèn)題 如何判斷ip是否在多個(gè)ip段中
判斷數(shù)組兩個(gè)中任意兩個(gè)數(shù)之和是否為給定的值
樂(lè)觀鎖和悲觀鎖的實(shí)現(xiàn)
synchronized實(shí)現(xiàn)原理
你在項(xiàng)目中遇到的困難和怎么解決的
你在項(xiàng)目中完成的比較出色的亮點(diǎn)
消息隊(duì)列廣播模式和發(fā)布/訂閱模式的區(qū)別
生產(chǎn)者消費(fèi)者代碼實(shí)現(xiàn)
死鎖代碼實(shí)現(xiàn)
線程池:參數(shù),每個(gè)參數(shù)的作用,幾種不同線程池的比較,阻塞隊(duì)列的使用,拒絕策略
Future和ListenableFuture 異步回調(diào)相關(guān)
算法相關(guān):判斷能否從數(shù)組中找出兩個(gè)數(shù)字和為給定值,隨機(jī)生成1~10000不重復(fù)并放入數(shù)組,求數(shù)組的子數(shù)組的最大和,二分查找算法的實(shí)現(xiàn)及其時(shí)間復(fù)雜計(jì)算
3、其它
算法:常用排序算法,二分查找,鏈表相關(guān),數(shù)組相關(guān),字符串相關(guān),樹(shù)相關(guān)等
常見(jiàn)序列化協(xié)議及其優(yōu)缺點(diǎn)
memcached內(nèi)存原理,為什么是基于塊的存儲(chǔ)
搭建一個(gè)rpc需要準(zhǔn)備什么
如果線上服務(wù)器頻繁地出現(xiàn)full gc ,如何去排查
如果某一時(shí)刻線上機(jī)器突然量變得很大,服務(wù)扛不住了,怎么解決
LUR算法的實(shí)現(xiàn)
LinkedHashMap實(shí)現(xiàn)LRU
定義棧的數(shù)據(jù)結(jié)構(gòu),請(qǐng)?jiān)谠擃?lèi)型中實(shí)現(xiàn)一個(gè)能夠找到棧最小元素的min函數(shù)
海量數(shù)據(jù)處理的解決思路
reactor模型的演變
阻塞、非阻塞、同步、異步區(qū)別
Collection的子接口
jvm調(diào)優(yōu)相關(guān)
zookeeper相關(guān),節(jié)點(diǎn)類(lèi)型,如何實(shí)現(xiàn)服務(wù)發(fā)現(xiàn)和服務(wù)注冊(cè)
nginx負(fù)載均衡相關(guān),讓你去實(shí)現(xiàn)負(fù)載均衡,該怎么實(shí)現(xiàn)
linux命令,awk、cat、sort、cut、grep、uniq、wc、top等
壓力測(cè)試相關(guān),怎么分析,單接口壓測(cè)和多情況下的壓測(cè)
你覺(jué)得你的有點(diǎn)是什么,你的缺點(diǎn)是什么
spring mvc的實(shí)現(xiàn)原理
netty底層實(shí)現(xiàn),IO模型,ChannelPipeline的實(shí)現(xiàn)和原理
緩存的設(shè)計(jì)和優(yōu)化
緩存和數(shù)據(jù)庫(kù)一致性同步解決方案
你所在項(xiàng)目的系統(tǒng)架構(gòu),談?wù)務(wù)w實(shí)現(xiàn)
消息隊(duì)列的使用場(chǎng)景
ActiveMQ、RabbitMQ、Kafka的區(qū)別
掃描關(guān)注我們的微信公眾號(hào),干貨每天更新。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://m.hztianpu.com/yun/71306.html
摘要:如問(wèn)到是否使用某框架,實(shí)際是是問(wèn)該框架的使用場(chǎng)景,有什么特點(diǎn),和同類(lèi)可框架對(duì)比一系列的問(wèn)題。這兩個(gè)方向的區(qū)分點(diǎn)在于工作方向的側(cè)重點(diǎn)不同。 [TOC] 這是一份來(lái)自嗶哩嗶哩的Java面試Java面試 32個(gè)核心必考點(diǎn)完全解析(完) 課程預(yù)習(xí) 1.1 課程內(nèi)容分為三個(gè)模塊 基礎(chǔ)模塊: 技術(shù)崗位與面試 計(jì)算機(jī)基礎(chǔ) JVM原理 多線程 設(shè)計(jì)模式 數(shù)據(jù)結(jié)構(gòu)與算法 應(yīng)用模塊: 常用工具集 ...
摘要:一面應(yīng)該還問(wèn)了其他內(nèi)容,但是兩次面試多線程面試問(wèn)題和答案采訪中,我們通常會(huì)遇到兩個(gè)主題采集問(wèn)題和多線程面試問(wèn)題。多線程是關(guān)于并發(fā)和線程的。我們正在共享重要的多線程面試問(wèn)題和答案。。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 【碼農(nóng)每日一題】Java 內(nèi)部類(lèi)(Part 2)相關(guān)面試題 關(guān)注一下嘛,又不讓你背鍋!問(wèn):Ja...
摘要:一面應(yīng)該還問(wèn)了其他內(nèi)容,但是兩次面試多線程面試問(wèn)題和答案采訪中,我們通常會(huì)遇到兩個(gè)主題采集問(wèn)題和多線程面試問(wèn)題。多線程是關(guān)于并發(fā)和線程的。我們正在共享重要的多線程面試問(wèn)題和答案。。 2016 年末,騰訊,百度,華為,搜狗和滴滴面試題匯總 2016 年未,騰訊,百度,華為,搜狗和滴滴面試題匯總 【碼農(nóng)每日一題】Java 內(nèi)部類(lèi)(Part 2)相關(guān)面試題 關(guān)注一下嘛,又不讓你背鍋!問(wèn):Ja...
閱讀 3649·2021-08-31 09:39
閱讀 1922·2019-08-30 13:14
閱讀 2991·2019-08-30 13:02
閱讀 2828·2019-08-29 13:22
閱讀 2421·2019-08-26 13:54
閱讀 844·2019-08-26 13:45
閱讀 1666·2019-08-26 11:00
閱讀 1046·2019-08-26 10:58