最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

堪稱全網(wǎng)最詳細的Java八股面試文,面試必備(附答案)

2023-08-29 16:51 作者:程序員老Q  | 我要投稿

前言

聽一些小伙伴說,近期的面試越來越難了!為了幫大家節(jié)約時間,給大家搞來了今年上半年碰到的大廠Java面試題合集,內(nèi)容非常的全面。耗時半月,終于把??途W(wǎng)上的互聯(lián)網(wǎng)大廠Java面試八股文整理成了PDF合集。


其中概括的知識點有:java基礎(chǔ)、MyBatis、ZooKeeper、Dubbo、Elasticsearch、Memcached、Redis、MySQL、Spring、Spring Boot、Spring Cloud、RabbitMQ、Kafka、Linux 等技術(shù)棧共有1000+道面試題。




JAVA基礎(chǔ)


Java代碼一次編寫、到處運行


因為Java虛擬機可以實現(xiàn)跨平臺的代碼運行,不同的操作系統(tǒng)中有不同的JVM。


在程序運行前,JVM會將編寫的Java代碼編譯為字節(jié)碼格式,這種格式是JVM能夠識別的格式。


運行程序時,Java類加載器先加載字節(jié)碼文件,Java解釋器會將字節(jié)碼翻譯為操作系統(tǒng)可以識別的機器碼,方便操作系統(tǒng)去執(zhí)行。為了提高Java程序運行速度,引入了JIT(即時編譯器),在第一次編譯后,將字節(jié)碼對應(yīng)的機器碼保存,下次可以直接使用。


Java文件里可以有多個類嗎(不包含內(nèi)部類)?


一個Java文件中可以有多個類,但是最多只能有一個被public修飾的類;


如果該文件中包含public修飾的類,則類的名稱和Java文件的名稱必須相同。


Java訪問權(quán)限


Java語言中共有三種訪問修飾符:public、private、protected;


在使用這些修飾符修飾目標(biāo)時,一共可以形成四種訪問權(quán)限,public、private、protected、default(不加任何修飾符)。


修飾成員變量/方法時:


private:該成員可以被該類內(nèi)部成員訪問;


default:該成員可以被該類內(nèi)部成員訪問,也可以被同一包下的其他類訪問;


protected:該成員可以被該類內(nèi)部成員訪問,也可以被同一包下的其他類訪問,還可以被它的子類訪問;


public:該成員可以被任意類訪問。


修飾類時:


default:該類可以被同一包下的其他類訪問;


public: 該類可以被任意包下,任意類訪問。


Java數(shù)據(jù)類型


Java數(shù)據(jù)類型包括兩大類:基本數(shù)據(jù)類型,引用數(shù)據(jù)類型。


基本數(shù)據(jù)類型有8個,可以分為4類:整數(shù)類型(byte/short/int/long)、浮點類型(float/double)、字符類型(char)、布爾類型(boolean)。除了布爾類型,其他都可以看作為數(shù)組類型,可以進行類型轉(zhuǎn)換。


引用類型就是對一個對象的引用,根據(jù)引用對象的不同,可以分為數(shù)組、類、接口引用類型。實質(zhì)上就是通過指針,指向堆中對象所持有的內(nèi)存空間。


基本數(shù)據(jù)類型所占的內(nèi)存空間:


byte:1字節(jié)(8位),數(shù)據(jù)范圍是 -2^7 ~ 2^7-1;


short:2字節(jié)(16位),數(shù)據(jù)范圍是 -2^15 ~ 2^15-1;


int:4字節(jié)(32位),數(shù)據(jù)范圍是 -2^31 ~ 2^31-1;


long:8字節(jié)(64位),數(shù)據(jù)范圍是 -2^63 ~ 2^63-1;


float:4字節(jié)(32位),數(shù)據(jù)范圍是 -3.4*10^38 ~ 3.4*10^38;


double:8字節(jié)(64位),數(shù)據(jù)范圍是 -1.8*10^308 ~ 1.8*10^308;


char:2字節(jié)(16位),數(shù)據(jù)范圍是 \u0000 ~ \uffff;


boolean:不同的JVM有不同的實現(xiàn)機制,沒有固定的參數(shù)。


全局變量(成員變量)和局部變量


