一些常見的Java面試題 & 面試感悟

< 前言 >

近期在面試,深感這個行業的浮躁,一些菜不辣基的弱雞開出的工資待遇要求,超過了我。不知道他們是怎麼拿到那麼高的工資的,難道是他在公司有親戚朋友嗎?有後臺嗎?是行業熱錢真的過多了嗎?仍是說我TM拖行業的大腿了? 。。而後深感不少碼農就真的只是碼農,一問三不知,就知道會CRUD,對底層機制一無所知(或只知道皮毛,如我),沒有專研精神,工做毫無激情。有的人家庭環境優越、生活優渥,卻仍然要和我這樣的十九線農村出來的社會底層人員搶一個碼農的苦逼飯碗。。。 爲他們的將來感到擔心(包括我。)。天啊,爲何這樣的苦逼的毫無錢途的工做,這麼多人搶啊。。前端

個人小時候印象中,工程師好像不是這樣的吧,如今感受IT工程師,特別是Java工程師真的爛大街了,真TM不值錢啊。nginx

 

我也被面試(偷偷的^_^),而後深感這個行業的不規範,不少面試官(包括平安科技這樣的)就TM的亂來,出題主觀隨意,根本沒套路,視Java碼農如草芥。別人大老遠辛辛苦苦跑一趟,面試官也不事先了解下候選的Java碼農,隨意的出題,隨意的瞎JB問問。你一個工做十年的高級人才,還來問「 接口和抽象類有什麼區別 」 ;明明是面試高級崗位,還來考你 「 獲取控制檯輸入, 打印.. 」,等等這樣低級弱智的問題, 老子都TM不想動筆!有的公司會先有筆試題,但TM上面居然有模棱兩可的問題、答案,我去。。  結果呢就是TM沒結果,固然很差了。你心塞不心塞?招聘的JD亂寫,實際去應聘根本就不是那套題目。你簡歷上說你精通Spring Cloud,面試官卻一上來就問Dubbo。有的三句兩句就問完了,不肯意多問,不肯意深刻,不肯意耽誤他寶貴的時間。而後打發你走。我去年買了個表,什麼JB破公司!!面試

面試完後讓你走,而後一句話很少說就走開(若是你問結果怎麼樣,他最多說回去等通知吧。。),而後一點音訊都無,就像往一個巨大黑洞丟了一坨屎,TM杳無音訊!面試完,也不知道本身回答的錯對,(估計TM面試官也是半吊子),幾乎徹底沒有任何收穫,你心塞不心塞?我勒個去你大爺祖宗!一些大公司如此,小公司更是毫無章法。招聘就是亂來。如此簡單草率不規範的招聘流程,怎麼可能全面的考察到一個真正有才華的人,怎麼可能被發現?ajax

Boss直聘,我去年買了個表!!!騙老子去「跟老闆談」,實際上根本看不到一個老闆,連HR都不肯意跟老子多談一句。有的HR甚至你問她結果,她都不肯意告知一下。不少公司真TM破,徹底不重視技術。正則表達式

 

像我TM這麼牛逼吊咋天的苦心孤詣的精通十八般武藝(的名字)的高級人才,居然也是被虐成了狗,你說悲慘不悲慘?我兢兢業業、辛辛苦苦、勤勤勞勞、苦心孤詣、天天學習到深夜2點而後聞雞起舞,努力拼到了兩眼無光、口腔發炎膿腫、語無倫次、思惟混亂、理智不清、頭髮花白、腸胃發炎、肝功能降低、腎積水、頸椎病,腿腳不便,卻仍然免不了TM被淘汰的命運嗎??redis

 

誠心忠告,跳槽有風險,離職需謹慎。算法

誠心忠告,儘可能別裸辭,能拖就拖。被裁都比瞎跳好。(固然,拖歸拖,本職工做仍是要作好的)數據庫

誠心忠告,年紀大了就不要海投找工做了。真的不值錢。不少公司開不起價。編程

誠心忠告,別要輕易嘗試那些架構師、技術總監的崗位了,人家大多數都是從內部提拔的。json

誠心忠告,千萬別要嘗試去那些少於50人的小而醜的公司去面試。千萬要珍惜本身的崗位,別要越跳越慘。

 

