[不得不知道系列]Java面試你不得不知道的基礎(chǔ)知識一

當今世界上使用最廣泛的編程語言之一是Java诸迟。Java是通用的高級編程語言励两。核心java是java編程技術(shù)概念的基礎(chǔ),該術(shù)語由sun Microsystems用來描述Java的標準版本(JSE)据德。核心Java只是Java的一部分,它代表J2SE,其中包含Java的所有基礎(chǔ)知識,包括一些原理和軟件包詳細信息。Java核心概念涵蓋了所有OOPS概念,特殊運算符,數(shù)據(jù)類型,包裝類,異常處理,多態(tài)性,多線程,鏈接列表,隊列,堆棧,數(shù)組列表僵驰。它最常用于開發(fā)桌面應(yīng)用程序和服務(wù)器環(huán)境(開發(fā)獨立應(yīng)用程序)就斤。

JDK和JVM有什么區(qū)別?

JDK(Java開發(fā)工具包)是一個開發(fā)目的,它還包括執(zhí)行環(huán)境。但是JVM純粹是運行時環(huán)境,因此您將無法使用JVM編譯源文件庸推。

OOPS的基本概念是什么?

抽象化

多態(tài)性

繼承

封裝

你能解釋多態(tài)嗎?

多態(tài)被簡要描述為“一個接口,許多實現(xiàn)”常侦。多態(tài)性是能夠在不同上下文中為某事物賦予不同含義或用法的一種特征-具體來說,就是允許諸如變量,函數(shù)或?qū)ο笾惖膶嶓w具有多種形式浇冰。

內(nèi)部類和子類之間有什么區(qū)別?

內(nèi)部類是嵌套在另一個類中的一個類。內(nèi)部類具有對其嵌套的類的訪問權(quán)限,并且可以訪問在外部類中定義的所有變量和方法聋亡。

子類是從另一個稱為超類的類繼承的類肘习。子類可以訪問其父類的所有公共和受保護的方法以及字段。

Java類的private,public是什么?

在Java中,訪問說明符是在定義訪問范圍的類名之前使用的關(guān)鍵字坡倔。類的訪問說明符的類型為:

  • public:類,方法,字段可從任何地方訪問漂佩。
  • Protected::方法,字段可以從它們所屬的同一類或子類以及同一包的類中訪問,但不能從外部訪問。
  • default: Method,Field,class只能從同一程序包訪問,而不能從其本機程序包外部訪問罪塔。
  • private:方法,字段可以從它們所屬的相同類中訪問投蝉。
您能解釋一下靜態(tài)方法和靜態(tài)變量嗎?

當需要在一個類的多個對象之間共享方法或變量,而不是為每個對象創(chuàng)建單獨的副本時,我們使用static關(guān)鍵字使所有對象共享一個方法或變量。

Java支持運算符重載嗎?

沒有

可以重載方法嗎?

是的,派生類仍然可以覆蓋重載的方法征堪。多態(tài)仍然可能發(fā)生瘩缆。編譯器將不會綁定方法調(diào)用,因為它已被重載,因為它可能會在現(xiàn)在或?qū)肀桓采w。

什么是數(shù)據(jù)封裝,其意義是什么?

封裝是面向?qū)ο缶幊讨械囊粋€概念,用于在單個單元中組合屬性和方法佃蚜。

封裝可幫助程序員遵循模塊化的方法進行軟件開發(fā),因為每個對象都有自己的一組方法和變量,并且其功能獨立于其他對象庸娱。封裝還用于數(shù)據(jù)隱藏。

什么是單例模式?舉例說明其用法

Java中的單例類只能有一個實例,因此其所有方法和變量都只屬于一個實例谐算。單例類概念對于需要限制一個類的對象數(shù)量的情況很有用涌韩。

單例使用情況的最佳示例是,由于某些驅(qū)動程序限制或任何許可問題,只有一個數(shù)據(jù)庫連接存在限制。

什么是守護線程?

它是一個線程,不會阻止JVM在程序完成但該線程仍在運行時退出氯夷。守護程序線程的一個示例是垃圾回收臣樱。

Java中的循環(huán)是什么?三種循環(huán)類型是什么?

循環(huán)在編程中用于重復執(zhí)行一條語句或語句塊。Java中有三種循環(huán)類型:

for

在Java中,for循環(huán)用于重復執(zhí)行給定次數(shù)的語句腮考。當程序員知道執(zhí)行語句的次數(shù)時,將使用for循環(huán)雇毫。

While循環(huán)

當某些語句需要重復執(zhí)行直到滿足條件時,使用while循環(huán)。在while循環(huán)中,在執(zhí)行語句之前先檢查條件踩蔚。

do While

