| 失效鏈接處理 |
|
Java程序員必備面試題八股文 PDF 下載
轉(zhuǎn)載自:http://java.python222.com/article/1776
相關(guān)截圖:
![]() 主要內(nèi)容:
1.JDK動態(tài)代理和CGLIB動態(tài)代理的區(qū)別
JDK動態(tài)代理只能對實現(xiàn)了接?的類?成代理,?不能針對類。
CGLIB是針對類實現(xiàn)代理,主要是對指定的類?成?個?類,覆蓋其中的?法。因為是繼承, 所以該類
或?法最好不要聲明成final。
2.靜態(tài)代理和動態(tài)代理的區(qū)別
靜態(tài)代理中代理類在編譯期就已經(jīng)確定,?動態(tài)代理則是JVM運?時動態(tài)?成,靜態(tài)代理的效 率相對動態(tài)
代理來說相對??些,但是靜態(tài)代理代碼冗余?,?單需要修改接?,代理類和委 托類都需要修改。
3.ArrayList和LinkedList有什么區(qū)別?
1. ArrayList和LinkedList的差別主要來?于Array和LinkedList數(shù)據(jù)結(jié)構(gòu)的不同。 ArrayList是基于數(shù)
組實現(xiàn)的,LinkedList是基于雙鏈表實現(xiàn)的。另外LinkedList類不 僅是List接?的實現(xiàn)類,可以根
據(jù)索引來隨機訪問集合中的元素,除此之外, LinkedList還實現(xiàn)了Deque接?,Deque接?是
Queue接?的?接?,它代表?個雙向 隊列,因此LinkedList可以作為雙向隊列 ,棧(可以參?
Deque提供的接??法)和 List集合使?,功能強?。
2. 因為Array是基于索引(index)的數(shù)據(jù)結(jié)構(gòu),它使?索引在數(shù)組中搜索和讀取數(shù)據(jù)是很快 的,可以直接
返回數(shù)組中index位置的元素,因此在隨機訪問集合元素上有較好的性能。 Array獲取數(shù)據(jù)的時間
復(fù)雜度是O(1),但是要插?、刪除數(shù)據(jù)卻是開銷很?的,因為這需 要移動數(shù)組中插?位置之后的的所
有元素。
3. 相對于ArrayList,LinkedList的隨機訪問集合元素時性能較差,因為需要在雙向列表中 找到要
index的位置,再返回;但在插?,刪除操作是更快的。因為LinkedList不像 ArrayList?樣,不需
要改變數(shù)組的??,也不需要在數(shù)組裝滿的時候要將所有的數(shù)據(jù)重 新裝??個新的數(shù)組,這是
ArrayList最壞的?種情況,時間復(fù)雜度是O(n),? LinkedList中插?或刪除的時間復(fù)雜度僅為
O(1)。ArrayList在插?數(shù)據(jù)時還需要更新索 引(除了插?數(shù)組的尾部)。
4. LinkedList需要更多的內(nèi)存,因為ArrayList的每個索引的位置是實際的數(shù)據(jù),? LinkedList中的每
個節(jié)點中存儲的是實際的數(shù)據(jù)和前后節(jié)點的位置。
4.重寫和重載的區(qū)別
重寫是?類對?類的允許訪問的?法的實現(xiàn)過程進?重新編寫, 返回值和形參都不能改變。即 外殼不變,
核?重寫!
重寫的好處在于?類可以根據(jù)需要,定義特定于??的?為。 也就是說?類能夠根據(jù)需要實現(xiàn) ?類的
?法。
重寫?法不能拋出新的檢查異常或者?被重寫?法申明更加寬泛的異常。
重載(overloading) 是在?個類??,?法名字相同,?參數(shù)不同。返回類型可以相同也可以 不同。
每個重載的?法(或者構(gòu)造函數(shù))都必須有?個獨???的參數(shù)類型列表。
|




蘇公網(wǎng)安備 32061202001004號