花費數個晚上整理的 一些常見的Java面試題大保健,懂這麼多,我能面試上阿里的p7嗎?

 

< 一 基礎 >

-- Java語言基礎部分

JDK 和 JRE 有什麼區別?

說說環境變量JAVA_HOME的做用?

String、StringBuffer、StringBuilder的區別?

如何將字符串反轉?

==和equals的區別?

equals 方法、hashCode方法, 何時須要重寫?

Overload和Override的區別。Overload的方法是否能夠改變返回值的類型?

何時使用Object類中的clone()方法,clone() 和new 有什麼區別。

如何將Java 對象序列化?

什麼是transient ,如何使用?

Java IO 主要的接口、實現?

什麼是ByteArrayInputStream、ByteArrayOutputStream,如何使用?

什麼是DataInputStream、、DataOutputStream,如何使用?

什麼是ObjectInputStream、、ObjectOutputStream,如何使用?

什麼是標準輸入、輸出流, 緩衝流?如何重定向標準輸入流?

什麼是Console?

什麼是Serializable、Externalizable,如何使用?

字節流和字符流有什麼區別,如何使用?

flush()方法的做用?何時須要執行flush?

如何隨機訪問一個文件?

什麼是定時任務,如何使用TimerTask ?

深拷貝、淺拷貝的區別?如何使用?

受檢異常、非受檢異常的區別,如何使用?

常見的受檢異常、非受檢異常有哪些? 代碼中異常如何處理?

try catch finally塊中,catch、finally是否能夠作函數返回?

如何寫一個自定義的註解?註解的使用範圍有哪些?

Java中的註解是如何工做的?

什麼是枚舉,是否能夠繼承?如何獲取一個枚舉類型裏面的全部值?Java中的枚舉是如何工做的?

Java 文件等資源,打開了不關閉,會出現什麼後果?

何時用assert?

int和Integer有什麼別?

什麼是Thread join、yeild? 區別?

棧、隊列的區別?雙向隊列?

如何捕獲正則表達式中的分組?

Files的經常使用方法都有哪些?

在 Queue 中 poll()和 remove()有什麼區別?

throw 和 throws 的區別?

try-catch-finally 中哪一個部分能夠省略?

-- 集合部分

List有哪些實現,如何實現的,如何使用它們?

Map有哪些實現, 如何實現的?說說HashMap底層數據結構

HashSet是如何實現的?HashMap,HashSet的區別?

HashMap是如何get、put、擴容的?key重複了怎麼辦? 是如何解決的?

如何Java的兩個集合的交集、並集?

如何保證List、Set或者Map中元素的有序性?

List裏的元素能不能重複?Set呢?List、Set中若是兩次存放相同的對象或相同的key,會返回什麼?是否發生異常?

-- 多線程部分

什麼是線程安全問題?什麼狀況下須要考慮其線程安全問題?

Java線程的狀態有哪些,它們是什麼時候、如何(經過什麼方法)進行轉換的

什麼是Vector、HashTable?

什麼是CopyOnWriteArrayList,如何使用它?

如何建立或保證一個Map、List的線程安全?

Java 鎖中,synchronized RentrantLock 分別在什麼場景下使用,如何使用?

RentrantLock 提供主要哪些方法?

如何喚醒一個阻塞的線程?

什麼是lamda表達式、函數式編程?Java.util.function包裏面的 Supplier/Consumer/Predicate/BiFunction 分別是什麼含義?

什麼是線程組?

說說sleep、wait 的區別

Thread的 notify()給notifyAll()的區別?

什麼是Callable,Future及它們的用法

什麼是死鎖、活鎖,無鎖?

什麼是volatile ,如何使用?

什麼是daemon線程?

多線程鎖的升級原理是什麼?

-- 框架部分

什麼是J2EE?

什麼是容器?

什麼是Session、Cookie?如何使用?

什麼是Servlet,說說它的生命週期

Spring中bean的生命週期

Spring的啓動、加載過程?

Spring中什麼是Lazy-Load?

Spring中Bean有哪些Scope?

Spring如何解決循環依賴?

Spring中經常使用註解?

Spring中若是一個注入一個對象,可是這個對象有多個實例,怎麼處理?

