大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節(jié)點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 學習攻略 Java學習 2020年Java面試題庫之面向?qū)ο?/span>

2020年Java面試題庫之面向?qū)ο?/h1>

更新時間:2020-04-27 14:21:27 來源:動力節(jié)點 瀏覽2556次

    2020年Java面試題庫之面向?qū)ο螅嫦驅(qū)ο笠詳?shù)據(jù)為中心的開發(fā)方式,使用繼承來簡化開發(fā)過程,使用接口來規(guī)范對數(shù)據(jù)的操作,使用多態(tài)達到操作的靈活性。可以說面向?qū)ο笫荍ava面試中的一個常見重要考點,因此本文為大家整理了面向?qū)ο蟮南嚓P面試題,其中包括面向?qū)ο蟮奶匦浴⒃L問權限修飾符和clone對象的理解

2020年Java面試題庫之面向?qū)ο? border=

     問題一、面向?qū)ο蠖加心男┨匦砸约澳銓@些特性的理解繼承

    1、繼承:繼承是從已有類得到繼承信息創(chuàng)建新類的過程。提供繼承信息的類被稱為父類(超類、基類);得到繼承信息的類被稱為子類(派生類)。繼承讓變化中的軟件系統(tǒng)有了一定的延續(xù)性,同時繼承也是封裝程序中可變因素的重要手段。

    2、封裝:通常認為封裝是把數(shù)據(jù)和操作數(shù)據(jù)的方法綁定起來,對數(shù)據(jù)的訪問只能通過已定義的接口。面向?qū)ο蟮谋举|(zhì)就是將現(xiàn)實世界描繪成一系列完全自治、封閉的對象。我們在類中編寫的方法就是對實現(xiàn)細節(jié)的一種封裝;我們編寫一個類就是對數(shù)據(jù)和數(shù)據(jù)操作的封裝。可以說,封裝就是隱藏一切可隱藏的東西,只向外界提供最簡單的編程接口。

    3、多態(tài)性:多態(tài)性是指允許不同子類型的對象對同一消息作出不同的響應。簡單的說就是用同樣的對象引用調(diào)用同樣的方法但是做了不同的事情。多態(tài)性分為編譯時的多態(tài)性和運行時的多態(tài)性。如果將對象的方法視為對象向外界提供的服務,那么運行時的多態(tài)性可以解釋為:當A系統(tǒng)訪問B系統(tǒng)提供的服務時,B系統(tǒng)有多種提供服務的方式,但一切對A系統(tǒng)來說都是透明的。方法重載(overload)實現(xiàn)的是編譯時的多態(tài)性(也稱為前綁定),而方法重寫實現(xiàn)的是運行時的多態(tài)性(也稱為后綁定)。運行時的多態(tài)是面向?qū)ο笞罹璧臇|西,要實現(xiàn)多態(tài)需要做兩件事:

    (1)方法重寫(子類繼承父類并重寫父類中已有的或抽象的方法)

    (2)對象造型(用父類型引用引用子類型對象,這樣同樣的引用調(diào)用同樣的方法就會根據(jù)子類對象的不同而表現(xiàn)出不同的行為)。

    4、抽象:抽象是將一類對象的共同特征總結出來構造類的過程,包括數(shù)據(jù)抽象和行為抽象兩方面。抽象只關注對象有哪些屬性和行為,并不關注這些行為的細節(jié)是什么。

    注意:默認情況下面向?qū)ο笥?大特性,封裝、繼承、多態(tài),如果面試官問讓說出4大特性,那么我們就把抽象加上去。

    問題二:訪問權限修飾符public、private、protected,以及不寫(默認)時的區(qū)別。

    該題目比較簡單,不同的權限修飾符的區(qū)別見下表。

