當前位置:學問谷 >

職場範例 >面試 >

最新Java基礎面試題

最新Java基礎面試題

Java基礎面試題(一)

最新Java基礎面試題

1.面向物件的特徵

1)抽象

抽象就是忽略一個主題中與當前目標無關的那些方面,一邊更充分地注意與目標有關的方面。抽象並不打算了解全部問題,而只是選擇其中的一部分,暫不用部分細節。抽象包括兩個方面,一是過程抽象,二是資料抽象。

2)繼承

在定義和實現一個類的時候,可以在一個已經存在的類的基礎之上來進行,把這個已經存在的類所定義的內容作為自己的內容,並可以加入若干新的內容,或修改原來的方法使之更適合特殊的需要,這個就是繼承。繼承是子類自動貢獻父類資料和方法的機制,這是類之間的一種關係,提高了軟體的可重用性和可擴充套件性。

3)封裝

封裝是把過程和資料包圍起來,對資料的訪問只能通過已定義的介面。

4)多型

多型是指程式中所定義的引用變數所指向的具體型別和通過該引用變數發出的方法呼叫在程式設計時並不確定,而是在程式執行期間才確定,即一個引用變數到底會指向哪個類的例項物件,該引用變數發出的方法呼叫到底是哪個類中實現的方法,必須在程式執行期間才能決定。

的基本資料型別

byte, short, int, long, float, double, char, boolean

和Integer有什麼區別

Java提供兩種不同型別:引用型別和原始型別。int是Java的原始資料型別,Integer是Java為int提供的封裝型別。

原始型別 封裝類

boolean Boolean

char Character

byte Byte

short Short

int Integer

long Long

float Float

double Double

封裝型別的例項變數的預設值為null,而原始型別例項變數的預設值跟他們的型別有關。

ng和StringBuffer的區別

String類用來表示那些建立後就不會再改變的字串。

StringBuffer類用來表示內容可變的字串,並鼻孔了修改底層字串的方法,當我們進行字串拼接時使用。

ngBuffer和StringBuilder的區別

它們都是表示可變的字串。StringBuffer是執行緒安全的,StringBulider是非執行緒安全的。兩者方法基本相同,優先採用StringBuilder,在大多數的時候比StringBuffer快。StringBuilder一般使用在方法內部來完成字串拼接功能,StringBuffer要用來全部變數中。

6.執行時異常與一般異常有何異同

Java一共了兩類主要的異常:runtime exception和checked exception。我們經常遇到的IO異常以及SQL異常是checked exception,對於這些非執行時異常必須進行捕獲或丟擲。但並不要求對執行時異常進行處理,如NullPointerException,出現執行時異常後,系統會把異常一直往上層拋,一直遇到處理程式碼塊或Java虛擬機器處理。執行時異常表示虛擬機器的通常操作中可能遇到的異常,是一種常見執行錯誤。

yList,Vector,LinkedList的儲存效能和特性

ArrayList和Vector都是使用陣列方式儲存資料,允許直接按序號索引元素,但是插入元素要涉及陣列元素移動等記憶體操作,所以索引資料快而插入資料慢,Vector由於使用了synchronized方法(執行緒安全),通常效能上較ArrayList差。

LinkedList使用雙向連結串列實現儲存,按序號索引資料需要進行前向或後向遍歷,但是插入資料時只需記錄本項的前後項即可,所以插入速度較快。

ection和Collections的區別

Collection是集合類的上級介面,繼承於他的介面主要有Set和List。

Collections是針對集合類的一個幫助類,他提供一系列靜態方法實現對各種集合的搜尋、排序、執行緒安全化等操作。

9.&和&&的區別

&和&&都有邏輯運算子and的功能,&還可以用作位運算子,&&具有短路功能,即如果第一個表示式為false,則不再計算第二個表示式的值。

Map和Hashtable的區別

HashMap是非執行緒安全的,Hashtable是執行緒安全的。

HashMap允許將null作為一個entry的key或者value,而Hashtable不允許。

l,finally,finalize的區別

final用於宣告屬性,方法和類,分別表示屬性不可變,方法不可覆蓋,類不可繼承。

finally是異常處理語句結構的一部分,表示總是會執行。

finalize是Object類的一個方法,在垃圾收集器執行的時候會呼叫被回收物件的此方法。

p()和wait()有什麼區別

sleep()是Thread類的方法,在指定的毫秒數內讓正在執行的執行緒暫停執行,把執行機會讓給其他執行緒,到指定時間會自動恢復。呼叫sleep不會釋放物件鎖。

