Java面試寶典 Beta5.0版 (2018年最新公測版)
第一章 內容介紹
該寶典是一份知識點全面又能不斷更新,與時俱進的學習手冊,不僅收錄了作者親身面試遇到的問題,還收錄了近上萬名黑馬學子面試時遇到的問題。我們會一直不斷地更新和充實該寶典,同時也希望讀者朋友能夠多多提供優質的面試題,也許下一個版本就有你提供的面試題哦。
本人的面試實戰記錄釋出在黑馬論壇:http://bbs.itheima.com/thread-196394-1-1.html
大家可以訪問上面的網址,通過陽哥的實戰記錄略微感知一下真實面試的情況,從中學習一些面試技巧以便讓自己在未來的面試中能夠得心應手,順利拿到自己喜歡的offer。
注意:該面試寶典僅供參考,由於作者本人的知識水平有限加之編寫時間倉促因此難免有bug的存在,希望大家見諒。
該寶典的一個明確目標是能夠讓90%以上的Java技術面試題都落到該寶典中,如果您有不錯的知識或者面試題,您可以傳送到wangzhenyang@itcast.cn,本人將不勝感激。讓天下沒有難學的知識,希望你我的努力能幫到更多的莘莘學子。
世間事,很多都可投機取巧,但技術卻必須靠日積月累的努力來提高。本寶典更加註重的是知識的掌握,而不僅僅是對面試題的應付。在展示常見的面試問題以及回答技巧的同時還詳細講解了每一道題所包含的知識點,讓讀者不僅知其然,更知其所以然。
第二章 JavaSE基礎
一、Java物件導向
1. 物件導向都有哪些特性以及你對這些特性的理解
1)繼承:繼承是從已有類得到繼承資訊建立新類的過程。提供繼承資訊的類被稱為父類(超類、基類);得到繼承資訊的類被稱為子類(派生類)。繼承讓變化中的軟體系統有了一定的延續性,同時繼承也是封裝程式中可變因素的重要手段。
2) 封裝:通常認為封裝是把資料和運算元據的方法繫結起來,對資料的訪問只能通過已定義的介面。物件導向的本質就是將現實世界描繪成一系列完全自治、封閉的物件。我們在類中編寫的方法就是對實現細節的一種封裝;我們編寫一個類就是對資料和資料操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的程式設計介面。
3) 多型性:多型性是指允許不同子型別的物件對同一訊息作出不同的響應。簡單的說就是用同樣的物件引用呼叫同樣的方法但是做了不同的事情。多型性分為編譯時的多型性和執行時的多型性。如果將物件的方法視為物件向外界提供的服務,那麼執行時的多型性可以解釋為:當A系統訪問B系統提供的服務時,B系統有多種提供服務的方式,但一切對A系統來說都是透明的。方法過載(overload)實現的是編譯時的多型性(也稱為前繫結),而方法重寫(override)實現的是執行時的多型性(也稱為後繫結)。執行時的多型是物件導向最精髓的東西,要實現多型需要做兩件事:1. 方法重寫(子類繼承父類並重寫父類中已有的或抽象的方法);2. 物件造型(用父型別引用引用子型別物件,這樣同樣的引用呼叫同樣的方法就會根據子類物件的不同而表現出不同的行為)。
4)抽象:抽象是將一類物件的共同特徵總結出來構造類的過程,包括資料抽象和行為抽象兩方面。抽象只關注物件有哪些屬性和行為,並不關注這些行為的細節是什麼。
注意:預設情況下物件導向有3大特性,封裝、繼承、多型,如果面試官問讓說出4大特性,那麼我們就把抽象加上去。
2. 訪問許可權修飾符public、private、protected, 以及不寫(預設)時的區別(2017-11-12)
該題目比較簡單,不同的許可權修飾符的區別見下表。
修飾符 | 當前類 | 同 包 | 子 類 | 其他包 |
public | √ | √ | √ | √ |
protected | √ | √ | √ | × |
default | √ | √ | × | × |
private | √ | × | × | × |
3. 如何理解clone物件
3.1為什麼要用clone?
3.2 new一個物件的過程和clone一個物件的過程區別
new操作符的本意是分配記憶體。程式執行到new操作符時,首先去看new操作符後面的型別,因為知道了型別,才能知道要分配多大的記憶體空間。分配完記憶體之後,再呼叫建構函式,填充物件的各個域,這一步叫做物件的初始化,構造方法返回後,一個物件建立完畢,可以把他的引用(地址)釋出到外部,在外部就可以使用這個引用操縱這個物件。
clone在第一步是和new相似的,都是分配記憶體,呼叫clone方法時,分配的記憶體和原物件(即呼叫clone方法的物件)相同,然後再使用原物件中對應的各個域,填充新物件的域,填充完成之後,clone方法返回,一個新的相同的物件被建立,同樣可以把這個新物件的引用釋出到外部。
相關文章
- Java面試寶典2010版Java面試
- 2023版最新最強大資料面試寶典大資料面試
- JAVA葵花寶典(基礎版)Java
- Java 面試寶典Java面試
- Web前端面試寶典(最新)Web前端面試
- 2020年區塊鏈面試寶典整理版(一)區塊鏈面試
- Java面試葵花寶典Java面試
- Linux寶典(第9版)Linux
- Java面試寶典-2017Java面試
- 2019最新前端面試寶典前端面試
- Delphi學習寶典1.2版的破解(vb版)
- 面試寶典面試
- Java面試寶典之開源框架!Java面試框架
- 2018年最新Java面試題及答案Java面試題
- Java面試寶典之—-java基礎(含答案)Java面試
- PHP面試寶典PHP面試
- iOS 面試寶典iOS面試
- C++面試寶典C++面試
- iOS12公測版升正式版方法 iOS12公測版能升級正式版嗎?iOS
- iOS12公測版、開發者測試版、正式版的區別iOS
- iOS10公測版、測試版和正式版的區別iOS
- 支付寶介面呼叫 -- JAVA版Java
- 2018年Java程式設計師最新BAT面試題Java程式設計師BAT面試題
- Java初中級程式設計師面試題寶典Java程式設計師面試題
- Java面試寶典2010(一.51—83)Java面試
- JAVA程式設計師面試之《葵花寶典》等Java程式設計師面試
- Oracle面試寶典-鎖篇Oracle面試
- Oracle 面試寶典-RAC篇Oracle面試
- Oracle 面試寶典-UNDO篇Oracle面試
- Oracle 面試寶典-DG篇Oracle面試
- 18年最新經典web前端面試題Web前端面試題
- 【JAVA面試資料】程式設計師面試之葵花寶典1Java面試程式設計師
- 【JAVA面試資料】程式設計師面試之葵花寶典2Java面試程式設計師
- 好程式設計師Java教程之Java面試寶典Java IO篇程式設計師Java面試
- 微信電腦版2.6.0.15最新測試版釋出
- Oracle面試寶典-等待事件篇Oracle面試事件
- Oracle面試寶典-引數篇Oracle面試
- Oracle面試寶典-事務篇Oracle面試