核心Java面試答案不正確

總覽

在Internet上,Java面試問題和答案從一個網站復制到另一個網站。 這可能意味著錯誤或過時的答案可能永遠不會得到糾正。 這是一些不太正確或已經過時的問題和答案。 即是Java 5.0之前的版本。

每個提供的問題后都有兩個部分。 斜體的第一部分指示答案不完整/錯誤。 最后一部分以純格式提供完整/正確的答案。

參數可以通過幾種方式傳遞給子例程并進行解釋?

參數可以通過兩種方式傳遞。 它們通過價值傳遞,通過參考傳遞。
按值傳遞:此方法將參數的值復制到子例程的形式參數中。
通過引用傳遞:在此方法中,對參數的引用(而不是參數的值)傳遞給參數。

Java僅支持按值傳遞。 您可以按值傳遞引用,但是在Java中不能按引用傳遞。 Java引用可以描述為“通過共享調用”,但這并不常用。

什么是垃圾回收?如何明確調用它?

當某個對象不再由任何變量引用時,java會自動回收該對象使用的內存。 這稱為垃圾收集。 系統。 gc()方法可用于顯式調用它。

當對象不再具有來自Root上下文的強引用時,就可以進行清除。 具有弱參考或軟參考的對象可以清除。 沒有強引用的對象可能無法清除(即,沒有保證將運行GC,次要GC不會清除使用期限的對象)

System.gc() 提示應該運行Full GC。 可以使用命令行選項禁用它。

什么是瞬態和揮發性修飾劑?

瞬態:瞬態修飾符僅適用于變量,并且不存儲為對象持久性狀態的一部分。 暫態變量未序列化。
易失性:易失性修飾符僅適用于變量,它告訴編譯器,由易失性修改的變量可能會被程序的其他部分意外更改。

瞬態只能應用于字段,而不能應用于局部變量。 它可以應用于靜態變量,但通常會被忽略。 臨時字段不會自動序列化,但是可以通過自定義序列化進行序列化,例如writeObject和readObject()

volatile只能應用于字段,并告訴JIT而不是告訴編譯器,每次訪問都必須獲取該字段的緩存一致性副本。 (通常來自“主”內存)

解釋關鍵字transient的用法?

此關鍵字指示此成員變量的值不必與對象序列化。 當將反序列化該類時,將使用其數據類型的默認值(即,對于整數為零)來初始化此變量。

此關鍵字表示該字段不能自動序列化。 它不會自動反序列化,并保留該字段的默認值。 Integer的默認值為nullint的默認值為0

什么是方法重載和方法重載?

方法重載:當類中具有相同方法名,不同參數的方法被稱為方法重載時。
方法覆蓋:當類中具有相同方法名稱和相同參數的方法被稱為方法覆蓋。

當兩個方法具有相同的名稱但簽名不同時,就會發生方法重載。 簽名包括參數類型和通用類型。 可以使用不同的參數調用單個方法,而可以使用相同的參數調用兩個重載方法。 即它的簽名而不是重要的論據。

僅當子類具有與父類中的方法相同的簽名時,才發生方法重寫。

Integer和int有什么區別?

  1. 整數是在Java中定義的類。 lang包,而int是用Java語言本身定義的原始數據類型。 Java不會自動從一種轉換為另一種。
  2. 整數可以用作需要對象的方法的參數,而整數可以用于計算。

Integer是對包裝int的對象的引用。自添加自動裝箱和拆箱以來,主要區別在于Integer可以為null,并且==運算符比較Integer的引用和int類型的實際值。

Integer i1 = 1;
Integer i2 = 1;
// true as the same autoboxed Integer is used.
System.out.println(i1 == i2); Integer i3 = -200;
Integer i4 = -200;
// false as different autoboxed Integer objects are used.
System.out.println(i3 == i4);

線程的不同狀態是什么?

不同的線程狀態為就緒,運行,等待和死機。

由于Java 5.0應該是正在開發的大多數Java系統,因此Thread.State類將線程可能的狀態列出為

  • NEW –尚未啟動的線程處于此狀態。
  • 可運行–在Java虛擬機中執行的線程處于此狀態。
  • BLOCKED –已阻塞,等待監視器鎖定的線程處于此狀態。
  • 等待中–無限期等待另一個線程執行特定操作的線程處于此狀態。
  • TIMED_WAITING –正在等待另一個線程執行操作的線程最多達到指定的等待時間,該線程處于此狀態。
  • 終止–退出的線程處于此狀態。

所有班級的基礎班是哪一個?

java.lang.Object

對于自定義類,這是正確的。 對于基本類型,例如int.class,void.class和Object本身沒有超類。

Class parent = boolean.class.getSuperclass(); // returns null

什么是守護線程?

在后臺運行的Theards [sic]被稱為守護進程線程。 守護程序線程是一個線程,一旦進入運行狀態,該線程便沒有任何機會運行其他線程,而它也沒有任何機會運行其他線程。

