大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2022年初級Java面試題

2022年初級Java面試題

更新時間:2022-08-19 09:18:05 來源:動力節點 瀏覽1287次

1.為什么Java是平臺無關的語言?

Java 語言的開發方式使其不依賴于任何硬件或軟件,因為編譯器會編譯代碼,然后將其轉換為可以在多個系統上運行的與平臺無關的字節碼。

運行該字節碼的唯一條件是機器安裝了運行時環境 (JRE)

2.為什么Java不是純粹的面向對象語言?

Java 支持原始數據類型 - byte、boolean、char、short、int、float、long 和 double,因此它不是純面向對象的語言。

3. java中堆內存和棧內存的區別。以及java如何利用它。

堆棧內存是分配給每個單獨程序的內存部分。它是固定的。另一方面,堆內存是未分配給 java 程序的部分,但在需要時可供 java 程序使用,主要是在程序運行時。

Java將此內存用作-

當我們編寫一個java程序時,所有的變量、方法等都存儲在堆棧內存中。

當我們在 java 程序中創建任何對象時,該對象就會在堆內存中創建。它是從堆棧內存中引用的。

示例 -考慮下面的 java 程序:

class Main {
   public void printArray(int[] array){
       for(int i : array)
           System.out.println(i);
   }
   public static void main(String args[]) {
       int[] array = new int[10];
       printArray(array);
   }
}

4. java可以說是完整的面向對象的編程語言嗎?

如果我們聲稱 java 是完整的面向對象的編程語言,那并沒有錯。因為Java中的一切都在類之下。我們可以通過創建對象來訪問它。

但是,如果我們說 java 不是一種完全面向對象的編程語言,因為它支持原始數據類型,如 int、float、char、boolean、double 等。

現在的問題是:Java 是完全面向對象的編程語言嗎?我們可以說——Java 不是一種純粹的面向對象的編程語言,因為它可以直接訪問原始數據類型。而且這些原始數據類型不直接屬于 Integer 類。

5. Java 與 C++ 有何不同?

C++ 只是一種編譯語言,而 Java 既是編譯語言又是解釋語言。

Java 程序與機器無關,而 c++ 程序只能在編譯它的機器上運行。

C++ 允許用戶在程序中使用指針。而java不允許它。Java 在內部使用指針。

C++ 支持多重繼承的概念,而 Java 不支持這一點。正是由于避免了導致鉆石問題的名稱歧義的復雜性。

6. C/C++中使用指針。為什么Java不使用指針?

指針對于初學者來說非常復雜且不安全。Java 專注于代碼的簡單性,而指針的使用可能使其具有挑戰性。指針的使用也可能導致潛在的錯誤。此外,如果使用指針,安全性也會受到影響,因為用戶可以在指針的幫助下直接訪問內存。

因此,通過在 Java 中不包括指針來提供一定程度的抽象。此外,指針的使用會使垃圾收集過程變得非常緩慢和錯誤。Java 使用引用,因為這些不能被操縱,不像指針。

7. java中變量和實例的默認值是什么?

java中的變量沒有默認值。我們需要在使用它之前初始化該值。否則會拋出編譯錯誤(變量可能未初始化)。

但是例如,如果我們創建對象,則默認值將由默認構造函數根據數據類型進行初始化。

如果它是一個引用,那么它將被分配給 null。

如果它是數字,那么它將分配為 0。

如果它是一個布爾值,那么它將被賦值為 false。等等。

8.Java中如何聲明無限循環?

無限循環是那些在沒有任何中斷條件的情況下無限運行的循環。有意識地聲明無限循環的一些例子是:

使用 For 循環:

for (;;)
{
   // Business logic
   // Any break logic
}

使用 while 循環:

while(true){
   // Business logic
   // Any break logic
}

使用 do-while 循環:

do{
   // Business logic
   // Any break logic
}while(true);

9.簡述構造函數重載的概念

構造函數重載是在同名但構造函數參數不同的類中創建多個構造函數的過程。根據參數的數量及其對應的類型,不同類型的構造函數的區分由編譯器完成。

class Hospital {
int variable1, variable2;
double variable3;
public Hospital(int doctors, int nurses) {
 variable1 = doctors;
 variable2 = nurses;
}
public Hospital(int doctors) {
 variable1 = doctors;
}
public Hospital(double salaries) {
 variable3 = salaries
}
}

這里定義了三個構造函數,但它們根據參數類型及其數量而有所不同。

10.在java中定義復制構造函數。

Copy Constructor 是當我們想將值從同一個類的舊對象初始化到新對象時使用的構造函數。

class InterviewBit{
   String department;
   String service;
   InterviewBit(InterviewBit ib){
       this.departments = ib.departments;
       this.services = ib.services;
   }
}

在這里,我們從構造函數中的舊對象值初始化新對象值。雖然,這也可以在對象克隆的幫助下實現。

11.一個Java程序中可以同時存在一個try塊和多個catch塊。解釋。

是的,可以存在多個 catch 塊,但特定方法應該先于一般方法,因為只有滿足 catch 條件的第一個 catch 塊被執行。給定的代碼說明了相同的情況:

