糯米文學吧

位置:首頁 > 計算機 > java語言

Java由基礎到高級面試題經典問答

java語言9.21K

你所知道的集合類都有哪些?下面就由小編為大家介紹一下Java由基礎到高級面試題經典問答的文章,歡迎閲讀。

Java由基礎到高級面試題經典問答

  Java由基礎到高級面試題經典問答篇1

1、String 和StringBuffer的區別

String:

(1)String 類代表字符串。Java程序中的所有字符串字面值都作為此類的實例實現。

(2)String的長度是不可變的

StringBuffer:

(1)線程安全的可變字符序列。一個類似於 String 的字符串緩衝區,但不能修改。

(2)StringBuffer的長度是可變的。如果你對字符串中的內容經常進行操作,特別是內容要修改時,那麼使用StringBuffer,如果最後需要String,那麼使用StringBuffer的toString()方法

2、啟動一個線程是用run()還是start()? .

start():

線程已經被啟動,正在等待被分配給CPU時間片,也就是説此時線程正在就緒隊列中排隊等候得到CPU資源。

run():

線程獲得CPU資源正在執行任務,此時除非此線程自動放棄CPU資源或者有優先級更高的線程進入,線程將一直運行到結束。

3、final, finally的區別。

final:

(1)final關鍵字可用於修飾類、變量和方法,用於表示它所修飾的類、變量和方法不可改變。

變量: final修飾變量時,表示該變量一旦獲得了初始值之後就不可被改變,final既可修飾成員變量(包括類變量和實例變量),也可以修飾局部變量、形參。

方法:final修飾的方法不可被重寫,如果出於某些原因,不希望子類重寫父類的某個方法,則可以使用final修飾該方法。

類:final修飾的類不可有子類。

finally:

(1)finally關鍵字用於異常處理機制中往往跟在try-catch語句塊之後,finally語句所包含的代碼在任何情況下都會被執行 會被執行,且在try-catch語句塊中只能有一個finally語句塊。

  Java由基礎到高級面試題經典問答篇2

1、List 和 Map 區別?

列表(List):

(1)List列表區分元素的順序,即List列表能夠精確的控制每個元素插入的位置,用户能夠使用索引來訪問List中的元素。

(2)List允許包含重複元素。

映射(Map):

(1)保存的是“鍵-值”對信息,即Map中存儲的每個元素都包括起標識作用的“鍵”和該元素的“值”兩部分,查找數據時需要提供相應的“鍵”,才能查找到該“鍵”所映射的“值”。

(2)Map集合中不能包含重複的.“鍵”,並且每個“鍵”最多隻能映射一個值。

2、JDBC中的PreparedStatement相比Statement的好處

PreperedStatement是Statement的子類,相對於Statement對象而言:

(1) PreperedStatement可以避免SQL注入的問題。

(2)Statement會使數據庫頻繁編譯SQL,可能造成數據庫緩衝區溢出。

(3)PreparedStatement 可對SQL進行預編譯,對相同的插入操作可進行批量添加從而提高數據庫的執行效率。並且PreperedStatement對於sql中的參數,允許使用佔位符的形式進行替換,簡化sql語句的編寫。

3、你所知道的集合類都有哪些?主要方法?

線性表型的集合:List——ArrayList、LinkedList、Vector、Stack

不允許有重複元素的Set集合:Set——HashSet

“鍵-值”對型的集合:Map——HashMap、HashTable

主要方法:

ArrayList:

add(int index, E element)、add(E e)、remove(int index)

remove(Object o)、get(int index)、size()、indexOf(Object obj)

subList(int fromIndex, int toIndex)、clear()

LinkedList:

push(E e)、pop()、pollLast()、pollFirst()、peek()、

get(int index)、getFirst()、getLast()、addFirst(E e)

addLast(E e)、add(E e)、remove()、remove(int index)

remove(Object o)

Vector:

firstElement()、elements()、contains(Object o)、

add(int index, E element) 、clear()

Stack:

構造方法:

Stack st=new Stack(); Stack st = new Stack();

其他方法:

peek() 、pop() 、push(E item) 、empty()、search(Object o)

HashSet:

構造方法

HashSet()

HashSet( c)

其他方法

contains(Object o) 、isEmpty()、iterator()、remove(Object o)

size()

HashMap:

entrySet() 、get(Object key)、isEmpty()、keySet()、

put(K key, V value)

  Java由基礎到高級面試題經典問答篇3

1、abstract class和interface有什麼區別?

設計目的不同:

接口體現的是一種規範,類似於整個系統的“總綱”,它制定了系統各模塊應該遵循的標準 。

抽象類作為多個子類的共同父類,體現的是模板式設計。抽象類可以被當成系統實現過程中的中間產品,這個中間產品已經實現了部分功能,但這個產品還不能當成最終產品,必須交由其子類作更進一步的完善,這種完善可能有幾種不同方式。

用法不同:

在接口裏:

(1)接口裏只能包含不帶方法體的非靜態的抽象方法。

(2)接口裏只能定義靜態常量屬性

(3)接口裏不能包含初始化塊和構造方法

(4)一個類可以實現多個接口,並且必須實現接口中所有的抽象方法。

在抽象類裏:

(1)抽象類中既可以包含普通方法也可以定義靜態方法 。

(2)抽象類既可以包含普通屬性,也可以包含靜態常量屬性

(3)抽象類中以包含初始化塊並且也可以有構造方法,但是不用於創建對象,而是讓子類調用

(4)一個只能繼承一個父類當一個抽象類被子類繼承時子類要麼重寫父類的抽象方法要麼將子類定義為抽象類。

2、java中有幾種方法可以實現一個線程?用什麼關鍵字修飾同步方法?

Java中有兩種實現方法,分別是繼承Thread類與實現Runnable接口;synchronized

3、面向對象的特徵有哪些方面

封裝,繼承,多態三方面。

4、當一個線程進入一個對象的一個synchronized方法後,其它線程是否可進入此對象的其它方法?

可以。

/*不可以,當某個對象用synchronized修飾時,表明該對象已啟動“互斥鎖”機制,在任一時刻只能由一個線程訪問,即使該線程出現堵塞,該對象的被鎖定狀態也不會解除,其他線程任不能訪問該對象。*/

5、事務的特性有哪些?

事務應該具有4個屬性:原子性、一致性、隔離性、持續性。這四個屬性通常稱為ACID特性。

6、得到Class的三個方法是什麼?

(1)類對象lass()

(2)類名s

(3)ame(“類名”);

7、數組有沒有length()這個方法? String有沒有length()這個方法

數組沒有length()這個方法,只有length的屬性。String有有length()這個方法。

標籤:面試題 JAVA 問答