午夜伦理在线-午夜伦理在线观看-午夜毛片免费看-午夜美女久久久久爽久久-午夜免费

以文本方式查看主題

-  曙海教育集團論壇  (http://www.brpp.cn/bbs/index.asp)
--  C++語言開發(fā)  (http://www.brpp.cn/bbs/list.asp?boardid=63)
----  C++與Java語言及其開發(fā)工具  (http://www.brpp.cn/bbs/dispbbs.asp?boardid=63&id=2436)

--  作者:wangxinxin
--  發(fā)布時間:2010-12-10 15:08:03
--  C++與Java語言及其開發(fā)工具
一談到Java,人們馬上會想起一種類似于C和C++的、適用于分布環(huán)境的面向?qū)ο缶幊陶Z言,想到這種語言的簡單、穩(wěn)定、安全、與體系結(jié)構(gòu)無關(guān)、可移植、可解釋、高性能、多線索和動態(tài)性等特征。這些都是Java作為一種程序設(shè)計語言的主要特征。但是,如果希望更好地理解Java語言,最好的方法是把這種語言與其同類型的語言相比較。既然Java類似于C++ ,把它同C++進行一番比較則是順理成章的事情。 

一、Java語言 

Java是由Sun公司的一個技術(shù)小組研制出來的。在實現(xiàn)Java語言的過程中,小組的技術(shù)人員很快就意識到:C++無法成為一種完全面向?qū)ο蟮摹⒕W(wǎng)絡(luò)化的開發(fā)語言。C++是通過給原先的C語言增加面向?qū)ο蠊δ芏_發(fā)出來的,因此,它存在著先天不足。這主要體現(xiàn)在C++種類繁多,功能大量冗余,同時又沒有任何一種C++編譯器能夠支持它的全部功能。鑒于這種情況,Sun公司的技術(shù)人員決定不擴充C++,而開發(fā)一種全新的計算機語言(Java的前身Oak)。但是,C++已經(jīng)成了大多數(shù)編程人員所熟練掌握的語言,Java的設(shè)計顯然不能無視這個現(xiàn)實。如果Java和C++之間的差別
過大,那么程序員們在學(xué)會這種語言的過程中無疑要花費大量的時間和精力。因此,Java保留了盡可能多的C++風(fēng)格。 

Java是完全面向?qū)ο蟮?這和C++不盡相同。盡管C++被認為是一種面向?qū)ο蟮恼Z言,但它仍然支持過程式程序設(shè)計風(fēng)格。Java則不然,它要求程序員采用完全面向?qū)ο蟮木幊碳夹g(shù) ,從而消除了由于混用兩種相同的編程風(fēng)格而導(dǎo)致的種種問題。另一方面,Java的"外觀"和 "感覺"和C++又有著很多相似之處。Java消除了C和C++中的冗余以及所有過程式的編程風(fēng)格 ,并且不再支持指針數(shù)據(jù)類型,同時增加了數(shù)組的自動邊界檢查和自動內(nèi)存垃圾搜集,并且把數(shù)組封裝到類結(jié)構(gòu)內(nèi),從而有助于開發(fā)分布計算環(huán)境下的應(yīng)用程序。 

不過,Java之所以能夠成為一種理想的編程語言,最重要的原因還在于其"內(nèi)嵌"的內(nèi)存管理和多線索功能。C++語言支持程序員編寫一些非常低級的程序,從而能夠訪問機器硬件 ,并操縱實際內(nèi)存地址。但這些是以犧牲可移植性為代價的,因為這時每個程序都是針對某種具體硬件環(huán)境的。而Java卻是通過提供各種邊界檢查和內(nèi)存管理來確保代碼的可移植性 ,同時,還提供了內(nèi)嵌的多線索功能,使類似于內(nèi)存垃圾搜集一類的操作可以在后臺進行,從而保證了較高的執(zhí)行效率。 

Java語言能夠具有這些優(yōu)點,主要是因為它是作為一種全新的語言而設(shè)計的。如果僅僅是擴充C++,Java將無法避免C++中遺留的大量過程式特性,其解釋器的規(guī)模將急劇增長,從而降低了系統(tǒng)的總體性能,代碼的可移植性和穩(wěn)定性的實現(xiàn)即使是可能的,也將非常困難。總之,Java的這些特性,為其成為下一代編程語言奠定了良好的基礎(chǔ)。 

