Q. 如果主方法被聲明為私有怎么辦憔恳?
回答:
該程序可以正確編譯烁挟,但在運行時它會給出“Main method not public”吩翻。信息兜看。
Q. Java中的引用傳遞和值傳遞是什么意思?
回答:
通過引用傳遞意味著傳遞地址本身而不是傳遞值狭瞎。按值傳遞意味著傳遞值的副本细移。
問:如果您要覆蓋對象的 equals() 方法,您還可以考慮哪種其他方法熊锭?
回答:
哈希碼()
Q. 說明 public static void main(String args[]) 的每個關鍵字的原因弧轧?
回答:
public?– main(..) 是執(zhí)行程序時由 java 環(huán)境調(diào)用的第一個方法,因此必須從 java 環(huán)境訪問它碗殷。因此訪問說明符必須是公開的劣针。
static:Java 環(huán)境應該能夠在不創(chuàng)建類實例的情況下調(diào)用該方法,因此該方法必須聲明為靜態(tài)亿扁。
void?: main不返回任何內(nèi)容,因此返回類型必須為 void
參數(shù) String 表示在命令行中給出的參數(shù)類型鸟廓,而 arg 是在命令行中給出的字符串的數(shù)組从祝。
問:如果我不提供字符串數(shù)組作為方法的參數(shù)怎么辦襟己?
回答:
程序編譯。但在運行時會拋出錯誤“NoSuchMethodError”牍陌。
Q. 為什么 oracle Type 4 驅(qū)動被命名為 oracle 瘦驅(qū)動擎浴?
回答:
Oracle 提供了 Type 4 JDBC 驅(qū)動程序,稱為 Oracle “瘦”驅(qū)動程序毒涧。該驅(qū)動程序包括其自己的完全用Java 編寫的Oracle Net8 的TCP/IP 版本的實現(xiàn)贮预,因此它獨立于平臺,可以在運行時下載到瀏覽器契讲,并且在客戶端不需要任何Oracle 軟件仿吞。此驅(qū)動程序需要服務器端的 TCP/IP 偵聽器,并且客戶端連接字符串使用 TCP/IP 端口地址捡偏,而不是數(shù)據(jù)庫名稱的 TNSNAMES 條目唤冈。
問:什么是 Java API?
回答:
Java API 是大量現(xiàn)成軟件組件的集合银伟,它們提供了許多有用的功能你虹,例如圖形用戶界面 (GUI) 小部件。
問:什么是 GregorianCalendar 類彤避?
回答:
GregorianCalendar 提供對傳統(tǒng)西方日歷的支持傅物。
問:什么是 ResourceBundle 類?
回答:
ResourceBundle 類用于存儲特定于語言環(huán)境的資源琉预,這些資源可以由程序加載董饰,以根據(jù)正在運行的特定語言環(huán)境定制程序的外觀。
問:為什么 Java 中沒有全局變量模孩?
回答:
全局變量是全局可訪問的尖阔。由于以下原因,Java 不支持全局可訪問變量:
全局變量打破了引用透明性
全局變量在命名空間中產(chǎn)生沖突榨咐。
問:什么是 SimpleTimeZone 類介却?
回答:
SimpleTimeZone 類提供對公歷的支持。
問:while 語句和 do 語句有什么區(qū)別块茁?
回答:
while 語句(預測試)在循環(huán)開始時檢查是否應該發(fā)生下一個循環(huán)迭代齿坷。do while 語句(后測)在循環(huán)結束時檢查是否應該發(fā)生循環(huán)的下一次迭代。do 語句將始終至少執(zhí)行一次循環(huán)體数焊。
問:什么是 Locale 類永淌?
回答:
Locale 類用于根據(jù)特定地理、政治或文化區(qū)域的慣例定制程序輸出佩耳。
Q. 描述 OOPS 的原則遂蛀。
回答:
oops 的三個主要原理分別稱為多態(tài)性、繼承性和封裝性干厚。
Q. 解釋繼承原則李滴。
回答:
繼承是一個對象獲取另一個對象的屬性的過程螃宙。繼承允許重用經(jīng)過良好測試的過程,并使更改只需進行一次并在所有相關位置生效
問:什么是隱式轉(zhuǎn)換所坯?
回答:
隱式轉(zhuǎn)換是簡單地將一個實體分配給另一個實體的過程谆扎,而不需要對編譯器進行任何轉(zhuǎn)換指導。這種類型的轉(zhuǎn)換不允許在所有類型的轉(zhuǎn)換中使用芹助,并且可能不適用于所有場景堂湖。
問:sizeof 是 java 中的關鍵字嗎?
回答:
sizeof 不是關鍵字状土。
問:什么是本地方法无蜂?
回答:
本機方法是用 Java 以外的語言實現(xiàn)的方法。
Q. 在 System.out.println() 中声诸,什么是 System酱讶、out 和 println?
回答:
System 是預定義的 final 類彼乌,out 是 PrintStream 對象泻肯,println 是 out 對象中的內(nèi)置重載方法。
問:什么是顯式轉(zhuǎn)換慰照?
回答:
在編譯器被明確告知轉(zhuǎn)換對象的過程中的顯式轉(zhuǎn)換
問:什么是 Java 虛擬機 (JVM)灶挟?
回答:
Java 虛擬機是可以移植到各種基于硬件的平臺上的軟件
問:你對向下轉(zhuǎn)換的理解是什么?
回答:
Downcasting的過程是指從一般類型到更具體的類型的轉(zhuǎn)換毒租,即向下轉(zhuǎn)換層次結構
Q. 哪個類是每個類的超類稚铣?
回答:
目的。
Q. 命名原始 Java 類型墅垮。
回答:
8 種基本類型是 byte惕医、char、short算色、int抬伺、long、float灾梦、double 和 boolean峡钓。另外是字符串。
問:布爾 & 運算符和 && 運算符有什么區(qū)別若河?
回答:
如果計算涉及布爾 & 運算符的表達式能岩,則計算兩個操作數(shù),而 && 運算符是快捷運算符萧福。當計算涉及 && 運算符的表達式時拉鹃,將計算第一個操作數(shù)。如果第一個操作數(shù)返回值 true,則計算第二個操作數(shù)膏燕。如果第一個操作數(shù)的計算結果為假炭庙,則跳過第二個操作數(shù)的計算。
問:Java 如何處理整數(shù)上溢和下溢煌寇?
回答:
它使用結果的那些低位字節(jié),這些字節(jié)可以適合操作允許的類型的大小逾雄。
問:如果我寫的是 static public void 而不是 public static void 怎么辦阀溶?
回答:
程序編譯并正常運行。
問:聲明變量和定義變量有什么區(qū)別鸦泳?
回答:
在聲明中我們只提到變量的類型和它的名字而不初始化它银锻。定義意味著聲明+初始化。例如字符串做鹰;只是一個聲明 while String s = new String ("bob"); 或字符串 s = “鮑勃”击纬;都是定義。
問:Java 支持什么類型的參數(shù)傳遞钾麸?
回答:
在 Java 中更振,參數(shù)(基元和對象)總是按值傳遞。對于對象饭尝,對象引用本身是按值傳遞的肯腕,因此原始引用和參數(shù)副本都引用同一個對象。
Q. 解釋封裝原理钥平。
回答:
封裝是將數(shù)據(jù)和對數(shù)據(jù)進行操作的代碼綁定或包裝到單個實體中的過程实撒。這使數(shù)據(jù)免受外部接口和誤用的影響。對象允許將過程與它們的數(shù)據(jù)一起封裝以減少潛在的干擾涉瘾≈考慮封裝的一種方法是作為保護性包裝器,防止代碼和數(shù)據(jù)被包裝器外部定義的其他代碼任意訪問立叛。
Q. 你對變量的理解是什么负敏?
回答:
變量是一個命名的內(nèi)存位置,可以在程序中輕松引用囚巴。該變量用于保存數(shù)據(jù)原在,并且可以在程序執(zhí)行過程中更改。
Q. 你對數(shù)字提升的理解是什么彤叉?
回答:
Numeric 提升是將較小的數(shù)值類型轉(zhuǎn)換為較大的數(shù)值類型庶柿,以便可以進行整數(shù)和浮點運算。在數(shù)值提升過程中秽浇,byte浮庐、char 和 short 值被轉(zhuǎn)換為 int 值。如有必要,int 值也會轉(zhuǎn)換為 long 值审残。根據(jù)需要梭域,long 和 float 值轉(zhuǎn)換為 double 值。
Q. 用 java 語言進行強制轉(zhuǎn)換是怎么理解的搅轿?鑄造的種類有哪些病涨?
回答:
將一種數(shù)據(jù)類型轉(zhuǎn)換為另一種數(shù)據(jù)類型的過程稱為 Casting。Java中有兩種類型的強制轉(zhuǎn)換璧坟;這些是隱式轉(zhuǎn)換和顯式轉(zhuǎn)換既穆。
Q. main 方法中 String 數(shù)組的第一個參數(shù)是什么?
回答:
字符串數(shù)組為空雀鹃。它沒有任何元素幻工。這與默認情況下第一個元素是程序名稱的 C/C++ 不同。如果我們在命令行中不提供任何參數(shù)黎茎,那么 main 方法的 String 數(shù)組將為空但不為 null囊颅。
問:如何證明數(shù)組不是空的而是空的?
回答:
打印array.length傅瞻。它將打印 0踢代。這意味著它是空的。但如果它為空俭正,那么它會在嘗試打印 array.length 時拋出 NullPointerException奸鬓。
問:一個應用程序可以有多個具有主方法的類嗎?
回答:
是的掸读。在啟動應用程序時串远,我們提到要運行的類名。JVM 將僅在您提到的名稱的類中查找 main 方法儿惫。因此澡罚,具有 main 方法的多個類之間不存在沖突。
Q. 什么時候加載靜態(tài)變量肾请?它是在編譯時還是運行時留搔?何時在 Java 中加載靜態(tài)塊?
回答:
當類加載器將類帶到 JVM 時會加載靜態(tài)變量铛铁。不必創(chuàng)建對象隔显。靜態(tài)變量在加載后將被分配內(nèi)存空間。靜態(tài)塊中的代碼僅加載/執(zhí)行一次饵逐,即當類首次初始化時括眠。一個類可以有任意數(shù)量的靜態(tài)塊。靜態(tài)塊不是類的成員倍权,它們沒有返回語句掷豺,不能直接調(diào)用。不能包含 this 或 super。它們主要用于初始化靜態(tài)字段当船。
Q. 解釋 Java 虛擬機 (JVM) 的工作原理题画?
回答:
JVM和其他真實的計算機一樣是一個抽象的計算機,它首先使用編譯器將.java文件轉(zhuǎn)換為.class文件(.class只是字節(jié)碼文件德频。)解釋器讀取字節(jié)碼苍息。
. 什么是數(shù)據(jù)封裝?
回答:
可以通過在用于訪問對象字段的類 (JAVABEAN) 中創(chuàng)建“get”和“set”方法來使用封裝壹置。通常档叔,這些字段是私有的,而 get 和 set 方法是公共的蒸绩。封裝可用于驗證要存儲的數(shù)據(jù),對存儲在一個或多個字段中的數(shù)據(jù)進行計算铃肯,或用于自驶家凇(例如,在 Struts 中使用 javabeans 時經(jīng)常出現(xiàn)這種情況)押逼。將數(shù)據(jù)和功能包裝成一個單元稱為數(shù)據(jù)封裝步藕。封裝只不過是將數(shù)據(jù)和相關方法封裝到一個單元中,這樣就可以在相關方法的幫助下訪問數(shù)據(jù)挑格。封裝提供數(shù)據(jù)安全性咙冗。這不過是數(shù)據(jù)隱藏。
Q. 什么是反射 API漂彤?它們是如何實施的雾消?
回答:
反射是在運行時自省類的特性和狀態(tài)并在運行時動態(tài)操作的過程。使用帶有內(nèi)置類(如類挫望、方法立润、字段、構造函數(shù)等)的反射 API 支持這一點媳板。示例:使用 Java 反射 API桑腮,我們可以使用 getName 方法獲取類名。
Q. JVM 自己維護緩存嗎蛉幸?JVM 是否在堆中分配對象破讨?這是操作系統(tǒng)堆還是JVM維護的堆?為什么
回答:
是的奕纫,JVM 自己維護一個緩存提陶。它在 HEAP 上創(chuàng)建對象,但對這些對象的引用位于堆棧上若锁。
Q. 什么是幻象記憶搁骑?
回答:
幻影記憶是錯誤的記憶。現(xiàn)實中不存在的記憶。
問題:命名使用邊框布局作為默認布局的容器仲器?
回答:
默認使用邊框布局的容器有:window煤率、Frame 和 Dialog 類。
如果本文對你有幫助乏冀,別忘記給我個3連 蝶糯,點贊,轉(zhuǎn)發(fā)辆沦,評論昼捍,‘不積跬步,無以至千里”肢扯,希望未來的你能成為:有夢為馬 隨處可棲妒茬!加油,為大家收集了最新的面試資料蔚晨,有文檔乍钻、有攻略、有視頻铭腕。有需要的同學可以關注+點贊私信博主免費領取