Java中沒有全局變量,這是c語言中的概念,Java中對應(yīng)的名稱叫做成員變量。


成員變量:


成員變量是在類的范圍內(nèi)定義的變量;


成員變量有默認(rèn)初始值;


未被static修飾的成員變量也叫實例變量,存儲于對象所在的堆內(nèi)存當(dāng)中,生命周期與對象相同;


被static修飾的成員變量也叫類變量,存儲于方法區(qū)當(dāng)中,生命周期與當(dāng)前類相同。


局部變量:


局部變量是在方法內(nèi)定義的變量;


局部變量沒有默認(rèn)初始值;


局部變量存儲于棧內(nèi)存中,作用的范圍結(jié)束,變量空間會自動的釋放。




為什么要有包裝類?


Java是面向?qū)ο蟮恼Z言,設(shè)計理念就是“一切皆是對象”。但是8種基本數(shù)據(jù)類型卻不屬于對象,為了解決這個問題,Java為每個基本數(shù)據(jù)類型都定義了一個對應(yīng)的引用類型,叫做包裝類。


自動裝箱與自動拆箱是JDK1.5提供的功能。


自動裝箱:可以把一個基本類型的數(shù)據(jù)直接賦值給對應(yīng)的包裝類型;


自動拆箱:可以把一個包裝類型的數(shù)據(jù)直接賦值給對應(yīng)額基本類型;


應(yīng)用場景:例如某個方法的參數(shù)是包裝類型,調(diào)用時我們所使用的數(shù)據(jù)卻是基本類型的數(shù)據(jù),這時可以不做任何處理,直接將這個基本類型的值傳入給方法即可。


對面向?qū)ο蟮睦斫?/p>


重載和重寫的區(qū)別


構(gòu)造方法不能重寫


Object中常用的方法


getClass():返回該對象的運行時類;


boolean equals(Object obj):判斷對象是否相等;


int hashCode():返回該對象的hashCode值,默認(rèn)情況下根據(jù)地址計算;


String toString():返回該對象的字符串表示;


finalize():當(dāng)系統(tǒng)中沒有引用變量引用到該對象時,垃圾回收器調(diào)用此方法來清理該對象的資源,同一個對象只會調(diào)用一次。(不建議主動調(diào)用)


hashCode()和equals()的關(guān)系


String常用的方法


String、StringBuffer、StringBuilder的區(qū)別


接口和抽象類有什么區(qū)別


Java怎么處理異常


static關(guān)鍵字


泛型


反射


JDK - JVM - JRE


JVM


Java虛擬機(JVM)是運行Java字節(jié)碼的虛擬機。JVM有針對不同系統(tǒng)的特定實現(xiàn),其目的就是使用相同的字節(jié)碼,這樣會給出相同的結(jié)果。字節(jié)碼和不同系統(tǒng)的JVM是實現(xiàn)Java語言跨平臺的關(guān)鍵。


JVM并不是只有一種!只要滿足JVM規(guī)范,每個公司、組織,甚至個人都可以開發(fā)自己的JVM,我們平時接觸到的HotSpot VM僅僅是JVM規(guī)范中的一種實現(xiàn)。


JDK


JDK是功能齊全的SDK,擁有JRE的全部內(nèi)容,還有編譯器(javac)和工具(如javadoc和jdb),能夠創(chuàng)建和編譯Java程序。


JRE


JRE是Java運行時環(huán)境,它是運行和編譯Java程序所需的所有內(nèi)容的集合,包括Java虛擬機,Java類庫,Java命令和其他的一些基礎(chǔ)構(gòu)建,但是不能用于創(chuàng)建新程序。


Java基本語法


字符串常量和字符型常量的區(qū)別


靜態(tài)方法不能調(diào)用非靜態(tài)成員continue、break和return的區(qū)別自增自減運算符


靜態(tài)方法和實例方法的不同重載和重寫的區(qū)別


==與equals()的區(qū)別


MyBatis


1、什么是Mybatis?


2、Mybaits的優(yōu)點


3、MyBatis框架的缺點


4、MyBatis框架適用場合


5、MyBatis與Hibernate有哪些不同?


6、#{}和${}的區(qū)別是什么?


7、當(dāng)實體類中的屬性名和表中的字段名不一樣,怎么辦?


8、 模糊查詢like語句該怎么寫?