Do While循環(huán)與while循環(huán)相同,只是執(zhí)行語句塊后檢查條件的不同棚放。因此,在do while循環(huán)的情況下,語句至少執(zhí)行一次。

您可以定義死鎖嗎?

死鎖描述了一種情況,其中兩個或多個線程永遠被阻塞,互相等待馅闽。

什么是無限循環(huán)?如何聲明無限循環(huán)?

無限循環(huán)無條件運行,并且無限運行飘蚯。通過在語句塊的主體中??定義任何中斷邏輯,可以中斷無限循環(huán)。

無限循環(huán)聲明如下:

for(;;)

{

//要執(zhí)行的語句

//添加任何循環(huán)中斷邏輯

}

Continue和break語句有什么區(qū)別?

中斷和繼續(xù)是循環(huán)中使用的兩個重要關(guān)鍵字福也。在循環(huán)中使用break關(guān)鍵字時,循環(huán)會立即中斷,而在使用continue關(guān)鍵字時,當前迭代會中斷,并且循環(huán)會繼續(xù)進行下一次迭代局骤。

在下面的示例中,當計數(shù)器達到4時,循環(huán)中斷。

for (counter=0;counter
  System.out.println(counter);
  If (counter==4) {
    Break;
  }
}

在下面的示例中,當計數(shù)器達到4時,循環(huán)會跳至tonext迭代,而continue關(guān)鍵字之后的所有語句都將跳過當前迭代暴凑。

for (counter=0;counter
  System.out.println(counter);
  If (counter==4) {
    continue;
  }
  System.outprintln(“This will not get printed when counter is 4”);
}
Java中的double和float變量有什么區(qū)別?

在Java中,float占用4個字節(jié)的內(nèi)存,而Double占用8個字節(jié)的內(nèi)存峦甩。浮點數(shù)是單精度浮點十進制數(shù),而雙精度數(shù)是雙精度十進制數(shù)。

什么是javac?

javac從* .java文件生成Java字節(jié)碼现喳。它是您的源代碼的中間表示,其中包含指示

Java中的最終關(guān)鍵字是什么?舉個例子

在Java中,使用關(guān)鍵字Final聲明一個常量凯傲。值只能分配一次,分配后不能更改常量的值犬辰。

在下面的示例中,聲明了名稱為const_val的常量,并為其分配了一個值:

private Final int const_val=100

當一個方法聲明為final方法時,它不能被子類覆蓋。此方法比任何其他方法都快,因為它們在編譯時已解決冰单。

當一個類聲明為final時,則不能將其子類化幌缝。示例String,Integer和其他包裝器類。

什么是三元運算符?

三元運算符(也稱為條件運算符)用于根據(jù)布爾值評估來決定將哪個值分配給變量诫欠。表示為?

在下面的示例中,如果等級為1,則為狀態(tài)分配值“Done”,否則為“Pending”涵卵。


public class conditionTest {

    public static void main(string args[]) {
    
        String status;
        
        int rank;
        
        status= (rank == 1) ? “Done”: “Pending”;
    
    }

}
Java中有6種不同類型的運算符?

在Java中,運算符可以分為以下六種類型:

算術(shù)運算符

用于算術(shù)計算。例如+,-,*,/,%,++,–

關(guān)系運算符

用于關(guān)系比較呕诉。例如==,!=,>,<,<=,> =

按位運算符

用于逐位操作缘厢。例如&,|,^,?

邏輯運算符

用于邏輯比較吃度。例如&&,|| ,!

賦值運算符

用于為變量分配值甩挫。例如=,+ =,-=,* =,/ =

Java派生所有類的基類是什么?

java.lang.object

Java中的main()方法可以返回任何數(shù)據(jù)嗎?

在Java中,main()方法無法返回任何數(shù)據(jù),因此,始終使用無效的返回類型進行聲明。

什么是Java包?包裝的意義是什么?

在Java中,包是類和接口的集合,這些類和接口相互關(guān)聯(lián)在一起,因此捆綁在一起椿每。軟件包的使用有助于開發(fā)人員對代碼進行模塊化,并對代碼進行分組以進行適當?shù)闹赜靡琳摺⒋a打包到Packages中之后,就可以將其導入其他類中并使用了。

我們可以在沒有任何抽象方法的情況下將類聲明為Abstract嗎?

是的,即使沒有任何抽象方法,我們也可以在類名之前使用abstract關(guān)鍵字來創(chuàng)建一個抽象類间护。但是,如果一個類甚至具有一個抽象方法,則必須將其聲明為抽象方法,否則將產(chǎn)生錯誤亦渗。

堆內(nèi)存和堆棧內(nèi)存有什么區(qū)別?