SpringMVC經常使用的註解,RequestBody,ResponseBody ,RequestParam,PathVariables,RestController,ControllerAdvice, WebInitParam,InitBinder

SpringMVC如何作類型轉換?

SpringMVC如何作參數校驗?

Spring Boot經常使用的註解

說說Tomcat的各類配置,如何配置docBase

Tomcat中,什麼是Host、Engine、Server、Service、Realm、Connector、Context、Wrapper、Valve?

Tomcat中,context.xml什麼做用?如何配置?

Tomcat中,jsp是如何熱加載的?類是否能夠熱加載?

Tomcat中,什麼是Catalina_BASE?如何設置?

servlet的forward、redirect 有什麼區別?

Web容器中過濾器、攔截器、監聽器什麼區別?

Get、Post請求什麼區別?

什麼是ajax?如何實現?

什麼是JSP,如何工做的?

如何配置數據庫鏈接池?

什麼是Locale、ResourceBoundle

-- 設計部分

說說設計模式六大原則

單例模式的有哪些寫法?

描述一下 裝飾器模式 、觀察者模式、 責任鏈、門面模式、 策略模式、 代理模式 、橋接模式 、適配器模式、 備忘錄模式、 或其餘設計模式, 使用文字或者UML

公司項目中是如何使用設計模式的?

開源項目中是如何使用設計模式的?

什麼是實體關係圖?如何設計數據庫表?

什麼是用例圖、時序圖、活動圖、類圖、對象圖、構件圖、協做圖、狀態圖?如何畫?

-- 其餘

什麼是發佈-訂閱消息模式?

MQ的有什麼做用

說說下面Cron表達式的其中3個的含義:
0 0 10,14,16 * * ?
0 0/30 9-17 * * ?
0 0 12 ? * WED
0 15 10 ? * *
0 15 10 * * ?
0 15 10 * * ? *
0 15 10 * * ? 2005

寫一個匹配ip地址或 新浪郵箱地址的正則表達式

Junit用法,before,beforeClass,after, afterClass的執行順序

說說Xml、json的優缺點,分別有哪些現有的開源框架?

如何作登陸認證?什麼是RBAC,使用過哪些框架?

如何作數據權限控制?

如何保護網站防止被攻擊?

什麼是亂碼問題,如何解決?

什麼是字符集?有哪些?哪些是支持中文的?

什麼是Joda Time? Java8中是如何處理日期、時間的?

如何格式化日期? 數字? 字符串?

Linux中如何配置網絡?網絡模式有哪些?

< 二 高級 >

-- JVM 部分

-Xms,-Xmx,-Xmn -XX:NewSize,-XX:MaxNewSize,-XX:PermSize,-XX:MaxPermSize -XX:NewRatio,-XX:+UseConcMarkSweepGC,-XX:+PrintGC是什麼含義?

如何捕捉OOM?

如何打印GC 日誌,如何分析?

通常如何設置Java堆、線程的棧的大小?

Java 類是如何加載到JVM中來的,如何初始化?

Class.forName()的做用是?

JVM內存區域劃分?JDK 7 或JDK 8

Java中什麼是堆、什麼是棧,他們用來存儲什麼數據?

如何導出Java程序的堆棧?

堆的分代有哪些?爲何要分代?

JDK 7 之前是如何進行GC的、JVM 中的YGC和FGC發生的具體場景?

Java有哪些GC的算法,有哪些GC回收器?

哪裏、何時,堆或棧 會發生溢出?說說 內存溢出可能緣由和解決方案。

什麼是GC Roots,safepoint,saferegion?

什麼是Threadlocal? 如何使用?

什麼是泛型, 如何使用(使用在哪些地方)?Java中的泛型是如何工做的?

什麼是泛型通配符? 在什麼狀況下使用?

如何獲取泛型對應的實際類型?

什麼是反射,如何使用、什麼場景下使用? 如何訪問一個對象的private字段?

什麼是類加載器? 說說類加載器的雙親委派加載機制

什麼是運行時常量池?

泛型是如何實現的? List<T>、List<?>、List<Object> 的區別?

什麼是WeakReference、SoftReference、PhantomReference?

什麼是Unsafe,如何使用?

如何作堆棧內存分析?

什麼是內存泄漏,如何避免?

