亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        JAVA虛擬機中面向?qū)ο笮詫崿F(xiàn)原理

        2017-01-27 11:12:12籍慧文
        科學(xué)中國人 2017年9期
        關(guān)鍵詞:方法

        籍慧文

        山西農(nóng)業(yè)大學(xué)信息學(xué)院

        JAVA虛擬機中面向?qū)ο笮詫崿F(xiàn)原理

        籍慧文

        山西農(nóng)業(yè)大學(xué)信息學(xué)院

        通過對JAVA虛擬機原理的剖析闡述面向?qū)ο笤碇械年P(guān)鍵特性如封裝、繼承、多態(tài)在JAVA虛擬機中的實現(xiàn)方式。

        JAVA虛擬機;面向?qū)ο?;類;對象;封裝;繼承;多態(tài)

        引言

        在過去的二十幾年間JAVA編程語言在眾多面向?qū)ο蟪绦蛟O(shè)計語言中脫穎而出其跨平臺特性功不可沒。而跨平臺特性的基礎(chǔ)則是字節(jié)碼技術(shù)和JAVA虛擬機技術(shù),其中JAVA虛擬機解除了JAVA程序與底層硬件、操作系統(tǒng)間的耦合關(guān)系,為JAVA編程語言的“一次編譯到處運行”提供了運行的環(huán)境基礎(chǔ)。本文將著重闡述面向?qū)ο笤碇械念?、對象、封裝、繼承、多態(tài)等概念、特性在JAVA虛擬機內(nèi)部的實現(xiàn)方式及原理。

        1、面向?qū)ο笤?/h2>

        面向?qū)ο笤硪詫ο鬄榛A(chǔ)將屬性和操作封裝在一起并抽象出統(tǒng)一的新數(shù)據(jù)類型——類。面向?qū)ο笙鄬γ嫦蜻^程從更接近人類思維方式的角度通過模擬客觀世界間實物相互作用的方式,以其封裝性、繼承性、多態(tài)性三大特性達到簡化問題,提高代碼重用性,降低維護成本的目標。

        2、JAVA虛擬機

        JAVA虛擬機是一個規(guī)范來定義的抽象的計算環(huán)境,每個Java程序都運行于某個具體的JAVA虛擬機實現(xiàn)的實例[2]。Java虛擬機有多種方式,既可以是運行在操作系統(tǒng)上的軟件也可以是軟硬件的組合。

        JAVA虛擬機內(nèi)包含兩種運行機制,一是類裝載子系統(tǒng)它負責(zé)將類加載到虛擬機當(dāng)中,另一個是運行引擎它負責(zé)執(zhí)行已裝載的類中的指令。

        JAVA虛擬機通常由五個組成部分組成,它們是方法區(qū)、堆、JAVA棧、程序計數(shù)器、本地方法棧。

        3、類在JAVA虛擬機中的實現(xiàn)

        3.1 類的結(jié)構(gòu)

        類是對一組對象公有的屬性和行為的抽象。為了能夠更清晰地處理問題抽象通常被分為多個層次。子類可以從父類處繼承父類的屬性和方法,屬性和方法可以分為靜態(tài)域、靜態(tài)方法和對象域、對象方法。靜態(tài)域和靜態(tài)方法展現(xiàn)了一種全局性,它是所有對象共享的資源。JAVA程序編譯完成后會生成class文件,這些class文件在被虛擬機處理時首先需要經(jīng)過類加載機制。

        3.2 類的生命周期

        類的生命周期從類加載開始一直持續(xù)到類從虛擬機中被卸載為止。當(dāng)類被加載后還需要經(jīng)過鏈接、初始化等若干步驟。類的初始化由JAVA虛擬機完成,初始化結(jié)束以后程序就可以對該類進行實例化獲得對象,而當(dāng)程序不再需要引用該類時,虛擬機就可以卸載這個類。這里需要注意一點,只有使用用戶定義的類裝載器裝載的類才可以被卸載。

        3.3 繼承性的實現(xiàn)

        在JAVA編程語言中為了強化類的單一職責(zé)取消了C++等語言中使用的多繼承機制。在面向?qū)ο蟮恼Z言中一個類一旦繼承了其他類,就擁有了后者的屬性和方法,在JAVA中編譯生成的class文件中會保存一個父類標識來記錄繼承信息。JAVA虛擬機在加載類時會檢查被加載類是否有父類,如果存在父類則將父類一并加載,并對父類遞歸執(zhí)行這一加載機制直至Object類也被加載為止。

        3.4 多態(tài)性的實現(xiàn)

        多態(tài)性允許將子類類型的引用向上映射賦值給父類類型的引用。多態(tài)表現(xiàn)在子類方法實現(xiàn)對父類方法實現(xiàn)的覆蓋效果,在需要使用覆蓋時只需要在子類中定義與父類中方法具有相同方法名、返回值類型、參數(shù)列表的方法即可。被覆蓋的方法將會在子類中擁有不同于父類方法的實現(xiàn),當(dāng)子類對象被調(diào)用時JAVA虛擬機則會依據(jù)鏈接模型調(diào)用子類中的新實現(xiàn)。在JAVA虛擬機的鏈接模型中,定位一個屬性或者方法的順序是先在本類的屬性和方法中查找,如果查找成功則從本類獲得需要的屬性或方法,否則向父類遞歸延伸查找。在這一機制的作用下JAVA虛擬機便具備了支持多態(tài)性的能力。

        4、對象的實現(xiàn)

        4.1 對象的結(jié)構(gòu)

        對象是類的一次實例化的成果物,它是面向?qū)ο笙到y(tǒng)的基本組成單元。除了基本類型外在JAVA編程語言中其他的成員都是對象,數(shù)組也是一種對象。在JAVA編程語言中對象是動態(tài)創(chuàng)建的,創(chuàng)建過程可分為以下三步,首先JAVA虛擬機使用new指令來為新對象分配內(nèi)存空間,JAVA虛擬機會在對象堆中分配內(nèi)存空間會被用來封裝對象的屬性,之后JAVA虛擬機按初始值對屬性進行初始化,最后待對象被創(chuàng)建后完畢時JAVA虛擬機會返回一個指向該對象的引用,使用這一引用便可以操縱對象的屬性和方法。

        4.2 對象間互操作

        在JAVA虛擬中調(diào)用包括三個要素:方法名、參數(shù)列表、返回類型。JAVA虛擬機中的幀被用于處理調(diào)用關(guān)系。幀由操作數(shù)棧、局部變量數(shù)組、管理數(shù)據(jù)三個部分組成,JAVA方法的每一次調(diào)用都創(chuàng)建一個新的幀,新創(chuàng)建的幀被壓入幀棧中,當(dāng)方法執(zhí)行完畢后幀棧彈出當(dāng)前幀并且將返回值傳給前一個幀的操作數(shù)棧中,如此就完成了方法的調(diào)用。

        4.3 對象的生命周期

        對象的生命周期從創(chuàng)建開始經(jīng)過使用最終被回收。JAVA語言的一大特色就是自動回收機制,回收通常分為找出待回收對象和釋放內(nèi)存空間兩個階段?;厥毡O(jiān)測通常會建立一個根對象集合,并且以此為出發(fā)點檢查對象是否被這些根對象引用如果根對象不再引用這些對象這些對象即可被回收?;厥諜C制通??梢苑譃閮?nèi)存不足時會收和立即回收兩種。

        5、總結(jié)

        本文通過對JAVA虛擬機中面向?qū)ο笮詫崿F(xiàn)原理的剖析全面地展示了面向?qū)ο笕筇匦栽谔摂M機內(nèi)部的運行機制,對于虛擬機內(nèi)部實現(xiàn)原理的了解一方面可以使我們對面向?qū)ο笤碛懈钊氲恼J識,另外也的使得我們可以更好地使用JAVA編程語言進行編程和學(xué)習(xí)。

        [1]The JavaTMVirtual Machine Specification.Sun Microsystems

        [2]張廣敏,盤細平,涂杰.Java虛擬機的面向?qū)ο笮?計算機應(yīng)用與軟件,2006(03)

        [3]笪斌,蘇建元.Java實現(xiàn)面向?qū)ο蟮睦^承性、封裝性和多態(tài)性.智能計算機與應(yīng)用,2005(6):18-19

        [4]張凱.Java虛擬機中類裝載器的實現(xiàn).王立冬,計算機應(yīng)用,2002,22(11):107-109

        [5]李永遠.JAVA虛擬機相關(guān)技術(shù)研究與實踐.信息通信,2015(5)

        籍慧文(1994-),男,山西太谷人,山西農(nóng)業(yè)大學(xué)信息學(xué)院,學(xué)生。

        猜你喜歡
        方法
        中醫(yī)特有的急救方法
        中老年保健(2021年9期)2021-08-24 03:52:04
        高中數(shù)學(xué)教學(xué)改革的方法
        河北畫報(2021年2期)2021-05-25 02:07:46
        化學(xué)反應(yīng)多變幻 “虛擬”方法幫大忙
        變快的方法
        兒童繪本(2020年5期)2020-04-07 17:46:30
        學(xué)習(xí)方法
        可能是方法不對
        用對方法才能瘦
        Coco薇(2016年2期)2016-03-22 02:42:52
        最有效的簡單方法
        山東青年(2016年1期)2016-02-28 14:25:23
        四大方法 教你不再“坐以待病”!
        Coco薇(2015年1期)2015-08-13 02:47:34
        賺錢方法
        天天做天天添av国产亚洲| 中文字幕亚洲区第一页| 亚洲免费福利视频网站| 成人免费自拍视频在线观看 | 人妻少妇人人丰满视频网站| 日本国产一区在线观看| 欧美a级在线现免费观看| 日本高清色倩视频在线观看| 亚洲国产一区二区三区在线视频| 国产午夜视频高清在线观看| www夜片内射视频在观看视频| 婷婷五月综合丁香在线| 不卡国产视频| 色婷婷一区二区三区久久亚洲| 中文字幕人乱码中文字幕| 国产乱妇乱子视频在播放| 国产伦码精品一区二区| 亚洲一区二区三区激情在线观看| 人妻体内射精一区二区三四| 日韩无码视频淫乱| 少妇被搞高潮在线免费观看| 校园春色人妻激情高清中文字幕| 精品淑女少妇av久久免费 | 国产真实一区二区三区| 国产男女免费完整视频| 精品一级毛片| 极品新娘高清在线观看| 亚洲爆乳无码精品aaa片蜜桃| 成年午夜无码av片在线观看 | 亚洲一区二区三在线播放| 成人影院视频在线免费观看| 成年无码av片在线| 久久九九青青国产精品| 老司机在线免费视频亚洲| 成人中文乱幕日产无线码| 99久久精品国产一区二区蜜芽| 人妻少妇精品视频一区二区三区| 手机在线观看日韩不卡av| 九九99久久精品国产| 亚洲AV无码国产精品色午夜软件| 日本久久精品视频免费|