日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > java >内容正文

java

java核心面试_Java核心面试问题

發(fā)布時間:2023/12/3 java 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java核心面试_Java核心面试问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

java核心面試

問:如果main方法被聲明為私有該怎么辦?

回答:

該程序可以正確編譯,但在運行時會顯示“ Main方法不公開”。 信息。

問:在Java中按引用傳遞和按值傳遞是什么意思?

回答:

通過引用方式傳遞,傳遞地址本身而不傳遞值。 按值傳遞表示傳遞值的副本 。

問:如果您要覆蓋對象的equals()方法,那么您可能還會考慮其他哪種方法?

回答:

hashCode()

問:什么是字節(jié)碼?

要么

問:是什么使Java具有“編寫一次即可在任何地方運行”的特性?

回答:

所有Java程序都被編譯成包含字節(jié)碼的類文件。 這些字節(jié)碼可以在任何平臺上運行,因此java被稱為獨立于平臺的。

問:解釋每個公共static void main(String args [])關(guān)鍵字的原因?

回答:

  • public – main(..)是Java環(huán)境在執(zhí)行程序時調(diào)用的第一個方法,因此必須可以從Java環(huán)境進行訪問。 因此,訪問說明符必須是公共的。
  • static :Java環(huán)境應(yīng)該能夠在不創(chuàng)建類實例的情況下調(diào)用此方法,因此必須將該方法聲明為static。
  • void :main 不返回任何內(nèi)容,因此返回類型必須為void

參數(shù)String表示在命令行中給出的參數(shù)類型,而arg是在命令行中給出的字符串?dāng)?shù)組。

問:==和.equals()有什么區(qū)別?

要么

問:==和equals之間的區(qū)別是什么

要么

問:==和equals方法之間的區(qū)別

要么

問:您將使用什么來比較兩個String變量–運算符==或方法equals()?

要么

問:在==運算符下,兩個具有相同值的String對象怎么可能不相等?

回答:

==運算符比較兩個對象,以確定它們是否是內(nèi)存中的同一對象,即是否存在于同一內(nèi)存位置。 兩個String對象可能具有相同的值,但位于不同的內(nèi)存區(qū)域中。

==比較引用,而.equals比較內(nèi)容。 方法public boolean equals(Object obj)由Object類提供,并且可以重寫。 僅當(dāng)對象與自身進行比較時,默認(rèn)實現(xiàn)才返回true,這等效于等于運算符==用于將別名與對象進行比較。 字符串,BitSet,日期和文件會覆蓋equals()方法。 對于兩個String對象,值相等意味著它們包含相同的字符序列。 對于Wrapper類,值相等意味著原始值相等。

public class EqualsTest {public static void main(String[] args) {String s1 = “abc”;String s2 = s1;String s5 = “abc”;String s3 = new String(”abc”);String s4 = new String(”abc”);System.out.println(”== comparison : ” + (s1 == s5));System.out.println(”== comparison : ” + (s1 == s2));System.out.println(”Using equals method : ” + s1.equals(s2));System.out.println(”== comparison : ” + s3 == s4);System.out.println(”Using equals method : ” + s3.equals(s4));} }

輸出量

== comparison : true == comparison : true Using equals method : true false Using equals method : true

問:如果從主方法的簽名中刪除了靜態(tài)修飾符怎么辦?

要么

問:如果我不提供String數(shù)組作為方法的參數(shù)怎么辦?

回答:

程序編譯。 但是在運行時會引發(fā)錯誤“ NoSuchMethodError”。

問:為什么將oracle Type 4驅(qū)動程序命名為oracle Thin驅(qū)動程序?

回答:

Oracle提供了Type 4 JDBC驅(qū)動程序,稱為Oracle“瘦”驅(qū)動程序。 該驅(qū)動程序包括自己的完全用Java編寫的Oracle Net8的TCP / IP版本的實現(xiàn),因此它是獨立于平臺的,可以在運行時下載到瀏覽器,并且不需要客戶端上的任何Oracle軟件。 該驅(qū)動程序在服務(wù)器端需要一個TCP / IP偵聽器,并且客戶端連接字符串使用TCP / IP端口地址,而不是數(shù)據(jù)庫名稱的TNSNAMES條目。