JVM優化cpu高的時候若是分析和監控

Java 虛擬機有什麼優化技巧?

Java的運行模式?

什麼是熱編譯?

-- 多線程部分

說說synchronized 實現原理。synchronized 是否能夠重入?

什麼是偏向鎖、自旋鎖?

如何建立一個Java 線程池? 如何建立一個線程數固定大小的線程池?

ThreadPoolExecutor構造函數的各個參數的含義?

ScheduledExecutorService 是如何實現的?

什麼是CachedThreadPool?

Java 線程池submit、execute方法的區別?

什麼是線程調度算法,有哪些?

什麼是可重入鎖?

什麼是CAS?

如何使用LockSupport、AQS,CAS, Atomic包

ReadWriteLock 、 CountDownLantch 是如何使用的?

Java 鎖中的Confition 如何建立、使用,它有哪些方法?

ConcurrentHashMap是如何實現線程安全的?

什麼是CyCliBarrier、Semaphore,說說其的用法、原理?

說說J.U.C中的Phaser

什麼是重排序,內存屏障,爲何須要它們,何時使用?

什麼是happens-before原則?

什麼是False Sharing,Cache Line?

什麼是FutureTask?

說說CompletableFuture

什麼是優先隊列?

說說ForkJoin框架

什麼是阻塞隊列?有哪些實現? 什麼區別?

什麼是僞隨機數?如何生成線程安全的隨機數?Random、SimpleDateFormat 如何使用?是否有線程安全問題?何時有?

Struts1是否是線程安全的?Struts2呢?Hibernate、Mybatis、SpringMVC呢?

Disruptor 爲何性能好?

-- 網絡、NIO部分

說說TCP/IP三次握手、四次揮手

HTTP的工做機制?HTTP的請求格式,響應格式是怎麼樣的?

什麼是短鏈接、長鏈接、持久鏈接?

什麼是心跳?何時須要它?

什麼是HTTP鏈接池?

HTTP如何作靜態資源緩存控制?

HTTP常見響應碼的含義,1xx,2xx,3xx,4xx,5xx?

HTTP響應碼 301 和 302 表明的是什麼?有什麼區別?

說一下 tcp 粘包是怎麼產生的?

什麼是tcp滑動窗口

如何實現跨域?

說說HTTP/2 ?

說說HTTPS完整交互過程、握手後工做流程,鏈接斷開流程

如何啓用HTTPS ,須要哪些配置?

什麼是對稱加密和非對稱加密?分別有哪些算法?

什麼是消息摘要算法?什麼是MD四、MD5?

如何將服務端消息推送到瀏覽器端?

IO、NIO、BIO、AIO的聯繫和區別

什麼是非阻塞IO?

什麼是異步IO?

什麼是NIO的Buffer?如何建立一個ByteBuffer?

如何建立一個Channel?

說說Buffer的capacity,position和limit

NIO是如何工做的,關鍵的組件有哪些?

什麼是Reactor模型?

什麼是多路複用?

說說DDos攻擊、XSS攻擊、CSRF攻擊

Netty 爲何性能好? 它是如何處理各類事件的?

什麼是C10K問題

-- 框架部分

對Spring的理解,項目中都用什麼?怎麼用的?說說對IOC、和AOP的理解及實現原理

什麼是ORM?如何寫一個orm框架

Mybatis的工做機制

Mybatis中 #{}和 ${}的區別是什麼?

Mybatis中如何作分頁?

Mybatis中是否支持延遲加載?

Mybatis中有哪些執行器?

Mybatis中如何自定義插件?

說說Spring AOP, 什麼是切面、切點、鏈接切點、通知方法?

什麼是Spring聲明式事務,如何配置?

@Transactional註解通常寫在什麼位置?如何控制其回滾?

SpringBoot的優缺點?爲何使用它?工做原理?

SpringBoot中什麼是profile?如何啓用不一樣的profile?如何定義多套不一樣環境配置?

SpringBoot中EnableXxx註解是如何工做的

如何理解 Spring Boot 中的 Starters?

SpringBoot 實現熱部署有哪幾種方式?

如何理解 Spring Boot 配置加載順序?

Dubbo 的優缺點?工做原理?

什麼是Spring Cloud?SpringCloud 的優缺點?