9、通常一個Xml映射文件,都會寫一個Dao接口與之對應(yīng), 請問,這個Dao接口的工作原理是什么?Dao接口里的方法, 參數(shù)不同時,方法能重載嗎?


10、Mybatis是如何進行分頁的?分頁插件的原理是什么?


ZooKeeper


1. ZooKeeper是什么?


2. ZooKeeper提供了什么?


3.Zookeeper文件系統(tǒng)


4. ZAB 協(xié)議?


5. 四種類型的數(shù)據(jù)節(jié)點Znode


6. Zookeeper Watcher機制--數(shù)據(jù)變更通知


7. 客戶端注冊 Watcher實現(xiàn)


8. 服務(wù)端處理Watcher實現(xiàn)


9. 客戶端回調(diào)Watcher


10. ACL權(quán)限控制機制


Dubbo


基礎(chǔ)知識


1. 為什么要用Dubbo?


2. Dubbo是什么?


3. Dubbo的使用場景有哪些?


4. Dubbo核心功能有哪些?


架構(gòu)設(shè)計


7. Dubbo的整體架構(gòu)設(shè)計有哪些分層?


8. Dubbo Monitor實現(xiàn)原理?


分布式框架


9. Dubbo類似的分布式框架還有哪些?


10. Dubbo和Spring Cloud有什么關(guān)系?


11. Dubbo和Spring Cloud有什么哪些區(qū)別?


12. Dubbo和Dubbox之間的區(qū)別?


注冊中心


13. Dubbo有哪些注冊中心?


14. Dubbo的注冊中心集群掛掉,發(fā)布者和訂閱者之間還能通信嗎?


Elasticsearch


1、elasticsearch了解多少,說說你們公司es的集群架構(gòu),索引數(shù)據(jù)大小,分片有多少,以及一些調(diào)優(yōu)手段。


2、elasticsearch的倒排索引是什么?


3、elasticsearch索引數(shù)據(jù)多了怎么辦,如何調(diào)優(yōu),部署?


4、elasticsearch是如何實現(xiàn)master選舉的


5、詳細描述一下Elasticsearch索引文檔的過程


6、詳細描述一下Elasticsearch搜索的過程?


7、Elasticsearch在部署時,對Linux的設(shè)置有哪些優(yōu)化方法


8、lucence內(nèi)部結(jié)構(gòu)是什么?


9、Elasticsearch是如何實現(xiàn)Master選舉的?


10、Elasticsearch中的節(jié)點(比如共 20 個),其中的10 個選了一個master,另外10個選了另一個master,怎么辦?


Memcached


1、Memcached是什么,有什么作用?


2、Memcached服務(wù)分布式集群如何實現(xiàn)?


3、Memcached服務(wù)特點及工作原理是什么?


4、簡述Memcached內(nèi)存管理機制原理?


5、memcached是怎么工作的?


6、memcached最大的優(yōu)勢是什么?


7、memcached和MySQL的query


8、memcached和服務(wù)器的local cache(比如PHP的APC、mmap文件等)相比,有什么優(yōu)缺點?


9、memcached的cache機制是怎樣的?


10、memcached如何實現(xiàn)冗余機制?


MySQL


1、MySQL中有哪幾種鎖?


2、MySQL中有哪些不同的表格?


3、簡述在MySQL數(shù)據(jù)庫中MyISAM和InnoDB的區(qū)別


4、MySQL中InnoDB支持的四種事務(wù)隔離級別名稱,以及逐級之間的區(qū)別?


5、CHAR和VARCHAR的區(qū)別?


6、主鍵和候選鍵有什么區(qū)別?


7、myisamchk是用來做什么的?


8、如果一個表有一列定義為TIMESTAMP,將發(fā)生什么?


9、你怎么看到為表格定義的所有索引?


10、LIKE聲明中的%和_是什么意思?


Spring一般問題


1、不同版本的Spring Framework有哪些主要功能?


2、什么是Spring Framework?


3、列舉Spring Framework的優(yōu)點。


4、Spring Framework有哪些不同的功能?


5、Spring Framework中有多少個模塊,它們分別是什么?


6、什么是Spring配置文件?


7、Spring應(yīng)用程序有哪些不同組件?


8、使用Spring有哪些方式?


依賴注入(Ioc)