1.Java 的面向?qū)ο筇卣?nbsp;

面向?qū)ο蠹夹g(shù)的關(guān)鍵在于封裝、繼承和動態(tài)聯(lián)編,下面就談?wù)凧ava是如何支持這些關(guān)鍵特性的。 

面向?qū)ο蠹夹g(shù)的基本單位是對象,對象在Java中稱為類(Class)。一個類實際上就是一段用于實現(xiàn)對象行為的代碼,它是提供封裝性的根本所在。也就是說,對象及其相關(guān)的所有操作均被封裝到一個類中。 

所有的對象都有一個狀態(tài)。類也有狀態(tài),以"實例變量"表示。實例變量由相應(yīng)的類進行控制,除某些特殊情況外其它任何類都無法訪問這些變量。實例變量通過方法(method)進行訪問。方法相當(dāng)于過程式語言中的函數(shù),它是一個可多次調(diào)用的代碼段。程序員必須通過調(diào)用方法來實現(xiàn)對類的控制,即改變類的狀態(tài),而且只能實現(xiàn)類的方法所允許的操作。這就是面向?qū)ο蠹夹g(shù)的工作原理。 

當(dāng)然,在個別情況下(對某些面向?qū)ο蟮恼Z言而言),編程人員也可以直接訪問實例變量 ,但這并不是一個值得推薦的做法,因為它違背了面向?qū)ο蟮某踔浴?nbsp;

面向?qū)ο缶幊痰膬?yōu)點主要在于代碼的可重用性。當(dāng)需要進行某些重復(fù)性操作時,編程人員不必反復(fù)地重寫相同的代碼段,而只需創(chuàng)建對象的多個實例即可。因為編程人員既不需要了解對象是如何創(chuàng)建的,也不用知道對象內(nèi)部的工作機理,需要知道的只是對象方法的調(diào)用機制,其余的工作將由對象所屬的類進行處理。在Java中,程序員可以編寫完成各種功能的類,發(fā)布編譯之后的代碼,并且只需要告訴用戶如何控制這些類即可。 

Java通過類來實現(xiàn)對象,并且提供了類的多種用法。類可以作為各對象實例的一個模板。為創(chuàng)建類的新實例,可以調(diào)用其構(gòu)造函數(shù),它是每當(dāng)創(chuàng)建類的一份新的拷貝時都必須調(diào)用的一個特殊方法。當(dāng)一個類的所有程序都已經(jīng)結(jié)束運行,或者Java覺得不再需要調(diào)用該類時 (比方說應(yīng)用程序已經(jīng)結(jié)束),必須調(diào)用這個類的終結(jié)函數(shù)(finalize),以進行一些必要的清除工作。當(dāng)然,Java的終結(jié)函數(shù)和C++中的析構(gòu)函數(shù)會有所差別,因為Java可進行自動垃圾清除。
主站蜘蛛池模板: 亚洲国产精品a在线 | 亚洲成人免费视频在线 | 日韩欧美毛片免费看播放 | 国产美女视频国产视视频 | 高清欧美不卡一区二区三区 | 国产毛片一区二区三区精品 | 国产美女亚洲精品久久久久久 | 一级成人 理伦片 | a在线观看免费网址大全 | 午夜精品一区二区三区在线观看 | 伊人热人久久中文字幕 | 美女色影院 | 五月婷婷综合在线视频 | 水果污视频 | 国产视频不卡在线 | 中文字幕 视频一区 | 91日韩在线| 中文国产成人精品久久96 | 国产一级特黄aa大片免费 | 国产片一级特黄aa的大片 | 路线1路线二线路三国产 | 毛片毛片毛片 | 婷婷草| 色视频免费国产观看 | 妖精视频在线播放 | 国内自拍videos hd | 国产乱理伦片在线观看大陆 | 国产在线视频二区 | 国产a一级毛片午夜剧院 | 国产va免费精品观看精品 | 18禁片一级毛片视频播放免费看 | 91久久夜色精品国产网站 | 综合亚洲欧美日韩一区二区 | 午夜性视频播放免费视频 | 华人欧美国产在线精品 | 国产成人美女福利在线观看 | 国产农村1级毛片 | 成人网视频在线观看免费 | 亚洲欧美韩国日产综合在线 | 亚洲精品国产第一区二区尤物 | 久草在线精品视频 |