您對java final關(guān)鍵字了解什么?

要么

問:什么是final,finalize()和final?

要么

問:什么是finalize()方法?

要么

問:班級或成員是決賽是什么意思?

回答:

  • 最終 –聲明常量
  • 最終 –處理異常
  • 完成 –幫助垃圾收集

接口中定義的變量是隱式最終的。 最終類不能擴展,即,最終類不能被子類化。 出于安全原因,使用String和Integer之類的基本類來完成此操作。 它還允許編譯器進行一些優(yōu)化,并使線程安全性更容易實現(xiàn)。 繼承其類的最終方法時,不能覆蓋該方法。 您不能更改最終變量的值(是常量)。 finalize()方法僅在對象被銷毀和垃圾回收之前使用。 最后,在異常處理中使用的關(guān)鍵字將被執(zhí)行,無論是否引發(fā)異常。 例如,打開連接的關(guān)閉是在finally方法中完成的。

問:什么是Java API?

回答:

Java API是大量現(xiàn)成的軟件組件的集合,這些組件提供了許多有用的功能,例如圖形用戶界面(GUI)小部件。

問:什么是GregorianCalendar類?

回答:

GregorianCalendar支持傳統(tǒng)的西方日歷。

問:什么是ResourceBundle類?

回答:

ResourceBundle類用于存儲特定于語言環(huán)境的資源,該資源可由程序加載,以根據(jù)正在其中運行程序的特定語言環(huán)境來定制程序的外觀。

問:為什么Java中沒有全局變量?

回答:

全局變量可全局訪問。 由于以下原因,Java不支持全局可訪問變量:

  • 全局變量破壞了參照透明性
  • 全局變量在命名空間中創(chuàng)建沖突 。

問:如何在Java程序中將String轉(zhuǎn)換為Number?

回答:

Integer類的valueOf()函數(shù)用于將字符串轉(zhuǎn)換為Number。 這是代碼示例:

String numString = “1000″; int id=Integer.valueOf(numString).intValue();

問:什么是SimpleTimeZone類?

回答:

SimpleTimeZone類提供對公歷的支持。

問:while語句和do語句有什么區(qū)別?

回答:

while語句(預(yù)測試)在循環(huán)開始時進行檢查,以查看是否應(yīng)發(fā)生下一個循環(huán)迭代。 do while語句(測試后)在循環(huán)結(jié)束時進行檢查,以查看是否應(yīng)發(fā)生循環(huán)的下一次迭代。 do語句將始終至少執(zhí)行一次循環(huán)主體。

問:什么是語言環(huán)境類?

回答:

Locale類用于根據(jù)特定地理,政治或文化區(qū)域的慣例定制程序輸出。

問:描述OOPS的原理。

回答:

oop的三個主要原理稱為多態(tài),繼承和封裝。

問:解釋繼承原理。

回答:

繼承是一個對象獲取另一對象的屬性的過程。 繼承允許反復(fù)使用經(jīng)過良好測試的過程,并使更改一次完成并在所有相關(guān)位置生效

問:什么是隱式強制轉(zhuǎn)換?

回答:

隱式轉(zhuǎn)換是簡單地將一個實體分配給另一個實體而沒有對編譯器的任何轉(zhuǎn)換指導(dǎo)的過程。 在所有類型的轉(zhuǎn)換中均不允許使用這種類型的轉(zhuǎn)換,并且可能不適用于所有場景。

int i = 1000; long j = i; //Implicit casting

問:sizeof是Java中的關(guān)鍵字嗎?

回答:

sizeof不是關(guān)鍵字。

問:什么是本機方法?

回答:

本機方法是用Java以外的語言實現(xiàn)的方法。

問:在System.out.println()中,什么是System,out和println?

回答:

System是預(yù)定義的最終類,out是PrintStream對象,而println是out對象中的內(nèi)置重載方法。

問:什么是封裝,繼承和多態(tài)性

要么

解釋多態(tài)的不同形式。

回答:

簡單的多態(tài)性意味著一個名字很多形式 。 多態(tài)使一個實體可以用作不同類型動作的通用類別。 具體行動取決于情況的確切性質(zhì)。