1、什么是Spring IOC容器?


2、什么是依賴注入?


3、可以通過多少種方式完成依賴注入?


Spring Boot


1、什么是Spring Boot?


2、Spring Boot有哪些優(yōu)點?


3、什么是JavaConfig?


4、如何重新加載Spring Boot上的更改,而無需重新啟動服務(wù)器?


5、Spring Boot中的監(jiān)視器是什么?


6、如何在Spring Boot中禁用Actuator端點安全性?


7、如何在自定義端口上運行Spring Boot應(yīng)用程序?


8、什么是YAML?


9、如何實現(xiàn)Spring Boot應(yīng)用程序的安全性?


10、如何集成Spring Boot和ActiveMQ?



Spring Cloud


1、什么是Spring Cloud?


2、使用Spring Cloud有什么優(yōu)勢?


3、服務(wù)注冊和發(fā)現(xiàn)是什么意思?Spring Cloud如何實現(xiàn)?


4、負載平衡的意義什么?


5、什么是Hystrix?它如何實現(xiàn)容錯?


6、什么是Hystrix 斷路器?我們需要它嗎?


7、什么是Netflix Feign?它的優(yōu)點是什么?


8、什么是Spring Cloud Bus?我們需要它嗎?


9、SpringBoot和SpringCloud的區(qū)別?


10、Spring Cloud和SpringBoot版本對應(yīng)關(guān)系


RabbitMQ


1、什么是rabbitmq


2、為什么要使用rabbitmq


3、使用rabbitmq的場景


4、如何確保消息正確地發(fā)送至RabbitMQ?如何確保消息接收方消費了消息?


5.如何避免消息重復(fù)投遞或重復(fù)消費?


6、消息基于什么傳輸?


7、消息如何分發(fā)?


8、消息怎么路由?


9、如何確保消息不丟失?


10、使用RabbitMQ有什么好處?


Linux


絕對路徑用什么符號表示?當(dāng)前目錄、上層目錄用什么表示?


主目錄用什么表示?


切換目錄用什么命令?


怎么查看當(dāng)前進程?怎么執(zhí)行退出?怎么查看當(dāng)前路徑?


怎么清屏?怎么退出當(dāng)前命令?怎么執(zhí)行睡眠?


怎么查看當(dāng)前用戶id?


查看指定幫助用什么命令?


Ls命令執(zhí)行什么功能?可以帶哪些參數(shù),有什么區(qū)別?


建立軟鏈接(快捷方式),以及硬鏈接的命令。


目錄創(chuàng)建用什么命令?創(chuàng)建文件用什么命令?復(fù)制文件用什么命令?


查看文件內(nèi)容有哪些命令可以使用?


隨意寫文件命令?怎么向屏幕輸出帶空格的字符串,比如”hello world”?


終端是哪個文件夾下的哪個文件?黑洞文件是哪個文件夾下的哪個命令?


移動文件用哪個命令?改名用哪個命令?


最后


Java 面試的本質(zhì)就是八股文,把八股文面試題背好,面試才有可能表現(xiàn)好。大家在考研和找工作中糾結(jié)的時候,不妨先看一下面試題,畢竟最終目標(biāo)就是為了找一份心儀的工作!好工作都是早下手為強的,所以同學(xué)們要早做準(zhǔn)備!?

一鍵三連+關(guān)注

想要領(lǐng)取資料的小伙伴們,請關(guān)注下方微信公眾號領(lǐng)取哦~?

然后就等著私信查收吧~


堪稱全網(wǎng)最詳細的Java八股面試文,面試必備(附答案)的評論 (共 條)

分享到微博請遵守國家法律
南靖县| 揭阳市| 青田县| 临西县| 长白| 克什克腾旗| 册亨县| 平武县| 桃园市| 时尚| 喀喇沁旗| 亳州市| 札达县| 聂拉木县| 汉源县| 汶川县| 淄博市| 张家港市| 博爱县| 黔西县| 桦川县| 崇明县| 高雄市| 镇安县| 靖江市| 大宁县| 周至县| 五华县| 松阳县| 博客| 长武县| 麻城市| 洪泽县| 云阳县| 南陵县| 八宿县| 鄂伦春自治旗| 樟树市| 康乐县| 芜湖市| 睢宁县|