image.png

    問題三:如何理解clone對象

    1、為什么要用clone?

    在實際編程過程中,我們常常要遇到這種情況:有一個對象A,在某一時刻A中已經(jīng)包含了一些有效值,此時可能會需要一個和A完全相同新對象B,并且此后對B任何改動都不會影響到A中的值,也就是說,A與B是兩個獨立的對象,但B的初始值是由A對象確定的。在Java語言中,用簡單的賦值語句是不能滿足這種需求的。要滿足這種需求雖然有很多途徑,但實現(xiàn)clone()方法是其中最簡單,也是最高效的手段。

    2、new一個對象的過程和clone一個對象的過程區(qū)別

    new操作符的本意是分配內(nèi)存。程序執(zhí)行到new操作符時,首先去看new操作符后面的類型,因為知道了類型,才能知道要分配多大的內(nèi)存空間。分配完內(nèi)存之后,再調(diào)用構造函數(shù),填充對象的各個域,這一步叫做對象的初始化,構造方法返回后,一個對象創(chuàng)建完畢,可以把他的引用(地址)發(fā)布到外部,在外部就可以使用這個引用操縱這個對象。

    clone在第一步是和new相似的,都是分配內(nèi)存,調(diào)用clone方法時,分配的內(nèi)存和原對象(即調(diào)用clone方法的對象)相同,然后再使用原對象中對應的各個域,填充新對象的域,填充完成之后,clone方法返回,一個新的相同的對象被創(chuàng)建,同樣可以把這個新對象的引用發(fā)布到外部。

    3、clone對象的使用

    (1)復制對象和復制引用的區(qū)別

    Personp=newPerson(23,"zhang");

    Personp1=p;

    System.out.println(p);

    System.out.println(p1);

    當Personp1=p;執(zhí)行之后,是創(chuàng)建了一個新的對象嗎?首先看打印結果:

    com.itheima.Person@2f9ee1ac

    com.itheima.Person@2f9ee1ac

    可以看出,打印的地址值是相同的,既然地址都是相同的,那么肯定是同一個對象。p和p1只是引用而已,他們都指向了一個相同的對象Person(23,“zhang”)。可以把這種現(xiàn)象叫做引用的復制。上面代碼執(zhí)行完成之后,內(nèi)存中的情景如下圖所示:

  2020年Java面試題庫之面向?qū)ο? border=

    而下面的代碼是真真正正的克隆了一個對象

    Personp=newPerson(23,"zhang");

    Personp1=(Person)p.clone();

    System.out.println(p);

    System.out.println(p1);

    從打印結果可以看出,兩個對象的地址是不同的,也就是說創(chuàng)建了新的對象,而不是把原對象的地址賦給了一個新的引用變量:

    com.itheima.Person@2f9ee1ac

    com.itheima.Person@67f1fba0

    以上代碼執(zhí)行完成后,內(nèi)存中的情景如下圖所示:

2020年Java面試題庫之面向?qū)ο? border=

 以上就是動力節(jié)點java培訓機構的小編針對“2020年Java面試題庫之面向?qū)ο?rdquo;的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務。

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久久久久亚洲精品中文字幕 | 午夜不卡影院 | 亚洲国产综合精品中文第一区 | 波多野结衣一区免费作品 | 亚洲国产综合精品中文字幕 | 色射色| 国产精品网站在线观看 | 一级a欧美毛片 | 久久青草网站 | 18在线观看| 女十八毛片 | 手机在线看片国产日韩生活片 | 九九精品久久久久久噜噜 | 99视频在线免费观看 | 一区国严二区亚洲三区 | jizz中国人| 欧美伊香蕉久久综合类网站 | 天天插狠狠干 | 七七久久综合 | 欧美一级h| a国产精品 | 亚洲色综合 | 狠狠色欧美亚洲狠狠色五 | 久久久久久久亚洲精品一区 | 97影院九七影院理论片 | 欧美又乱又伦观看 | 91视频观看免费 | 91麻豆精品国产91久久久久久 | 中文字幕最新中文字幕中文字幕 | 香蕉国产人午夜视频在线观看 | 伊人久久精品亚洲精品一区 | 日韩性网站 | 国产成人在线免费视频 | 国内精品久久久久久久aa护士 | 欧美激情在线播放 | 97在线观看免费视频 | 中文字幕精品视频 | 亚洲欧美综合国产不卡 | 国产高清不卡视频 | 婷婷丁香在线视频 | 美日韩毛片 |