999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

JAVA虛擬機中面向對象性實現原理

2017-01-27 11:12:12籍慧文
科學中國人 2017年9期
關鍵詞:方法

籍慧文

山西農業大學信息學院

JAVA虛擬機中面向對象性實現原理

籍慧文

山西農業大學信息學院

通過對JAVA虛擬機原理的剖析闡述面向對象原理中的關鍵特性如封裝、繼承、多態在JAVA虛擬機中的實現方式。

JAVA虛擬機;面向對象;類;對象;封裝;繼承;多態

引言

在過去的二十幾年間JAVA編程語言在眾多面向對象程序設計語言中脫穎而出其跨平臺特性功不可沒。而跨平臺特性的基礎則是字節碼技術和JAVA虛擬機技術,其中JAVA虛擬機解除了JAVA程序與底層硬件、操作系統間的耦合關系,為JAVA編程語言的“一次編譯到處運行”提供了運行的環境基礎。本文將著重闡述面向對象原理中的類、對象、封裝、繼承、多態等概念、特性在JAVA虛擬機內部的實現方式及原理。

1、面向對象原理

面向對象原理以對象為基礎將屬性和操作封裝在一起并抽象出統一的新數據類型——類。面向對象相對面向過程從更接近人類思維方式的角度通過模擬客觀世界間實物相互作用的方式,以其封裝性、繼承性、多態性三大特性達到簡化問題,提高代碼重用性,降低維護成本的目標。

2、JAVA虛擬機

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

JAVA虛擬機內包含兩種運行機制,一是類裝載子系統它負責將類加載到虛擬機當中,另一個是運行引擎它負責執行已裝載的類中的指令。

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

3、類在JAVA虛擬機中的實現

3.1 類的結構

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

3.2 類的生命周期

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

3.3 繼承性的實現

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

3.4 多態性的實現

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

4、對象的實現

4.1 對象的結構

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

4.2 對象間互操作

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

4.3 對象的生命周期

對象的生命周期從創建開始經過使用最終被回收。JAVA語言的一大特色就是自動回收機制,回收通常分為找出待回收對象和釋放內存空間兩個階段。回收監測通常會建立一個根對象集合,并且以此為出發點檢查對象是否被這些根對象引用如果根對象不再引用這些對象這些對象即可被回收。回收機制通常可以分為內存不足時會收和立即回收兩種。

5、總結

本文通過對JAVA虛擬機中面向對象性實現原理的剖析全面地展示了面向對象三大特性在虛擬機內部的運行機制,對于虛擬機內部實現原理的了解一方面可以使我們對面向對象原理有更深入的認識,另外也的使得我們可以更好地使用JAVA編程語言進行編程和學習。

[1]The JavaTMVirtual Machine Specification.Sun Microsystems

[2]張廣敏,盤細平,涂杰.Java虛擬機的面向對象性.計算機應用與軟件,2006(03)

[3]笪斌,蘇建元.Java實現面向對象的繼承性、封裝性和多態性.智能計算機與應用,2005(6):18-19

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

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

籍慧文(1994-),男,山西太谷人,山西農業大學信息學院,學生。

猜你喜歡
方法
中醫特有的急救方法
中老年保健(2021年9期)2021-08-24 03:52:04
高中數學教學改革的方法
河北畫報(2021年2期)2021-05-25 02:07:46
化學反應多變幻 “虛擬”方法幫大忙
變快的方法
兒童繪本(2020年5期)2020-04-07 17:46:30
學習方法
用對方法才能瘦
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
賺錢方法
捕魚
主站蜘蛛池模板: 色老二精品视频在线观看| 免费在线色| 一级毛片无毒不卡直接观看| 91精品国产91久久久久久三级| 伊人久久影视| 91黄视频在线观看| 日韩精品无码不卡无码| 精品视频第一页| a欧美在线| 精品福利一区二区免费视频| 亚洲品质国产精品无码| 国产精品粉嫩| 午夜国产大片免费观看| 91精品在线视频观看| 国产福利小视频高清在线观看| 国产高清无码麻豆精品| 蜜桃臀无码内射一区二区三区| 免费无码AV片在线观看中文| 麻豆精品在线| 亚洲欧美一区二区三区蜜芽| 婷婷五月在线视频| 亚洲成人手机在线| 99草精品视频| 日日噜噜夜夜狠狠视频| 99精品视频九九精品| 青青久久91| 欧美亚洲国产一区| AV无码无在线观看免费| 国产亚洲精品资源在线26u| 欧美福利在线观看| 色吊丝av中文字幕| 99视频在线免费| 久久久国产精品无码专区| 国产91视频免费观看| 国产激爽大片高清在线观看| 国产无遮挡猛进猛出免费软件| 中文国产成人精品久久| 亚洲另类第一页| 成年午夜精品久久精品| 亚洲无码视频一区二区三区| 99在线观看精品视频| 91一级片| 欧美性爱精品一区二区三区 | 国产一级做美女做受视频| 免费观看成人久久网免费观看| 看国产一级毛片| 亚洲天堂网在线播放| 亚洲经典在线中文字幕| 国产丰满成熟女性性满足视频| 亚洲国产亚洲综合在线尤物| 国产成人精品视频一区二区电影| 亚洲国产黄色| 亚洲视频三级| 亚洲欧美激情小说另类| 国产精品视频第一专区| 91探花国产综合在线精品| 国产一区在线视频观看| 亚洲永久视频| 亚洲精品国产综合99| 久久中文无码精品| 国产自在自线午夜精品视频| 国产免费好大好硬视频| 久久久久中文字幕精品视频| 亚洲无码免费黄色网址| 欧美日韩中文国产| 少妇极品熟妇人妻专区视频| 91精品视频网站| 久久99国产精品成人欧美| 亚洲激情区| 午夜国产理论| 2020国产在线视精品在| 伊人91在线| 亚洲无码高清一区二区| 亚洲福利片无码最新在线播放| 国产a v无码专区亚洲av| 久久精品一品道久久精品| 久久香蕉国产线看精品| 91精品啪在线观看国产60岁 | AV无码一区二区三区四区| 真实国产乱子伦高清| 77777亚洲午夜久久多人| 91精品国产一区|