public class MultipleCatch {
public static void main(String args[]) {
 try {
  int n = 1000, x = 0;
  int arr[] = new int[n];
  for (int i = 0; i <= n; i++) {
   arr[i] = i / x;
  }
 }
 catch (ArrayIndexOutOfBoundsException exception) {
  System.out.println("1st block = ArrayIndexOutOfBoundsException");
 }
 catch (ArithmeticException exception) {
  System.out.println("2nd block = ArithmeticException");
 }
 catch (Exception exception) {
  System.out.println("3rd block = Exception");
 }
}
}

在這里,第二個 catch 塊將因為除以 0 (i / x) 而被執行。如果 x 大于 0,則將執行第一個 catch 塊,因為 for 循環運行到 i = n 并且數組索引直到 n-1。

12.解釋final關鍵字在變量、方法和類中的使用。

在 Java 中,final 關鍵字用于定義常量 /final 并表示非訪問修飾符。

最終變量:

當一個變量在 Java 中聲明為 final 時,它的值一旦被賦值就不能被修改。

如果任何值尚未分配給該變量,則只能由類的構造函數分配。

最終方法:

聲明為 final 的方法不能被其子類覆蓋。

構造函數不能被標記為最終的,因為無論何時繼承一個類,構造函數都不會被繼承。因此,將其標記為最終沒有意義。Java拋出編譯錯誤說 -modifier final not allowed here

最后一課:

不能從聲明為 final 的類繼承任何類。但是該最終類可以擴展其他類以供其使用。

13.'finally' 塊是否可能不會被執行?如果是,請列出案例。

是的。'finally' 塊可能不會被執行。這些案例是——

假設我們在上面的語句中使用System.exit() 。

如果出現堆棧溢出、內存訪問錯誤等致命錯誤。

14.以下哪項會產生編譯時錯誤?說出原因。

int[] n1 = 新的 int[0];

布爾[] n2 = 新布爾[-200];

雙[] n3 = 新雙[2241423798];

字符[] ch = 新字符[20];

我們在第 3 行得到一個編譯時錯誤。我們將在第 3 行得到的錯誤是 - integer number too large。這是因為數組需要大小為整數。Integer 在內存中占用 4 個字節。并且數字(2241423798)超出了整數的容量。我們可以聲明的最大數組大小是 - ( 2147483647 )。

因為數組需要整數大小,所以沒有一行(1、2 和 4)會給出編譯時錯誤。該程序將編譯良好。但是我們在第 2 行得到了運行時異常。異常是 - NegativeArraySizeException。

這里會發生什么 - 當 JVM 在運行時分配所需的內存時,它會發現大小為負。并且數組大小不能為負數。所以JVM會拋出異常。

15.HashSet 與 TreeSet 有何不同?

盡管 HashSet 和 TreeSet 都沒有同步并確保不存在重復項,但有一些屬性可以將 HashSet 與 TreeSet 區分開來。

實現:對于HashSet,哈希表用于無序存儲元素。然而,TreeSet 使用紅黑樹以有序的方式存儲元素。

復雜性/性能:對于添加、檢索和刪除元素,HashSet 的時間攤銷復雜度為 O(1)。對于 TreeSet,執行相同操作的時間復雜度稍高一些,等于 O(log n)。總體而言,HashSet 的性能比 TreeSet 更快。

方法: hashCode() 和 equals() 是 HashSet 用于在對象之間進行比較的方法。相反,TreeSet 使用 compareTo() 和 compare() 方法來促進對象比較。

對象類型:可以借助 HashSet 存儲異構和空對象。在 TreeSet 的情況下,插入異構對象或空對象時會發生運行時異常。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲国产婷婷香蕉久久久久久 | 亚洲qingse中文字幕久久 | va亚洲va日韩不卡在线观看 | 天天干妹子 | 日韩综合 | 久久这里只有精品免费看青草 | 26uuu色噜噜欧美在线播放 | 天天艹日日干 | 天天干天天干天天干天天 | 精品国产国产综合精品 | 中文国产欧美在线观看 | 在线看片黄色 | 日韩免费一级毛片欧美一级日韩片 | 国产亚洲欧美另类一区二区三区 | 天天干天天骑 | 亚洲一区二区三区四区热压胶 | 国产综合欧美 | 成年女人永久免费观看片 | 91国内精品久久久久影院优播 | 国产综合社区 | 一个色综合网 | 欧美性猛交aa一级 | 欧美日韩中文在线视频 | 欧美性狂猛bbbbbbxxxx | 91精品一区二区 | 一区二区在线不卡 | 精品久久久一二三区 | 亚洲成色综合一区二区三区四区 | 日韩中文字幕视频在线观看 | 国产精品免费看久久久 | 国产―笫一页―浮力影院xyz | 亚洲永久精品ww47 | 国产免费资源 | 在线观看免费亚洲 | 99网站在线观看 | 5x性区m免费毛片视频看看 | 欧美人交性视频在线香蕉 | 国产在线精品观看一区 | 亚洲天码中文字幕第一页 | 中文字幕在线国产 | 免费看爱爱视频 |