<form id="itnzz"><noscript id="itnzz"></noscript></form>

          1. <menuitem id="itnzz"></menuitem>
          2. 成人午夜激情在线观看,国产精品一线天粉嫩av,99精品国产综合久久久久五月天 ,一卡2卡三卡4卡免费网站,国产高清在线男人的天堂,五月天国产成人AV免费观看,67194熟妇在线观看线路,成人无码潮喷在线观看
            現在位置:范文先生網>理工論文>計算機信息技術>在C 中實現JAVA的存儲管理機制

            在C 中實現JAVA的存儲管理機制

            時間:2022-08-09 07:21:08 計算機信息技術 我要投稿
            • 相關推薦

            在C 中實現JAVA的存儲管理機制

            馮輝寧

            南京大學計算機系,210093

            關鍵詞:Java、C 、存儲管理、對象、指針

            眾所周知,JAVA語言最明顯的優勢在于用它設計的程序可以廣泛地運行于互聯網上所有安裝了VM解釋器的計算機上。然而,如今JAVA之所以在市場上如此流行,還得益于它的另一賣點:它提供了安全可靠和使用方便的存儲管理機制。這是部分編程人員將它與其前身C 語言對比后所得出的結論。本文將針對兩種語言的內存(以對象為單位)使用機制,通過從靈活性、易用性和效率三個方面的比較,來證明這樣一個事實:在C 中可以實現與JAVA一樣的存儲管理機制。

            一、JAVA對象是C 對象和指針二者的繼承

            JAVA作為C 的后繼,在內存分配和對象使用上與之有很大的相似之處。請看下面的比較:

            1

            操作

            JAVA

            C

            指針使用

            非指針使用

            聲明

            ObjectClass Instance

            ObjectClass* Instance

            ObjectClass Instance

            創建

            Instance=new ObjectClass()

            Instance=new ObjectClass()

            聲明時自動創建

            數據訪問

            Instance.Data

            Instance->Data

            Instance.Data

            方法調用

            Instance.Method()

            Instance->Method()

            Instance.Method()

            復制

            指針復制

            Instance1=Instance2

            Instance1=Instance2

            不提供

            內容復制

            由類自身定義

            不提供

            缺省,或由類自身定義

            比較

            指針比較

            Instance1==Instance2

            Instance1==Instance2

            不提供

            內容比較

            由類自身定義

            不提供

            缺省,或由類自身定義

            銷毀

            不再引用時由垃圾收集器自動銷毀

            delete Instance

            超出作用域時自動銷毀

            注: ① C 的“指針使用”一列中并未列出形如*Instance的使用,因為這樣做的實質不是指針使用;

            ②“指針復制”是指使得兩個對象今后使用相同的一塊內存區域,任何對此區域的修改同時會反映到這兩個對象上;

            ③“內容復制”則指拷貝兩個對象各自的存儲區域,拷貝后內容相同,但各自保留自己的存儲區,以后對任一者的修改不會影響另一者。

            1

            從上表可以看出,除了對象銷毀機制以外,JAVA的對象其實是從C 中的對象和指針共同繼承而來的。

            但是,很多極力提倡JAVA語言的人似乎沒有意識到這種關系。他們批評C 指針的概念太難被初學者接受。的確,對初學者來說,接受計算機存儲器和指針的概念并不是輕而易舉的事。事實上,很多程序員都經歷過這樣一個迷惘的階段。但這并不意味著存在一種對存儲器的解釋可以完全避免“指針”這一概念——在JAVA語言中也是如此,F在有很多講解JAVA語言的教材,但真正能夠從頭到尾不出現“指針”或者類似概念(不包括抨擊C 語言時的使用)的,又有幾本呢?

            特別地,JAVA初學者由于理解的障礙,經常提出像這樣的問題:“為什么像int、float這樣的變量使用前不需要先用new命令來創建而對象卻要呢?為什么兩個對象互相復制以后,修改其中一個會影響另一個,而像int、float這樣的基本數據類型卻不會呢?兩個值相等的對象,用==比較的結果為什么是false,它們有什么是不等呢……”面對這樣的問題,即使許多對JAVA比較熟悉的人有時也說不出個所以然來。究其原因,就是JAVA中的對象從來就沒有離開C 指針的影子,特別是在創建、復制(事實上,JAVA默認時只提供指針復制)和比較等最常用的操作上。因而使用它們就必須遵循指針的規則,否則將無法為計算機或編程者所理解。在C 中,指針和對象其實是與int、float共通的數據類型,但又各有其特性;繼承到JAVA中以后,二者的特性互相糅合而融為一體,因此對其含義的問題就產生模棱兩可的解釋:JAVA對象有時是對象,有時是指針,但大多數時候是指針。

            對C 指針的另一種批評指出,C 允許指針指向任意內存區域,因此容易引起系統的干擾,即使很有經驗的程序員在使用時也難免產生疏忽。這種批評不無道理,因為大部分C 程序出錯的原因都與指針有關。但由此而批評指針存在的價值是不對的。沒有C 程序員愿意從不使用指針。指針是程序設計的一樣利器,凡涉及內存的操作,沒有指針不能做到的,并且它的效率比其他任何替代方法都高。這就是眾多C 程序員寧愿冒著高度的出錯風險也堅持使用指針的最大原因,而并不是他們無法避免使用指針。如果真正要像JAVA語言那樣刻意避免指針的話,筆者在后面可以證明,只要他們愿意,在C 程序員同樣可以做到,而且性能比JAVA更好。他們可以設計一類徹頭徹尾的C 對象,而他們的使用方法卻與JAVA對象

            【在C 中實現JAVA的存儲管理機制】相關文章:

            在初中教學中關于存儲器的教學08-17

            《在奮斗中實現理想》的教案08-17

            在反思中實現自我教育08-17

            MicroC/OS-II在80C196上的移植實現08-19

            在奉獻中實現自我公司保管員工作體會08-15

            奉獻中實現自我公司保管員工作體會08-24

            創新管理機制提高管理效益08-16

            完善社區管理機制調研報告08-24

            主體性在英語課堂教學中的實現08-17

            在初三物理復習課中實現學生自主學習08-19

            主站蜘蛛池模板: 成午夜福利人试看120秒| 插插无码视频大全不卡网站| 国产久免费热视频在线观看| 九九热在线观看视频免费| 国产成+人+综合+欧美亚洲| 999精品色在线播放| 视频二区国产精品职场同事| 妇女自拍偷自拍亚洲精品| 久久久久久久久久久免费精品 | 亚洲伊人久久成人综合网| 亚洲国产午夜精品福利| 国产露脸150部国语对白| 日韩高清不卡一区二区三区| 精品无码国产自产拍在线观看蜜 | 无码欧亚熟妇人妻AV在线外遇| 午夜精品久久久久久久第一页| 精品国产成人国产在线观看| 久久亚洲精品情侣| 欧美交a欧美精品喷水| 国产成人福利在线视频播放下载 | 欧美人与动牲猛交A欧美精品| 日本久久久免费高清| 四虎永久免费高清视频| 亚洲日韩国产精品第一页一区| 欧美综合在线观看| 国产午夜A理论毛片| 亚洲天堂免费一二三四区| 亚洲综合精品第一页| 国产成人亚洲精品无码青APP| 亚洲欧洲日韩国内精品| 亚洲成人精品一区免费| 精品无码久久久久久尤物| 一本久道综合色婷婷五月| 久久精品人妻少妇一区二| 久久午夜夜伦鲁鲁片不卡| 国产一区二区三区粉嫩av| 内射老阿姨1区2区3区4区| 成人综合人人爽一区二区| 国产办公室秘书无码精品99| 五月丁香六月狠狠爱综合 | 欧美疯狂xxxxbbbb牲交|