轉載:JAVA企業面試題精選 Java基礎 11-20
轉載:https://blog.csdn.net/qq_38131668/article/details/75000073
&和&&都可以執行關係判斷。二者的區別是:&運算是把邏輯表示式全部計算完,而&&運算具有短路計算的功能。所謂短路計算,是指系統從左到右進行邏輯表示式的計算,一旦出現計算結果已經確定的情況,則計算過程即被終止。
1.12.寫出Java中8種原始型別及其位元組長度
參考答案:
型別名稱 | 位元組空間 | 說明 |
---|---|---|
byte | 1位元組(8位) | 儲存1個位元組的資料 |
short | 2位元組(16位) | 相容性考慮,一般不用 |
int | 4位元組(32位) | 儲存整數(常用) |
long | 8位元組(64位) | 儲存長整數(常用) |
float | 4位元組(32位) | 儲存浮點數 |
double | 8位元組(64位) | 儲存雙精度浮點數(常用) |
char | 2位元組(16位) | 儲存一個字元 |
boolean | 1位元組(8位) | 儲存邏輯變數(true、false) |
1.13.請描述一下JVM載入class檔案的原理機制
參考答案:
JVM中類的裝載是由ClassLoader和它的子類來實現的,Java ClassLoader是一個重要的Java執行時系統元件,它負責在執行時查詢和裝入類檔案中的類。
1.14.你對軟體開發中迭代的含義的理解
參考答案:
軟體開發中,各個開發階段不是順序執行的,而各個階段都進行迭代,然後進入下一個階段的開發。這樣對於開發中的需求變化,及人員變動都能得到更好的適應。
1.15.什麼是程式
參考答案:
程式是作業系統結構的基礎,是一個計算機中正在執行的程式例項。可以分配給處理器並由處理器執行的一個實體,由單一順序的執行顯示,一個當前狀態和一組相關的系統資源所描述的活動單元。
1.16.什麼是垃圾回收?什麼時候觸發垃圾回收?如何降低垃圾回收的觸發頻率?它能保證程式由足夠的可用記憶體嗎?
參考答案:
第一問:
垃圾回收(GC)是Java語言的一個重要特性,作用是釋放不再被使用的記憶體。
第二問:
垃圾回收是由系統進行管理。在系統認為需要的時候自動啟動一個執行緒進行護理。
第三問:
儘量減少垃圾記憶體,也就是新建物件的數量,可以降低垃圾回收的頻率。
第四問:
垃圾回收機制無法保證有足夠的記憶體。
1.17.Java中會存在記憶體洩漏嗎,請簡單描述?
參考答案:
會存在記憶體洩漏。
一般來說記憶體洩漏有兩種情況。一是堆中分配的記憶體,在沒有將其釋放掉的時候,就將所有能訪問這塊記憶體的方式都刪掉;另一種情況則是在記憶體物件已經不需要的時候,還仍然保留著這塊記憶體和它的訪問方式(引用)。第一種情況,在Java中已經由於垃圾回收機制的引入,得到了很好的解決。所以,Java中的記憶體洩漏,主要指的是第二種情況。
下面給出了一個簡單的記憶體洩漏的例子。在這個例子中,我們迴圈申請Object物件,並將所申請的物件放入一個List中,如果我們僅僅是放引用本身,那麼List仍然引用該物件,所以這個物件對GC來說是不可回收的。程式碼如下所示:
List list = new ArraryList(10);
for (int i = 1; i < 100; i++){
Object o = new Object();
list.add(o);
o = null;
}
此時,所有的Object物件都沒有被釋放,因為變數list引用這些物件。
1.18.Java原始檔中是否可以包括多個類,有什麼限制?
參考答案:
一個Java原始檔中可以包含多個類,每個原始檔中至多有一個public類,如果有的話,那麼原始檔的名字必須與之相同。如果原始檔中沒有public類,則原始檔用什麼名字都可以,但最好還好具有特定的意義,免得自己都不記得裡面寫的是什麼了。一般建議一個原始檔中只寫一個Java類。
1.19.列出自己常用的jdk包
參考答案:
常用的JDK包如下:
1.java.lang包:這個包中包含了JDK提供的基礎類,比如String等都是這裡面的,這個包是唯一一個不用匯入就可以使用的包;
2.java.io包:這個包中包含了與輸入輸出相關的類,比如檔案操作等;
3.java.net包:這個包中包含了與網路有關的類,比如URL,URLConnection等;
4.java.util包:這個是系統輔助類,特別是集合類Collction,List,Map等;
5.java.sql包:這個是資料庫操作的類,Connection,Statement,ResultSet等。
1.20.簡單說明什麼遞迴?什麼情況會使用?並使用Java實現一個簡單的遞迴程式?
參考答案:
1.遞迴作為一種演算法在程式設計語言中廣泛應用,是指函式/過程/子程式在執行過程中直接或間接呼叫自身而產生的重入現象。
2.遞迴演算法一般用於解決三類問題:
1)資料的定義是遞迴定義的。(fibonacci(斐波那契)函式)
2)問題解法按遞迴演算法實現。(回溯)
3)資料的結構形式是按遞迴定義的。(數的遍歷,圖的搜尋)
3.下面是使用遞迴演算法實現計算某個整數在二進位制中的個數,程式碼如下所示:
/**
* 計算二進位制中1的個數
* N為奇數,二進位制中1的個數等於N/2的個數
* 例子:
* num=13
* 1.getBinary(13/2=6)+1;
* 2.getBinary(6/2=3)+1;
* 3.getBinary(3/2=1)+1+1;
* 4.getBinary(1)+1+1; getBinary(1)返回1,與後邊兩個1相加得結果3
*/
public static int getBinary(int num){
if (num == 1){
return 1;
}
if (0 == num % 2){ // 是否為偶數
return getBinary(num / 2);
} else {
return getBinary(num / 2) + 1;
}
}
相關文章
- 轉載:JAVA企業面試題精選 OOP 11-20Java面試題OOP
- 轉載: JAVA企業面試題精選 資料庫11-20Java面試題資料庫
- 轉載:JAVA企業面試題精選 Java基礎 41-50Java面試題
- 轉載:JAVA企業面試題精選 Java基礎 31-40Java面試題
- 轉載:JAVA企業面試題精選 Java基礎 1-10Java面試題
- 轉載:JAVA企業面試題精選 Java基礎 21-30Java面試題
- 轉載:JAVA企業面試題精選 OOP 1-10Java面試題OOP
- 轉載:JAVA企業面試題精選 OOP 21-24Java面試題OOP
- 轉載:JAVA企業面試題精選 資料庫1-10Java面試題資料庫
- Java併發面試題精選Java面試題
- java基礎面試題Java面試題
- 最新精選Java面試題,附答案!Java面試題
- Java基礎面試題下Java面試題
- java面試題--基礎上Java面試題
- 【Java面試】Java面試題基礎系列212道(上)Java面試題
- 2021精選 Java面試題附答案(一)Java面試題
- Java面試系列:Java面試題基礎系列228道(上)Java面試題
- Java面試題-基礎篇一Java面試題
- Java面試題-基礎篇二Java面試題
- Java面試題-基礎篇四Java面試題
- Java面試題-基礎篇五Java面試題
- 面試題之:java基礎1面試題Java
- Java基礎知識面試題Java面試題
- Java面試題基礎篇(一)Java面試題
- Java面試題基礎篇(二)Java面試題
- Java面試題基礎篇(三)Java面試題
- JavaSE-Java基礎面試題Java面試題
- Java面試題總結之Java基礎(三)Java面試題
- 【Java面試】Java基礎知識面試題—2020最新版!Java面試題
- Android面試之Java基礎筆試題Android面試Java筆試
- Java面試之Java基礎問題答案口述整理Java面試
- 精選30道Java多執行緒面試題Java執行緒面試題
- 【Java】留下沒有基礎眼淚的面試題,java初級面試筆試題Java面試題筆試
- Java基礎面試題整理-50題(附答案)Java面試題
- Python企業面試題3 —— 基礎篇Python面試題
- Python企業面試題2 —— 基礎篇Python面試題
- Java面試題-基礎篇三(乾貨)Java面試題
- 精選乾貨:Java精選筆試題附答案Java筆試