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
賺錢方法
捕魚
主站蜘蛛池模板: 呦系列视频一区二区三区| 国产第四页| 欧美一级特黄aaaaaa在线看片| 国产欧美日韩另类精彩视频| 国产成人禁片在线观看| 久久先锋资源| 亚洲成a人片77777在线播放 | 99热这里只有精品在线播放| 欧美三级视频在线播放| 亚洲第一极品精品无码| 亚洲第一色网站| 激情午夜婷婷| 六月婷婷综合| 国产成熟女人性满足视频| 国产三区二区| 免费高清自慰一区二区三区| 国产成人艳妇AA视频在线| 六月婷婷激情综合| 国产乱人伦精品一区二区| 欧美成人二区| 国产亚洲精久久久久久无码AV| 99在线视频网站| 久久综合亚洲色一区二区三区| 色综合婷婷| jizz国产视频| 高清码无在线看| 日韩毛片免费视频| 欧美精品v欧洲精品| 五月天福利视频| 波多野结衣久久精品| 国产美女丝袜高潮| 国产欧美精品一区aⅴ影院| 亚洲天堂视频在线免费观看| 高清不卡一区二区三区香蕉| 伊在人亞洲香蕉精品區| 国产无码在线调教| 日韩毛片免费| 一级一级特黄女人精品毛片| 麻豆AV网站免费进入| 国产麻豆永久视频| 国产精品人莉莉成在线播放| 91成人在线免费视频| 国产美女久久久久不卡| 欧美区国产区| 日韩大片免费观看视频播放| 欧美区国产区| jizz在线免费播放| 亚洲男人天堂久久| 伊人久久精品亚洲午夜| 丝袜亚洲综合| 国产综合色在线视频播放线视| 国产欧美日韩资源在线观看| 色丁丁毛片在线观看| 亚洲欧洲免费视频| 高清无码不卡视频| 久996视频精品免费观看| 国产欧美日本在线观看| 日韩午夜片| 六月婷婷精品视频在线观看 | 国产亚洲高清视频| 国产在线观看一区二区三区| 欧美日韩福利| 国产精品视频a| 91福利国产成人精品导航| yjizz视频最新网站在线| 国产精欧美一区二区三区| 99精品在线看| 一区二区三区国产| 丁香五月婷婷激情基地| 四虎影院国产| 亚洲首页国产精品丝袜| 伊人国产无码高清视频| 午夜电影在线观看国产1区| 成人精品视频一区二区在线| 国产第一页亚洲| 五月丁香伊人啪啪手机免费观看| 亚洲性视频网站| 亚洲浓毛av| 亚洲第一视频网| 欧美国产在线一区| 少妇精品在线| 亚洲乱亚洲乱妇24p|