wait()是Object類的方法,對此物件呼叫wait方法導致本執行緒放棄物件鎖,進入等待此物件的等待鎖定池,只有針對此物件發出notify/notifyAll方法後,本執行緒才進入物件鎖定池準備獲得物件鎖進入執行狀態。

load和Override的區別。Overload的方法可以改變返回值的型別嗎?

方法的重寫Override和過載Overload是Java多型性的不同表現。重寫Override是父類與子類之間多型性的一種表現,過載Overload是一個類中多型性的一種表現。

方法覆蓋要求引數簽名必須一致,而辦法過載要求引數簽名必須不一致。

方法覆蓋要求返回型別必須一致,而方法過載不做限制。

方法覆蓋只能用於子類覆蓋父類的.方法,方法過載用於同一個類的所有方法。

方法覆蓋對方法的訪問許可權和丟擲的異常有特殊要求,而方法過載沒有限制。

父類的一個方法只能被子類覆蓋一次,而一個方法在所在的類中可以被過載多次。

方法過載可以改變返回值的型別。

r和exception有什麼區別?

error表示恢復不是不可能但很困難的情況下的一種嚴重問題。比如記憶體溢位,不可能指望程式能處理這樣的情況。

exception表示一種設計或實現問題。如果程式執行正常,從不會發生的情況。

15.同步和非同步有何異同,在什麼情況下分別使用他們?舉例說明。

如果資料將線上程間共享,例如正在寫的資料以後可能被另一個執行緒讀到,或者正在讀的資料可能已經被另一個執行緒寫過了,那麼這些資料就是共享資料,必須進行同步存取。

當應用程式在物件上呼叫了一個需要花費很長時間來執行的方法,並且不希望讓程式等待方法的返回時,就應該使用非同步程式設計,在很多情況下采用非同步途徑往往更有效率。

ract class和interface有什麼區別?

宣告方法的存在而不去實現他的類叫做抽象類。介面是抽象類的特例。介面中的所有方法都必須是抽象的,介面中的方法定義預設為public abstract。介面中的變數是全域性常量,即public static修飾的。一個類可以實現多個介面,但只能繼承一個抽象類。

和stack有什麼區別

棧是一種線型集合,新增和刪除的操作在同一端完成,按照後進先出的方式進行處理。堆是棧的一個組成元素。

18. Static Nested Class和Inner Class的不同。

Static Nestec Class是被宣告為靜態static的內部類,它可以不依賴於外部類例項被例項化。而通常的內部類需要在外部類例項化後才能例項化。

中動態include與靜態include的區別

動態include用jsp:include動作實現 它總是檢查所含檔案中的變化,適合用於包含動態頁面,並且可以帶引數。

靜態include用include偽碼實現,不會檢查所含檔案的變化,適合包含靜態頁面<%@ include file="" %>

是什麼?為什麼要有GC?

GC是垃圾回收的意思(Garbage Collection),記憶體處理是程式設計人員出現問題的地方,忘記或者錯誤的記憶體回收會導致程式或系統的不穩定甚至崩潰,Java提供自動垃圾回收機制,自動檢測物件是否超過作用域從而達到自動回收記憶體的目的,Java語言沒有提供釋放已分配記憶體的顯式操作方法。

21. short s1 = 1; s1 = s1 + 1;有什麼錯? short s1 = 1; s1+=1; 有什麼錯?

short s1 = 1; s1 = s1 + 1;// s1+1運算結果是int型,需要強制轉換型別

short s1 = 1; s1 += 1; // 可以正確編譯

d(11.5)等於多少?d(-11.5)等於多少?

d(11.5)==12;d(-11.5)==-11;

round方法返回與引數最接近的長整數,引數加1/2後求其floor。

中有沒有goto?

goto在Java中作為保留字,但沒有被使用。

ng s = new String("xyz");建立了幾個物件?

兩個

25.介面是否可繼承介面?抽象類是否可實現(implements)介面?抽象類是否可繼承實體類(concrete class)?

介面可以繼承介面。

抽象類可以實現介面。

抽象類可以繼承實體類,但前提是實體類必須有明確的建構函式。

,Set,Map是否繼承自Collection介面?

List,Set是,Map不是。

<p< p="">


標籤: 面試題 java
  • 文章版權屬於文章作者所有,轉載請註明 https://xuewengu.com/zh-tw/flzc/mianshi/3r0lr.html