你所知道的集合類都有哪些?下面就由小編為大家介紹一下Java由基礎到高階面試題經典問答的文章,歡迎閱讀。
Java由基礎到高階面試題經典問答篇11、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由基礎到高階面試題經典問答篇21、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由基礎到高階面試題經典問答篇31、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()這個方法。