多態(tài)性在Java中以三種不同的形式存在:

  • 方法重載
  • 通過繼承重寫方法
  • 通過Java接口覆蓋的方法

問:什么是顯式強制轉(zhuǎn)換?

回答:

在明確告知編譯器有關(guān)轉(zhuǎn)換對象的過程中進行顯式轉(zhuǎn)換。

long i = 700.20; int j = (int) i; //Explicit casting

問:什么是Java虛擬機(JVM)?

回答:

Java虛擬機是可以移植到各種基于硬件的平臺上的軟件

問:您對向下轉(zhuǎn)換了解什么?

回答:

向下轉(zhuǎn)換的過程是指從通用類型轉(zhuǎn)換為更具體的類型,即向下轉(zhuǎn)換層次結(jié)構(gòu)

問:什么是Java訪問說明符?

要么

問:公共,私有,受保護和默認(rèn)訪問說明符之間有什么區(qū)別?

要么

問:什么是訪問修飾符?

回答:

訪問說明符是確定對類成員的訪問類型的關(guān)鍵字。 這些關(guān)鍵字用于允許對程序部分(例如函數(shù)和變量)進行特權(quán)。 這些是:

  • 公開:所有班級均可使用
  • 受保護 :同一包中的類和任何子類均可訪問。
  • 私人的:只能由他們所屬的班級訪問
  • 默認(rèn)值:它們所屬的類和同一包中的子類可以訪問

問:哪個類別是每個類別的超類?

回答:

目的。

問:命名原始Java類型。

回答:

這8種基本類型是字節(jié),字符,短型,整數(shù),長型,浮點型,雙精度型和布爾型。 附加是字符串。

問:靜態(tài)變量和非靜態(tài)變量有什么區(qū)別?

要么

問:什么是“

要么

問:什么是java中的static?

要么

問:什么是靜態(tài)方法?

回答:

靜態(tài)變量與整個類相關(guān)聯(lián),而不是與類的特定實例相關(guān)聯(lián)。 每個對象將共享一個靜態(tài)變量的通用副本,即,無論從哪個類創(chuàng)建多少個對象,每個類只有一個副本。 類變量或靜態(tài)變量在類中使用static關(guān)鍵字聲明。 它們在類外部聲明并存儲在靜態(tài)內(nèi)存中。 類變量主要用于常量。 靜態(tài)變量始終由類名稱調(diào)用。 該變量在程序啟動時創(chuàng)建,并在程序停止時銷毀。 類變量的范圍與實例變量相同。 它的初始值與實例變量相同,并且在未初始化時(與數(shù)據(jù)類型相對應(yīng))獲得默認(rèn)值。 同樣,靜態(tài)方法是屬于該類的方法,而不是屬于該類的任何對象的方法,并且不適用于某個對象,甚至不需要實例化該類的任何對象。 靜態(tài)方法是隱式最終的,因為重寫是基于對象的類型完成的,并且靜態(tài)方法是附加到類而不是對象上的。 只要原始方法未聲明為final,則超類中的靜態(tài)方法可能會被子類中的另一個靜態(tài)方法遮蓋。 但是,您不能用非靜態(tài)方法覆蓋靜態(tài)方法。 換句話說,您不能將靜態(tài)方法更改為子類中的實例方法。

非靜態(tài)變量在每個對象實例中都具有唯一值。

問:布爾&運算符和&&運算符有什么區(qū)別?

回答:

如果對包含布爾&運算符的表達(dá)式求值,則將對兩個操作數(shù)求值,而&&運算符是快捷運算符。 計算涉及&&運算符的表達(dá)式時,將計算第一個操作數(shù)。 如果第一個操作數(shù)返回值true,則對第二個操作數(shù)求值。 如果第一個操作數(shù)的評估結(jié)果為false,則跳過第二個操作數(shù)的評估結(jié)果。

問:Java如何處理整數(shù)上溢和下溢?

回答:

它使用結(jié)果的那些低位字節(jié) ,這些字節(jié)可以適合該操作所允許的類型的大小。

問:如果我寫靜態(tài)公共無效而不是公共靜態(tài)無效怎么辦?

回答:

程序編譯并正常運行。