守護程序線程是不會阻止JVM關閉的任何線程。 任何線程都可以視為“后臺”線程。 守護程序線程被賦予與非守護程序線程相同的優先級(基于它們的優先級)。當守護程序線程正在運行時,它不會阻止另一個線程與非守護程序線程在運行上有任何不同。

守護程序線程是低優先級的線程,它在后臺間歇地運行,為Java運行時系統執行垃圾回收操作。

垃圾收集器是守護線程的一個示例。 守護程序線程可以具有較高的優先級,并且可以一直運行。

對switch語句的每種情況的值施加什么限制?

在編譯時,switch語句的每個case值必須計算為int值

從Java 5.0開始,支持打開枚舉,從Java 7開始,支持打開String。

什么是Java Bean?

Java Bean是一種軟件組件,其設計旨在可在各種不同的環境中重用。

恕我直言:這個答案含糊不清,可能在談論任何事情。

Java Bean是“可序列化的Java對象,具有一個null構造函數,并允許使用getter和setter方法訪問屬性。”

為什么要使用同步塊與同步方法?

與同步方法相比,同步塊放置鎖的時間更短。

這可能是正確的,但不能保證。 通常,同步塊用于通過同步方法來鎖定對對象的多次調用。 IMHO用于同步塊的最常見的用途是鎖定在以外另一個目的

Map<key, value=""> map = Collections.synchronizedMap(new LinkedHashMap<key, value="">());
// perform multiple operations in a thread safe manner
synchronized(map) {
Value value = map.get(key);
if (value == null)
map.put(key, value = new Value(key));
return value;
}

Java中哪一個更快?

for(int i = 100000; i > 0; i--) {}
for(int i = 1; i < 100001; i++) {}

答:最快的是第二個。 服務器JVM可以檢測并消除不執行任何操作的循環。 當循環迭代大約10,000次時,將編譯帶有任一循環的方法。 (基于-XX:CompileThreshold = 10000)第一個循環將花費一些時間來檢測它沒有執行任何操作,但是第二個循環將被編譯。

哪個Java運算符是正確的關聯?

=運算符是右關聯的。

根據http://introcs.cs.princeton.edu/java/11precedence/列表,從右到左的關聯運算符是。 (不止一個)

  • ( ) 投
  • 新對象
  • ? :
  • 分配= + =-= * = / =%=&= ^ = | = << = >> = >>> =

Java運行時系統生成什么類的異常?

Java運行時系統生成RuntimeException和Error異常。

恕我直言:這是對另一個問題的答案。 這是對的回答; 什么是運行時超類,未經檢查的異常?

Java運行時可以生成Error,Exception或RuntimeException。

參考: 不正確的Java核心訪談在Vanilla Java上 ,我們的JCG合作伙伴 Peter Lawrey給出了答案 。

相關文章:

翻譯自: https://www.javacodegeeks.com/2011/07/incorrect-core-java-interview-answers.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:
http://www.pswp.cn/news/374884.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374884.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374884.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

138.括號序列(區間型DP)

3657 括號序列 時間限制: 1 s空間限制: 256000 KB題目等級 : 黃金 Gold題解查看運行結果題目描述 Description我們用以下規則定義一個合法的括號序列&#xff1a; &#xff08;1&#xff09;空序列是合法的 &#xff08;2&#xff09;假如S是一個合法的序列&#xff0c;則 (S) …

C# 執行批處理文件(*.bat)的方法代碼