什麼是Hystrix

說說的Tomcat、Jetty、Apache、JBoss、Spring、SpringMVC、Mybatis、SpringBoot、SpringCloud、Dubbo 或者你看過的任何 源碼,主要模塊, 如何工做的?

什麼是token, 如何使用、什麼場景下使用?

log4j、log4j二、slf4j、 logback、 commons-logging 是如何配置、使用的?

比較下Log4j2,LogBack等日誌框架,如何選擇日誌框架?

Quartz實現原理?

用過哪些Java 測試框架?

Spring、Springboot中如何作單元測試?

一級和二級緩存的做用,hibernate或mybatis 中如何使用緩存?

什麼是Webservice?

什麼是Restful?

什麼是Websocket?

Spring+MyBatis實現讀寫分離簡述?

如何啓動中止Nginx ?

Nginx 中的Woker線程是什麼意思?

Nginx 的工做模式是?epoll

Nginx 有哪些主要配置?說說up_stream、server

Nginx、Dubbo或Spring Cloud中有哪些負載均衡算法?

如何使用nginx 作動靜分離?

-- 微服務部分

什麼是微服務?什麼是SOA?

你所知道的微服務技術棧有哪些?請舉例一二?

服務限流的方式?

如何作擁塞控制?

如何跟蹤 分佈式服務之間的調用 ?

什麼時候、如何作失敗重試?

什麼是無服務網關?

如何作服務監控?

如何作服務治理?

說說Feign、Ribbon

什麼是冪等,如何實現服務接口的冪等?

高併發量大的話怎麼處理熱點?

服務雪崩、隔離、熔斷、降級?升級、自動擴容?

如何作接口加密?

微服務之間如何作認證、受權?

緩存的類型?算法? LRU?

如何作分佈式緩存?

如何防止緩存擊透、雪崩?

如何防止熱點緩存失效?

微服務之間是如何獨立通信的?

微服務如何拆分?

什麼是Docker? 有哪些命令?

如何建立一個Docker鏡像、容器?

什麼是容器編排?如何操做?

-- Dubbo

dubbo都支持什麼協議,推薦用哪一種?

Dubbo內置了哪幾種服務容器?

Dubbo裏面有哪幾種節點角色?

畫一畫服務註冊與發現的流程圖

Dubbo默認使用什麼註冊中心,還有別的選擇嗎?

Dubbo 核心的配置有哪些?

Dubbo啓動時若是依賴的服務不可用會怎樣?

Dubbo有哪些序列化框架,推薦使用什麼?

Dubbo有哪些通訊框架,默認是什麼?

Dubbo有哪幾種集羣容錯方案,默認是哪一種?

Dubbo有哪幾種負載均衡策略,默認是哪一種?

註冊了多個同同樣的服務,若是測試指定的某一個服務呢?

當一個服務接口有多種實現時怎麼作?

服務上線怎麼兼容舊版本?

Dubbo支持服務多協議嗎?

Dubbo能夠對結果進行緩存嗎?

Dubbo服務之間的調用是阻塞的嗎?

Dubbo支持分佈式事務嗎?

說說 Dubbo 服務暴露的過程。

Dubbo支持服務降級嗎?

Dubbo的管理控制檯能作什麼?

說說Dubbo的SPI機制

如何解決服務調用鏈過長的問題?

集羣容錯怎麼作?

-- 算法部分

說說常見的搜索算法、排序算法,及其時間複雜度

說說 二分查找算法

說說DFS、BFS算法

說說動態規劃算法、分治算法、遞歸、貪心、暴力算法

什麼是二叉樹,如何遍歷二叉樹?

什麼是跳錶、B樹?AVL樹、

什麼是紅黑樹,有哪些特色?

什麼是圖的最短路徑問題,有哪些算法?

10G的整數中,取出最大的一個(不光是使用高效的排序算法,還須要考慮內存大小)
BGP,BGP(邊界網關協議)

-- 團隊合做部分

Svn的工做機制?

Svn中衝突或tree conflict,如何解決?

Git的工做機制,它是如何分支管理的?

什麼是Git的工做區?

說說Git的經常使用命令

Git中若是將修改提交到遠程倉庫?

Git中如何處理衝突?

Svn、Git的異同?