堆內(nèi)存由應(yīng)用程序的所有部分使用。每當創(chuàng)建對象時,它始終存儲在堆空間中,并且堆棧存儲器包含對該對象的引用汁尺。內(nèi)存管理在Heap內(nèi)存中更為復雜,因為它在全局范圍內(nèi)使用法精。

堆棧存儲器僅由一個執(zhí)行線程使用。堆棧內(nèi)存僅包含局部原始變量和堆空間中對象的引用變量痴突。堆棧中的內(nèi)存管理以LIFO方式完成

Java中的抽象類和接口有什么區(qū)別?

抽象類和接口之間的主要區(qū)別在于,接口只能擁有沒有具體實現(xiàn)的公共靜態(tài)方法的聲明,而抽象類可以具有帶有或不帶有具體實現(xiàn)的帶有任何訪問說明符(公共,私有等)的成員搂蜓。

使用抽象類和接口的另一個主要區(qū)別是,實現(xiàn)接口的類必須實現(xiàn)接口的所有方法,而從抽象類繼承的類則不需要實現(xiàn)其超類的所有方法。

一個類可以實現(xiàn)多個接口,但只能擴展一個抽象類辽装。

接口對抽象類的性能影響是什么?

與抽象類相比,接口的性能較慢,因為接口需要額外的間接調(diào)用帮碰。開發(fā)人員要考慮的另一個關(guān)鍵因素是,任何類只能擴展一個抽象類,而一個類可以實現(xiàn)許多接口。

每當在類中實現(xiàn)接口時,使用接口也給開發(fā)人員帶來了額外的負擔;開發(fā)人員被迫實現(xiàn)每種接口方法拾积。

導入軟件包是否也可以在Java中導入其子軟件包?

在Java中,當導入包時,不會導入其子包,并且如果需要,開發(fā)人員需要分別導入它們殉挽。

例如,如果開發(fā)人員導入了一個軟件包university。*,則將裝入名為university的軟件包中的所有類,但不會裝入該子軟件包中的任何類拓巧。

我們可以將類的主要方法聲明為私有方法嗎?

在Java中,main方法必須是public static以便正確運行任何應(yīng)用程序斯碌。如果將main方法聲明為私有方法,則開發(fā)人員將不會獲得任何編譯錯誤,它將無法執(zhí)行,并會給出運行時錯誤。

我們?nèi)绾瓮ㄟ^引用將參數(shù)傳遞給函數(shù),而不是通過值傳遞?

在Java中,我們只能通過值而不是通過引用將參數(shù)傳遞給函數(shù)肛度。

如何在Java中序列化對象?

在Java中,要通過序列化將對象轉(zhuǎn)換為字節(jié)流,該類將實現(xiàn)一個名為Serializable的接口输拇。實現(xiàn)可序列化接口的類的所有對象均被序列化,其狀態(tài)保存在字節(jié)流中。

什么時候應(yīng)該使用序列化?

當需要通過網(wǎng)絡(luò)傳輸數(shù)據(jù)時,使用串行化贤斜。使用序列化,可以保存對象的狀態(tài)并將其轉(zhuǎn)換為字節(jié)流策吠。字節(jié)流通過網(wǎng)絡(luò)傳輸,并且在目標位置重新創(chuàng)建對象逛裤。

在Java中,在try塊后面緊跟一個catch塊是否強制進行異常處理?

嘗試阻止之后,需要緊接著是Catch阻止,finally阻止或二者兼有。從try塊引發(fā)的任何異常都需要捕獲在catch塊中,或者必須在代碼中止之前將要執(zhí)行的任何特定任務(wù)放入Final塊中猴抹。

即使在異常塊中發(fā)生某些異常,是否有任何方法可以跳過最終的異常塊?

如果在Try塊中引發(fā)異常,則控制傳遞到catch塊(如果存在),否則傳遞到finally塊带族。當發(fā)生異常時,總是執(zhí)行finally塊,避免在finally塊中執(zhí)行任何語句的唯一方法是通過在try塊的末尾編寫以下代碼行來強行中止代碼:

System.exit(0);

一個類可以有多個構(gòu)造函數(shù)嗎?

是的,一個類可以具有多個帶有不同參數(shù)的構(gòu)造函數(shù)。用于創(chuàng)建對象的構(gòu)造函數(shù)取決于創(chuàng)建對象時傳遞的參數(shù)蟀给。

super關(guān)鍵字有什么作用?

當您在子類中重寫方法時,可以使用super關(guān)鍵字來訪問該方法蝙砌。

我們可以重寫類的靜態(tài)方法嗎?