代碼如下:static void Main(string[] args){Process proc null;try{ string targetDir string.Format("D:\adapters\setup");//this is where mybatch.bat liesproc new Process();proc.StartInfo.WorkingDirectory targetDir;proc.StartInfo.Fil…

C語言空格怎么表示

1.直接敲空格就行&#xff0c;或者使用ASCII碼值賦值為32。 空格沒有轉義字符。 printf("12%c45 58",32);輸出 12 45 582.合法轉義字符如下&#xff1a;\a 響鈴(BEL) 、\b 退格(BS)、\f 換頁(FF)、\n 換行(LF)、\r 回車(CR)、\t 水平制表(HT)、\v 垂直制表(VT) 0、…

Tomcat中的零停機部署(和回滾); 演練和清單

親愛的大家&#xff0c; 如果您認為Tomcat不能再進步&#xff0c;那您就錯了。 Tomcat 7引入了所謂的并行部署 。 這是由SpringSource / VMWare貢獻的。 簡而言之&#xff0c;并行部署是一種能夠并行部署一個以上版本的Web應用程序的功能&#xff0c;使所有版本都可以在完全相…

javaweb 學習資源

http://jinnianshilongnian.iteye.com/category/231099轉載于:https://www.cnblogs.com/sishahu/p/5368018.html

HDU 1863 暢通工程(最小生成樹,prim)

題意&#xff1a; 給出圖的邊和點數&#xff0c;要求最小生成樹的代價&#xff0c;注&#xff1a;有些點之間是不可達的&#xff0c;也就是可能有多個連通圖。比如4個點&#xff0c;2條邊:1-2&#xff0c;3-4。 思路&#xff1a; 如果不能連通所有的點&#xff0c;就輸出‘?’…

2000年不算在21世紀

練習3-5 輸出閏年 (15 分) 輸出21世紀中截止某個年份以來的所有閏年年份。注意&#xff1a;閏年的判別條件是該年年份能被4整除但不能被100整除、或者能被400整除。 想當然地以為21世紀是2000~2099&#xff0c;當然沒有通過 if(N > 2000&&N < 2099){for(int i …

使用迭代器時如何避免ConcurrentModificationException

Java Collection類是快速失敗的&#xff0c;這意味著如果在使用迭代器遍歷某個線程的同時更改了Collection&#xff0c;則iterator.next&#xff08;&#xff09;將拋出ConcurrentModificationException 。 在多線程以及單線程環境下都可能出現這種情況。 讓我們通過以下示例探…

Sublime Text 3實用快捷鍵大全

下面是我通過網上教程和文本資料學習sublime Text3時收集的一些實用功能和常用快捷鍵&#xff0c;現在分享出來&#xff0c;如果還有其它的好用的功能可以在下面留言&#xff0c;以便互相學習和交流&#xff0c;謝謝&#xff01;。 選擇類 CtrlD 選中光標所占的文本&#xff0c…

Tomcat中配置JNDI數據源

準備工作&#xff1a; Tomcat版本&#xff1a;tomcat6.0以上 下例中均使用MySQL數據庫 將對應數據源的jar包和MySQL的驅動包拷貝至tomcat的lib文件夾下 一、全局數據源 1步驟一&#xff1a;配置 在tomcat下的conf/server.xml的GlobalNamingResources節點標簽中增加如下配置&…

練習3-8 查詢水果價格 (15 分)

練習3-8 查詢水果價格 (15 分) 給定四種水果&#xff0c;分別是蘋果&#xff08;apple&#xff09;、梨&#xff08;pear&#xff09;、桔子&#xff08;orange&#xff09;、葡萄&#xff08;grape&#xff09;&#xff0c;單價分別對應為3.00元/公斤、2.50元/公斤、4.10元/公…

JavaFX 2.0 beta示例應用程序和思考

我有一段時間回過頭來玩JavaFX&#xff0c;并且在使用該語言方面有好有壞的經驗。 隨著JavaFX 2.0 beta的發布&#xff0c;我想嘗試一下。 在這里&#xff0c;我開發了一個簡單的地址解析應用程序&#xff0c;該應用程序將使用Google地址編碼API來獲取地址并提供該位置的緯度-經…

$Android自定義控件在不同狀態下的屬性

在寫代碼的時候&#xff0c;有時候需要控件在不同狀態下顯示不同的外觀&#xff0c;比如在按鈕按下的時候要變顏色&#xff0c;EditText獲取焦點時候邊框要變顏色等。那么下面就來梳理一下這些是怎么實現的。 &#xff08;一&#xff09;按鈕按下時候變顏色 1、在項目的drawabl…

解析DBR操作系統引導記錄數據

理解文件系統。你必須要熟悉DBR&#xff0c;下面我們就來看看文件系統解析DBR數據。 Dos Boot Record(DBR)操作系統引導記錄是由操作系統的格式化程序建立的。在文件系統驅動操作不論什么一個磁盤卷時&#xff0c;這一部分的信息將被讀取并作為文件系統在這個磁盤卷上的參數被使…

簡單冒泡排序

將5個數字按從小到大排序。 #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int x[5] {0},temp 0;for(int i 0;i<5;i){scanf("%d",&x[i]);}//冒泡排序&#xff08;升序&#xff09;for(int j 0;j<4;j)//n個…

YouTube Java API入門

在本教程中&#xff0c;我將介紹Google的YouTube API &#xff0c;該API可讓您使用YouTube的功能來啟用應用程序。 YouTube是“殺手級”互聯網應用程序之一&#xff0c;其流量占互聯網總流量的很大一部分。 在開始之前&#xff0c;請確保您已閱讀《 API概述指南》 。 我們將主…

mysql在mac上的坑

默認端口3306&#xff1f; 正確答案&#xff1a;3307 轉載于:https://www.cnblogs.com/dudream/p/5375551.html

ServletContext圖解

servlet之間共享數據資源&#xff01; 轉載于:https://www.cnblogs.com/felixzh/p/4615902.html

C語言怎么輸出百分號%

規律&#xff1a;printf函數中&#xff0c;當出現多個%時&#xff0c;由左至右&#xff0c;每兩個%結合輸出一個% #include <stdio.h> #include <stdlib.h> #include <math.h> int main() {int c 52;printf("% \n %% \n %%% \n %%%% \n %%%%% \n %%%%…

入侵Jasper以獲取JSP頁面的對象模型

為了對我的JSP進行一些檢查和統計分析&#xff0c;我需要一個包含在其中的元素的類似于DOM的層次模型。 但是&#xff0c;解析JSP頁面并不是一件容易的事&#xff0c;最好留給它一個出色的工具-Tomcat&#xff0c;Jetty&#xff0c;GlassFish以及其他所有工具都可以使用Jasper …