Git中fork、 branch、clone 之間的區別?

Git中pull 和fetch有什麼區別?

Git中merge和 rebase的重要區別

Git庫所在的文件夾中的文件哪一種狀態

Ant或Maven 是如何工做的?他們有什麼優缺點?

Maven項目的目錄結構是怎麼樣的?分別是什麼做用?

Maven 項目的生命週期?

Maven 插件的生命週期?

Maven中依賴出現了衝突,如何處理?

Maven中的依賴沒法下載、中央倉庫也沒有,如何處理?

mvn clean package命令進行項目打包,請問該命令執行了哪些動做來完成該任務?

Maven多模塊如何聚合?

Maven如何啓用不一樣的profile?

如何經過Maven把war直接部署到遠程Tomcat?

Maven中如何設置編碼格式?JDK版本?

說說常見的Maven私服的倉庫類型

Snapshot,release版本的區別?

什麼是Sonar、Jenkins?

-- 前端

什麼是盒子模型?

說說瀏覽器內置有哪些對象?

說說DOM樹,如何操做它?

闡述清楚浮動的幾種方式

什麼是JS閉包

什麼是原型鏈

Jquery有哪些選擇器,如何實現的, 源碼

什麼是Freemark, 如何配置,使用?

CMD、amd規範

Nodejs、 Vue、React、augularJS

說說先後端優化的基本常識

說說瀏覽器中輸入url,按下回車鍵,到頁面響應完成的整個過程

說一下 JSONP 實現原理

怎麼作先後端分離?

-- 運維&其餘

什麼是動態代理?有哪些實現? CGlib的原理?

如何防止頁面重複提交?

如何查看網絡進程?如何查看端口是否被佔用?

用awk統計一個ip文件中top10

用netstat查看

什麼是lucence倒排索引?如何實現的?

如何查看、分析 字節碼?說說字節碼指令

說說Aspectj、ASM框架

什麼是尾遞歸?

什麼是Java代碼壞味道,如何處理它?

Java八、9 或 10 分別都有什麼新特性?

說說Oauth或Jwt

說說JMS、JPA、JTA、JMX、RMI、RPC

Redis內存清理策略是怎麼樣的?

Redis如何清除過時數據?

說說計算機網絡OSI7層模型(TCP4層)每層的協議

什麼是Linux的內存頁、SWAP?

說說Linux的各個頂級目錄的含義

Linux下如何查看CPU負載和IO端口的使用狀況

Windows、Linux中如何抓包分析?

什麼是MVC?

服務如何分層?爲何要分三層?

什麼是CDN?

什麼是語法糖?

什麼是生產者-消費者模式?有哪些實現?

什麼是LVS?

什麼是Haproxy、KeepAlived?二者什麼區別?

< 三 數據庫 >

什麼是SQL,有哪些類型?

Distinct(1), Distinct(*), Distinct(column) 的區別

char 和 varchar 的區別是什麼?

什麼是子查詢、嵌套查詢?

MySQL的什麼是內鏈接、左鏈接、右鏈接、笛卡爾積?有什麼區別?

union和union all有什麼不一樣?

drop、truncate與 delete區別

如何分析SQL,如何查找慢查詢?

如何查看SQL的explain plan

主鍵和外鍵的區別?

什麼是索引 、範圍索引?

索引類型有哪些?如何建立?

主鍵和索引的區別?

如何使用索引?

什麼狀況不能使用索引?

NULL是什麼意思?

簡單描述tablespace / segment / extent / block之間的關係

數據庫日誌的做用是什麼?有哪些?

說說MySQL的binlog

MySQL是如何實現事務的?

Statement與PreparedStatement的區別

什麼是SQL注入,如何防止SQL注入?

如何作批量數據操做?

什麼是存儲過程?視圖?遊標?

什麼是事務的ACID?

說說數據庫的範式

大表如何作分頁?

說說MyISAM InnoDB 的異同?

說說DB的特性和隔離級別

如何實現數據庫讀寫分離? 如何 作集羣?

數據庫的鎖有哪些分類,如何使用?

什麼狀況出現死鎖?如何處理?

MySQL數據庫鎖表怎麼解決?

什麼是彙集索引、非彙集索引,它們的區別,如何使用?