我們不能覆蓋靜態(tài)方法。靜態(tài)方法屬于一個類,而不屬于單個對象,并且在編譯時(而不是在運行時)解析跋理。即使我們嘗試覆蓋靜態(tài)方法,也不會遇到編譯錯誤,也不會在運行代碼時產(chǎn)生覆蓋的影響择克。

public class superclass {
    public void displayResult() {
        System.out.println(“Printing from superclass”);
    }
}

public class subclass extends superclass {

    public void displayResult() {
    
        System.out.println(“Displaying from subClass”);
        
        super.displayResult();
        
    }
    
    public static void main(String args[]) {
    
        subclass obj=new subclass();
        
        obj.displayResult();
    
    }

}

Output will be:

Displaying from subclass

Displaying from superclass
字符串是Java中的數(shù)據(jù)類型嗎?

字符串不是Java中的原始數(shù)據(jù)類型。在Java中創(chuàng)建字符串時,它實際上是創(chuàng)建的Java.Lang.String類的對象前普。創(chuàng)建此字符串對象后,可以在該字符串對象上使用String類的所有內(nèi)置方法肚邢。

  1. Java內(nèi)存管理面試指南一
  2. Java基礎(chǔ)面試指南一
  3. Java基礎(chǔ)面試指南二
  4. Java基礎(chǔ)面試指南三
  5. Java基礎(chǔ)面試指南四
  6. Java線程面試指南一
  7. Java線程面試指南二
  8. Redis面試指南一
  9. Kafka面試指南一
  10. Spring面試指南一
  11. SpringBoot面試指南一
  12. 微服務(wù)面試指南一

作者:分布式編程
出處:https://zthinker.com/
如果你喜歡本文,請長按二維碼,關(guān)注 分布式編程
.

分布式編程

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末拭卿,一起剝皮案震驚了整個濱河市骡湖,隨后出現(xiàn)的幾起案子丸相,更是在濱河造成了極大的恐慌咐旧,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,607評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件拉岁,死亡現(xiàn)場離奇詭異惠桃,居然都是意外死亡浦夷,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,239評論 3 395
  • 文/潘曉璐 我一進店門辜王,熙熙樓的掌柜王于貴愁眉苦臉地迎上來劈狐,“玉大人,你說我怎么就攤上這事誓禁⌒赶ⅲ” “怎么了?”我有些...
    開封第一講書人閱讀 164,960評論 0 355
  • 文/不壞的土叔 我叫張陵摹恰,是天一觀的道長辫继。 經(jīng)常有香客問我,道長俗慈,這世上最難降的妖魔是什么姑宽? 我笑而不...
    開封第一講書人閱讀 58,750評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮闺阱,結(jié)果婚禮上炮车,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好瘦穆,可當我...
    茶點故事閱讀 67,764評論 6 392
  • 文/花漫 我一把揭開白布纪隙。 她就那樣靜靜地躺著,像睡著了一般扛或。 火紅的嫁衣襯著肌膚如雪绵咱。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,604評論 1 305
  • 那天熙兔,我揣著相機與錄音悲伶,去河邊找鬼。 笑死住涉,一個胖子當著我的面吹牛麸锉,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播舆声,決...
    沈念sama閱讀 40,347評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼花沉,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了纳寂?” 一聲冷哼從身側(cè)響起主穗,我...
    開封第一講書人閱讀 39,253評論 0 276
  • 序言:老撾萬榮一對情侶失蹤泻拦,失蹤者是張志新(化名)和其女友劉穎毙芜,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體争拐,經(jīng)...
    沈念sama閱讀 45,702評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡腋粥,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,893評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了架曹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片隘冲。...
    茶點故事閱讀 40,015評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖绑雄,靈堂內(nèi)的尸體忽然破棺而出展辞,到底是詐尸還是另有隱情,我是刑警寧澤万牺,帶...
    沈念sama閱讀 35,734評論 5 346
  • 正文 年R本政府宣布罗珍,位于F島的核電站,受9級特大地震影響脚粟,放射性物質(zhì)發(fā)生泄漏覆旱。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,352評論 3 330
  • 文/蒙蒙 一核无、第九天 我趴在偏房一處隱蔽的房頂上張望扣唱。 院中可真熱鬧,春花似錦、人聲如沸噪沙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,934評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽正歼。三九已至霹购,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間朋腋,已是汗流浹背齐疙。 一陣腳步聲響...
    開封第一講書人閱讀 33,052評論 1 270
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留旭咽,地道東北人贞奋。 一個月前我還...
    沈念sama閱讀 48,216評論 3 371
  • 正文 我出身青樓,卻偏偏與公主長得像穷绵,于是被迫代替她去往敵國和親轿塔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 44,969評論 2 355

推薦閱讀更多精彩內(nèi)容