




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、1、面向對象的特征有哪些方面? 答:面向對象的特征主要有以下幾個方面:· 抽象:抽象是將一類對象的共同特征總結出來構造類的過程,包括數據抽象和行為抽象兩方面。抽象只關注對象有哪些屬性和行為,并不關注這些行為的細節(jié)是什么。· 繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統有了一定的延續(xù)性,同時繼承也是封裝程序中可變因素的重要手段(如果不能理解請閱讀閻宏博士的Java與模式或設計模式精解中關于橋梁模式的部分)。· 封裝:通常認為封裝是把數據和操作數據的方法
2、綁定起來,對數據的訪問只能通過已定義的接口。面向對象的本質就是將現實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現細節(jié)的一種封裝;我們編寫一個類就是對數據和數據操作的封裝??梢哉f,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口(可以想想普通洗衣機和全自動洗衣機的差別,明顯全自動洗衣機封裝更好因此操作起來更簡單;我們現在使用的智能手機也是封裝得足夠好的,因為幾個按鍵就搞定了所有的事情)。· 多態(tài):多態(tài)是指允許不同子類型的對象對同一消息作出不同的響應。簡單的說就是用同樣的對象引用調用同樣的方法但是做了不同的事情。多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性。
3、如果將對象的方法視為對象向外界提供的服務,那么運行時的多態(tài)性可以解釋為:當A系統訪問B系統提供的服務時,B系統有多種提供服務的方式,但一切對A系統來說都是透明的(就像電動剃須刀是A系統,它的供電系統是B系統,B系統可以使用電池供電或者用交流電,甚至還有可能是太陽能,A系統只會通過B類對象調用供電的方法,但并不知道供電系統的底層實現是什么,究竟通過何種方式獲得了動力)。方法重載(overload)實現的是編譯時的多態(tài)性(也稱為前綁定),而方法重寫(override)實現的是運行時的多態(tài)性(也稱為后綁定)。運行時的多態(tài)是面向對象最精髓的東西,要實現多態(tài)需要做兩件事:1)。 方法重寫(子類繼承父類并
4、重寫父類中已有的或抽象的方法);2)。 對象造型(用父類型引用引用子類型對象,這樣同樣的引用調用同樣的方法就會根據子類對象的不同而表現出不同的行為)。 2、訪問修飾符public,private,protected,以及不寫(默認)時的區(qū)別?答:修飾符當前類同 包子 類其他包publicprotected×default××private××× 類的成員不寫訪問修飾時默認為default。默認對于同一個包中的其他類相當于公開(public),對于不是同一個包中的其他類相當于私有(priva
5、te)。受保護(protected)對子類相當于公開,對不是同一包中的沒有父子關系的類相當于私有。Java中,外部類的修飾符只能是public或默認,類的成員(包括內部類)的修飾符可以是以上四種。3、String 是最基本的數據類型嗎?答:不是。Java中的基本數據類型只有8個:byte、short、int、long、float、double、char、boolean;除了基本類型(primitive type)和枚舉類型(enumeration type),剩下的都是引用類型(reference type)。 4、float f=3.4;是否正確?答:不正確。3.4是雙精度數,將雙
6、精度型(double)賦值給浮點型(float)屬于下轉型(down-casting,也稱為窄化)會造成精度損失,因此需要強制類型轉換float f =(float)3.4; 或者寫成float f =3.4F;。 5、short s1 = 1; s1 = s1 + 1;有錯嗎?short s1 = 1; s1 += 1;有錯嗎?答:對于short s1 = 1; s1 = s1 + 1;由于1是int類型,因此s1+1運算結果也是int 型,需要強制轉換類型才能賦值給short型。而short s1 = 1; s1 += 1;可以正確編譯,因為s1+= 1;相當于s1 = (sho
7、rt)(s1 + 1);其中有隱含的強制類型轉換。 6、Java有沒有goto?答:goto 是Java中的保留字,在目前版本的Java中沒有使用。(根據James Gosling(Java之父)編寫的The Java Programming Language一書的附錄中給出了一個Java關鍵字列表,其中有goto和const,但是這兩個是目前無法使用的關鍵字,因此有些地方將其稱之為保留字,其實保留字這個詞應該有更廣泛的意義,因為熟悉C語言的程序員都知道,在系統類庫中使用過的有特殊意義的單詞或單詞的組合都被視為保留字) 7、int和Integer有什么區(qū)別?答:Java是一
8、個近乎純潔的面向對象編程語言,但是為了編程的方便還是引入了基本數據類型,但是為了能夠將這些基本數據類型當成對象操作,Java為每一個基本數據類型都引入了對應的包裝類型(wrapper class),int的包裝類就是Integer,從Java 5開始引入了自動裝箱/拆箱機制,使得二者可以相互轉換。· Java 為每個原始類型提供了包裝類型,原始類型有boolean、char、byte、short、int、long、float、double,他們對應的包裝類是Boolean、Character、Byte、Short、Integer、Long、Float、Double。
9、60;· 最近還遇到一個面試題,也是和自動裝箱和拆箱有點關系的,代碼如下所示: · 如果不明就里很容易認為兩個輸出要么都是true要么都是false。首先需要注意的是f1、f2、f3、f4四個變量都是Integer對象引用,所以下面的=運算比較的不是值而是引用。裝箱的本質是什么呢?當我們給一個Integer對象賦一個int值的時候,會調用Integer類的靜態(tài)方法valueOf,如果看看valueOf的源代碼就知道發(fā)生了什么。· IntegerCache是Integer的內部類,其代碼如下所示: · 簡單的說,如果整型字面
10、量的值在-128到127之間,那么不會new新的Integer對象,而是直接引用常量池中的Integer對象,所以上面的面試題中f1=f2的結果是true,而f3=f4的結果是false。 提醒:越是貌似簡單的面試題其中的玄機就越多,需要面試者有相當深厚的功底。 8、&和&&的區(qū)別?· 答:&運算符有兩種用法:(1)按位與;(2)邏輯與。&&運算符是短路與運算。邏輯與跟短路與的差別是非常巨大的,雖然二者都要求運算符左右兩端的布爾值都是true整個表達式的值才是true。&&之所以稱為短路運算是因為,如
11、果&&左邊的表達式的值是false,右邊的表達式會被直接短路掉,不會進行運算。很多時候我們可能都需要用&&而不是&,例如在驗證用戶登錄時判定用戶名不是null而且不是空字符串,應當寫為:username != null &&!username.equals(""),二者的順序不能交換,更不能用&運算符,因為第一個條件如果不成立,根本不能進行字符串的equals比較,否則會產生NullPointerException異常。注意:邏輯或運算符(|)和短路或運算符(|)的差別也是如此。 補充:如果你熟悉Ja
12、vaScript,那你可能更能感受到短路運算的強大,想成為JavaScript的高手就先從玩轉短路運算開始吧。 9、解釋內存中的棧(stack)、堆(heap)和靜態(tài)區(qū)(static area)的用法。· 答:通常我們定義一個基本數據類型的變量,一個對象的引用,還有就是函數調用的現場保存都使用內存中的棧空間;而通過new關鍵字和構造器創(chuàng)建的對象放在堆空間;程序中的字面量(literal)如直接書寫的100、"hello"和常量都是放在靜態(tài)區(qū)中。??臻g操作起來最快但是棧很小,通常大量的對象都是放在堆空間,理論上整個內存沒有被其他進程使用的空間甚至硬盤上的虛擬內存都可以被當成堆空間來使用。 String str = new String("hello") 上面的語句中變量str放在棧上,用new創(chuàng)建出來的字符串對象放在堆上,而"hello"這個字面量放在靜態(tài)區(qū)。 補充:較新版本的Java(從
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 關于黃岡的七下數學試卷
- 貨品分析培訓課件圖片
- 肥城中考數學試卷
- 肛腸五項技術課件
- 燈塔市期末考試數學試卷
- 浮山中學數學試卷
- 高級中學期末數學試卷
- 2025年06月浙江溫州市蒼南縣衛(wèi)生健康系統面向社會招聘120編外輔助人員2人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 2025年01月2025安徽池州市人民醫(yī)院勞務派遣辦公室文員招聘1人筆試歷年專業(yè)考點(難、易錯點)附帶答案詳解
- 銷售技能培訓課件分類
- 2025年中考物理終極押題猜想(廣東省卷專用)(解析版)
- 學校食堂自營管理實施方案
- 2024年10月自考00882學前教育心理學試題及答案含評分參考
- 廣東省廣州市2024年中考道德與法治試卷(含答案)
- 2025年中國陪診服務行業(yè)現狀、發(fā)展環(huán)境及投資前景分析報告
- 新疆2024年小升初語文模擬考試試卷(含答案)
- 項目經理入職培訓
- 汽車駕駛員(技師)考試題及答案
- 南昌市產業(yè)投資集團有限公司招聘筆試題庫2024
- 三化一穩(wěn)定嚴進嚴出專案報告
- TYNZYC 0095-2022 綠色藥材 金果欖(青牛膽)栽培技術規(guī)程
評論
0/150
提交評論