<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Java, Only Java!

    統(tǒng)計(jì)

    留言簿(20)

    積分與排名

    好友空間

    文檔技巧

    閱讀排行榜

    評(píng)論排行榜

    《Java大學(xué)教程》—第24章 Java的背景

    本章主要介紹的是Java的背景知識(shí),通過(guò)了解歷史知道Java與其他語(yǔ)言的區(qū)別,以便更好選擇在什么場(chǎng)景下使用Java。

    24.2    語(yǔ)言的尺寸
    Java語(yǔ)言短小、緊湊,以C++為基礎(chǔ),放棄了一些特定的語(yǔ)言特征(指針和多繼承)
    注:需要關(guān)注的是為什么放棄這兩個(gè)特征,有沒(méi)有替代方案,各自的優(yōu)缺點(diǎn)。

    24.2.1    指針(pointer)
    指針是一種變量,并且變量中包含了某個(gè)存儲(chǔ)器地址。
    Java不允許使用指針,因?yàn)橹羔樦赶虻氖蔷唧w的物理地址,直接操縱物理地址中的數(shù)據(jù),容易使程序出現(xiàn)不可預(yù)料的問(wèn)題。
    Java通過(guò)創(chuàng)建引用()來(lái)實(shí)現(xiàn)對(duì)地址的訪問(wèn)。通過(guò)引用也可以把地址作為變量傳送。

    24.2.2    多繼承(multiple inheritance)
    多繼承允許一個(gè)類繼承于多個(gè)超類。
    Java不允許多繼承:因?yàn)槎嗬^承使用不多,且編程復(fù)雜,容易出錯(cuò)。
    Java允許繼承一個(gè)基類,實(shí)現(xiàn)多個(gè)接口的方式實(shí)現(xiàn)多繼承。

    24.3    語(yǔ)言的可靠性
    24.3.1    別名(alias)
    別名會(huì)導(dǎo)致不同的對(duì)象變量指向同樣的對(duì)象。
    因?yàn)閷?duì)象變量中存儲(chǔ)的對(duì)象地址相同,從而出現(xiàn)兩個(gè)修改同一對(duì)象數(shù)據(jù)的入口,容易造成混淆。
    為此Java提供了兩種拷貝機(jī)制:深拷貝(對(duì)象的數(shù)據(jù)的拷貝)和淺拷貝(對(duì)象的引用的拷貝)。
    深拷貝可以保護(hù)原始對(duì)象不受影響,但是需要消耗時(shí)間和空間,用于保護(hù)數(shù)據(jù)安全的領(lǐng)域使用。利用clone方法。
    淺拷貝提供了原始對(duì)象的地址,不需要消耗過(guò)多的時(shí)間和空間,但是必須小心的使用,以免造成不可預(yù)料的問(wèn)題。利用別名機(jī)制。

    24.3.2    重寫(xiě)clone方法
    protected的方法可以被重寫(xiě)為public的方法,但是public的方法不可以重寫(xiě)為protected方法。
    注:因?yàn)橐呀?jīng)在父類已經(jīng)是public的方法,就算子類重寫(xiě)為protected方法,那么訪問(wèn)者依然可以通過(guò)父類實(shí)現(xiàn)訪問(wèn),所以不容許public方法重寫(xiě)成protected方法。

    24.3.3    不變對(duì)象
    如果對(duì)象中不存在變更它們狀態(tài)的方法,則對(duì)象稱為不變對(duì)象。
    如果對(duì)象是不可變的,則不必?fù)?dān)心創(chuàng)建對(duì)象的別名會(huì)造成不可預(yù)料的問(wèn)題。

    24.3.4    使用Object類的clone方法
    Object類的clone方法復(fù)制了分配給對(duì)象屬性的存儲(chǔ)器的內(nèi)容,也稱為按位拷貝(bitwise copy)。即完全復(fù)制了原始類型(primitive type)的屬性的內(nèi)容,并且復(fù)制了屬性的引用。
    *    如果類的屬性都是基本類型的,則重載clone方法只需要調(diào)用Object類的clone方法;
    *    如果類的屬性有對(duì)象類型的,并且這些對(duì)象都是不可變的,則重載clone方法只需要調(diào)用Object類的clone方法。
    *    如果類的屬性包含非不可變對(duì)象,則無(wú)法利用Object類的clone方法進(jìn)行復(fù)制,必須自己編寫(xiě)代碼來(lái)實(shí)現(xiàn)clone方法。

    如果需要使用Object類的clone方法,需要標(biāo)識(shí)類實(shí)現(xiàn)了Cloneable接口,這個(gè)接口也是個(gè)標(biāo)識(shí)接口,沒(méi)有包含任何方法。

    24.3.5    垃圾收集
    Java使用異常處理技術(shù)來(lái)監(jiān)視內(nèi)存耗盡問(wèn)題,并且可以編寫(xiě)代碼來(lái)確保程序正常地終止。
    Java語(yǔ)言具有一種內(nèi)嵌的垃圾收集功能,該功能能夠釋放未被使用的內(nèi)存。通過(guò)搜索程序所使用的內(nèi)存空間,釋放不再被使用的內(nèi)存。

    自測(cè)題:
    1.    指針與引用的區(qū)別:
    指針保存了地址,并且可以通過(guò)代碼修改和操縱這個(gè)地址的數(shù)據(jù)。
    引用保存了地址,但是這個(gè)地址不能通過(guò)代碼修改,也不能隨便改變?cè)L問(wèn)的類型,例如:不能按字節(jié)訪問(wèn)地址中的信息。

    2.    多繼承:
    多繼承允許一個(gè)類繼承于多個(gè)超類。
    Java不允許多繼承:因?yàn)槎嗬^承使用不多,且編程復(fù)雜,容易出錯(cuò)。
    Java允許繼承一個(gè)基類,實(shí)現(xiàn)多個(gè)接口的方式實(shí)現(xiàn)多繼承。

    3.    Critical.java

    a)    因?yàn)镃ritical對(duì)象存在變更它們狀態(tài)的方法,所以是可變對(duì)象。

    b)    CriticalTest.java

    c)    Critical.java

    d)    CriticalTest.java

    4.
    a)    為什么方法返回的都是別名:方便調(diào)用的方法修改里面的數(shù)據(jù),對(duì)于不可變對(duì)象也提高傳送數(shù)據(jù)的效率。
    b)    為什么別名可能有危險(xiǎn):因?yàn)檎{(diào)用方法的代碼可能會(huì)修改原始數(shù)據(jù),造成不可意料的數(shù)據(jù)錯(cuò)誤。
    c)    如何避免別名:創(chuàng)建clone方法,返回的對(duì)象都采用深拷貝。

    5.    垃圾收集功能的優(yōu)點(diǎn)和缺點(diǎn):
    優(yōu)點(diǎn):簡(jiǎn)化程序員的工作,避免出現(xiàn)內(nèi)存泄漏或者內(nèi)存耗盡的問(wèn)題。
    缺點(diǎn):降低代碼執(zhí)行的速度,對(duì)于實(shí)時(shí)應(yīng)用會(huì)突然出現(xiàn)響應(yīng)不及時(shí)的問(wèn)題。

    編程練習(xí):代碼附件
        Critical.java    CriticalTest.java

    posted on 2016-10-06 14:31 zYx.Tom 閱讀(339) 評(píng)論(0)  編輯  收藏 所屬分類: 1.Java世界

    主站蜘蛛池模板: 好爽…又高潮了免费毛片| 一本一道dvd在线观看免费视频| 午夜影院免费观看| 中文字幕亚洲一区| 免费无码一区二区三区蜜桃 | 久久久久久久久久免免费精品| 亚洲高清成人一区二区三区| 免费无码一区二区| 亚洲色大成网站www永久一区 | 亚洲免费福利在线视频| 亚洲一区精品视频在线| 成人看的午夜免费毛片| 亚洲成AV人片高潮喷水| 亚洲成年看片在线观看| 精品乱子伦一区二区三区高清免费播放 | 亚洲精品无码你懂的| 四虎永久成人免费影院域名| 五月天国产成人AV免费观看| 亚洲欧洲日产国码av系列天堂 | 三级黄色在线免费观看| 久久久无码精品亚洲日韩蜜桃| 永久免费在线观看视频| 亚洲日本天堂在线| 国产亚洲精品不卡在线| 91青青青国产在观免费影视| 亚洲看片无码在线视频| 亚洲AV无码乱码在线观看性色扶 | 亚洲人精品午夜射精日韩| 最近中文字幕mv免费高清在线| 麻豆狠色伊人亚洲综合网站| 国产jizzjizz视频免费看 | 在线日本高清免费不卡| 亚洲乱理伦片在线观看中字| 国外亚洲成AV人片在线观看 | 久久国产免费一区| 亚洲sm另类一区二区三区| 亚洲日产韩国一二三四区| 久久这里只有精品国产免费10| 一二三四在线观看免费中文在线观看| 婷婷久久久亚洲欧洲日产国码AV| 免费看美女让人桶尿口|