什麼是數據庫的悲觀鎖、樂觀鎖,它們的區別?

MySQL的行級鎖加在哪一個位置?

一條SQL查詢語句是如何執行的?

NoSQL爲啥比SQL快?

對比一下Redis、Mongodb

商品相關模塊系統怎麼設計數據模型?

動態表單設計?

自定義表格的實現?

< 四 分佈式 >

什麼是單點故障?如何處理?

在一個大系統中存在哪些單點失效的問題

可靠性和可用性如何理解?

什麼是CAP、BASE?

什麼是一致性Hash?

分佈式環境中,如何保證session高可用、性能、一致性?

什麼是分佈式惟一ID,如何實現?

什麼是分佈式鎖,如何實現一個分佈式鎖?

什麼是分佈式事務、如何實現?

什麼是分佈式任務?通常是如何實現的?有哪些框架?

什麼是Redis?如何實現的?

Redis提供了哪些數據結構?有什麼特色?

Redis如何作集羣?

說說Redis 同步機制

Sentinel 或 cluster工做原理?

Redis如何原子性的執行多個命令?

Redis有哪些Java客戶端?

jedis 和 redisson 有哪些區別?

Redis如何執行一個事務?

什麼是ZooKeeper,它是如何分佈式高可用的? 如何選舉的? 有哪些類型節點?

說說2pc協議,3pc協議,tcc

說說ZAB協議,Raft協議,Paxos協議

什麼是AMQP、STOMP

說說RabbitMQ 的消息處理機制

RabbitMQ 中的vhost是什麼?

什麼是延遲隊列,什麼是死信隊列?

RabbitMQ 集羣方式?

RabbitMQ消息堆積怎麼處理? RabbitMQ如何保證 消息的生產成功、消費成功?

如何保證RabbitMQ的消息只被消費一次,如何處理消息丟失或重複?

Kafka高性能的緣由? kafka 是如何作集羣的?

Kafka消息會不會丟失?

Kafka的leader副本選舉?

Kafka消息的檢索?

Lucene 如何作全文檢索?

ElasticSearch如何解決深度分頁的問題?

Elasticsearch如何分片?

Elasticsearch集羣后如何路由?

Elasticsearch如何優化?

什麼是分佈式文件系統?說說FastDFS

Hadoop、HDFS、Hbase 的基本工做原理

什麼是MapReduce?

什麼是流式計算?

< 五 實踐題 >

1.編寫一個方法去掉數組裏面 重複的內容 var arr=[1,2,3,4,5,1,2,3]

2.SQL題
student(sno,sname,sage,ssex)學生表
course(cno,cname,tno) 課程表
sc(sno,cno,score) 成績表
teacher(tno,tname) 教師表

A: 查詢課程1的成績比課程2的成績高的全部學生的學號
B: 查詢平均成績大於60分的同窗的學號和平均成績
C: 查詢不一樣老師所教不一樣課程平均分, 從高到低顯示

3.統計100G的ip文件中出現ip次數最多的100個ip

4.廣度優先遍歷D盤目錄下面的全部子目錄和文件?

5.用星號(*)打印一個空心菱形,容許一個參數做爲菱形高度,以下

 


6.同時給10萬我的發工資,怎麼樣設計併發方案,能確保在1分鐘內所有發完 打個比方會提出相似的場景(信息平臺)

A系統給B系統轉100塊錢,如何實現?

A服務調用B服務多接口,響應時間最短方案;


7.多線程下讀機率遠遠大於寫機率,如何解決併發問題?

8.寫一個插入排序、選擇排序、桶排序、歸併排序或快速排序算法

9.設計十萬併發級別的網站後臺,如何計算須要的機器和配置?

< 關於我的成長、職業規劃 >

怎麼解決平時技術上遇到的問題

項目中遇到的最大挑戰是什麼?怎麼解決的?

與同事溝通的時候,若是遇到意見不合或發生衝突瞭如何解決?

如何提高本身的技術?

最有成就感的事情?(工做上)

說說本身性格上的優缺點

本身以爲本身工做上的短板/優勢是什麼?

最近在看哪些書?

對這個行業的印象?

職業規劃是?

平時下班後作什麼?週末作什麼?

有啥想問咱們的?

相關文章
相關標籤/搜索