問:聲明變量和定義變量有什么區(qū)別?

回答:

在聲明中,我們僅提及變量的類型及其名稱,而沒有對其進行初始化。 定義意味著聲明+初始化。 例如String s; 只是一個聲明,而String s = new String(“ bob”); 或String s =“ bob”; 都是定義。

問:Java支持哪種類型的參數(shù)傳遞?

回答:

在Java中,參數(shù)(基元和對象)始終按值傳遞。 對于對象,對象引用本身通過值傳遞,因此原始引用和參數(shù)副本都引用同一對象。

問:解釋封裝原理。

回答:

封裝是將數(shù)據(jù)和對數(shù)據(jù)進行操作的代碼綁定或包裝到單個實體中的過程。 這樣可以確保數(shù)據(jù)不受外部接口和濫用的影響。 對象允許將過程與其數(shù)據(jù)一起封裝,以減少潛在的干擾。 考慮封裝的一種方法是作為保護性包裝器,以防止代碼和數(shù)據(jù)被包裝器外部定義的其他代碼任意訪問。

問:您對變量有什么了解?

回答:

變量是可以在程序中輕松引用的命名存儲位置。 該變量用于保存數(shù)據(jù),并且可以在程序執(zhí)行過程中對其進行更改。

問:您對數(shù)字促銷有什么了解?

回答:

數(shù)值提升是將較小的數(shù)字類型轉(zhuǎn)換為較大的數(shù)字類型,以便進行整數(shù)和浮點運算。 在數(shù)字提升過程中,字節(jié),字符和短值轉(zhuǎn)換為整數(shù)值。 如果需要,int值也將轉(zhuǎn)換為long值。 根據(jù)需要將long和float值轉(zhuǎn)換為double值。

鑄件有哪些類型?

回答:

將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)的過程稱為強制轉(zhuǎn)換。 Java有兩種類型的轉(zhuǎn)換: 這些是隱式轉(zhuǎn)換和顯式轉(zhuǎn)換。

問:main方法中String數(shù)組的第一個參數(shù)是什么?

回答:

字符串?dāng)?shù)組為空。 它沒有任何元素。 這與C / C ++不同,在C / C ++中,默認(rèn)情況下的第一個元素是程序名稱。 如果我們在命令行上不提供任何參數(shù),則main方法的String數(shù)組將為空,但不能為null。

問:如何證明數(shù)組不是空而是空?

回答:

打印array.length。 它將打印0。這意味著它為空。 但是如果它為null,則在嘗試打印array.length時將拋出NullPointerException。

問:一個應(yīng)用程序可以有多個具有main方法的類嗎?

回答:

是。 在啟動應(yīng)用程序時,我們提到要運行的類名。 JVM僅在您提到其名稱的類中查找main方法。 因此,在具有main方法的多個類之間不存在沖突。

什么時候在Java中完全加載了靜態(tài)塊?

回答:

當(dāng)類加載器將類帶入JVM時,將加載靜態(tài)變量。 不必必須創(chuàng)建對象。 靜態(tài)變量在加載后將被分配內(nèi)存空間。 靜態(tài)塊中的代碼僅被加載/執(zhí)行一次,即在首次初始化該類時。 一個類可以具有任意數(shù)量的靜態(tài)塊。 靜態(tài)塊不是類的成員,它們沒有return語句,因此不能直接調(diào)用它們。 不能包含此或超級。 它們主要用于初始化靜態(tài)字段。

問:同一類中可以有多個主要方法嗎?

回答:

我們可以有多個重載的main方法,但是只有一個具有以下簽名的main方法:

public static void main(String[] args) {}

沒有程序無法編譯。 編譯器說main方法已經(jīng)在該類中定義。

問:解釋Java虛擬機(JVM)的工作方式嗎?

回答:

JVM是一個抽象的計算機,與其他任何真正的計算機一樣,它首先使用Compiler將.java文件轉(zhuǎn)換為.class文件(.class只是字節(jié)代碼文件。),并且Interpreter讀取字節(jié)代碼。

問:如何不使用第三個變量就交換兩個變量?

回答:

添加兩個變量并將其值分配給First變量。 用結(jié)果值減去第二個值。 并分配給Second變量。 用第二個變量的結(jié)果減去第一個變量的結(jié)果并分配給第一個變量。 例:

int a=5,b=10;a=a+b; b=a-b; a=a-b;

解決相同問題的另一種方法

您使用XOR交換。 (最佳方法),如使用上述方法,可能會超出/超出流量。 例如:

int a = 5; int b = 10; a = a ^ b; b = a ^ b; a = a ^ b;

問:什么是數(shù)據(jù)封裝?

回答:

可以通過在類(JAVABEAN)中創(chuàng)建“ get”和“ set”方法來使用封裝,這些方法用于訪問對象的字段。 通常,字段是私有的,而get和set方法是公共的。 封裝可用于驗證要存儲的數(shù)據(jù),對存儲在一個或多個字段中的數(shù)據(jù)進行計算,或者用于自省(例如,在Struts中使用javabeans時通常就是這種情況)。 將數(shù)據(jù)和功能包裝到單個單元中稱為數(shù)據(jù)封裝。 封裝只不過是將數(shù)據(jù)和關(guān)聯(lián)的方法包裝到單個單元中,以便可以借助關(guān)聯(lián)的方法訪問數(shù)據(jù)。 封裝提供數(shù)據(jù)安全性。 就是隱藏數(shù)據(jù)。

如何實施?

回答:

反射是在運行時內(nèi)省類的功能和狀態(tài)并在運行時動態(tài)進行處理的過程。 通過使用帶有內(nèi)置類(例如類,方法,字段,構(gòu)造函數(shù)等)的Reflection API可以支持此功能。示例:使用Java Reflection API,我們可以使用getName方法獲取類名。

為什么

回答:

是的,JVM自己維護一個緩存。 它在HEAP上創(chuàng)建對象,但是對這些對象的引用在堆棧上。

問:什么是幻像記憶?

回答:

虛擬內(nèi)存是錯誤的內(nèi)存。 現(xiàn)實中不存在的內(nèi)存。

問:一種方法可以是靜態(tài)且同步的嗎?

回答:

靜態(tài)方法可以同步。 如果這樣做,JVM將在java.lang上獲得一個鎖。

與對象關(guān)聯(lián)的類實例。 類似于說:

synchronized(XYZ.class) { }

問:String和StringTokenizer有什么區(qū)別?

回答:

StringTokenizer是用于拆分字符串的實用程序類。

例:

StringTokenizer st = new StringTokenizer(”Hello World”); while (st.hasMoreTokens()) { System.out.println(st.nextToken()); }

輸出:

Hello World

問題:什么是瞬時變量?

回答:

暫態(tài)變量不能序列化。 例如,如果在Serializable類中將變量聲明為瞬態(tài)并將該類寫入ObjectStream,則無法將變量的值寫入流,而是從ObjectStream檢索該類時,變量的值將變?yōu)閚ull 。

注意

transient identifies a variable not to be written out when an instance is serialized (It can't be copied to remove system)volatile indicates that the field is used by synchronized threads and that the compiler should not attempt to perform optimizations with it.When more than one thread share a (volatile) data it is checked every time. Every thread keeps the latest value of volatile variable

問題:命名使用“邊框布局”作為默認(rèn)布局的容器嗎?

回答:

默認(rèn)使用“邊框布局”的容器是:window,Frame和Dialog類。

問題:通過同步您了解什么?

回答:

同步是以一種方式控制多個線程對共享資源的訪問的過程,即一次僅一個線程可以訪問一個資源。 在非同步多線程應(yīng)用程序中,一個線程可能會修改共享對象,而另一線程正在使用或更新對象的值。 同步可防止此類數(shù)據(jù)損壞。

例如同步功能:

public synchronized void Method1 () {// Appropriate method-related code.}

例如,在函數(shù)內(nèi)部同步代碼塊:

public myFunction (){synchronized (this) {// Synchronized code here.} }

參考: Sunil Gulabani博客上來自我們JCG合作伙伴 Sunil Gulabani的核心Java面試問題 。

翻譯自: https://www.javacodegeeks.com/2013/09/core-java-interview-questions.html

java核心面試

總結(jié)

以上是生活随笔為你收集整理的java核心面试_Java核心面试问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。