久久中文视频-久久中文网-久久中文亚洲国产-久久中文字幕久久久久-亚洲狠狠成人综合网-亚洲狠狠婷婷综合久久久久


曙海教育集團(tuán)論壇開(kāi)發(fā)語(yǔ)言培訓(xùn)專(zhuān)區(qū)C++語(yǔ)言開(kāi)發(fā) → C++與Java語(yǔ)言及其開(kāi)發(fā)工具 (2)


  共有8469人關(guān)注過(guò)本帖樹(shù)形打印

主題:C++與Java語(yǔ)言及其開(kāi)發(fā)工具 (2)

美女呀,離線(xiàn),留言給我吧!
wangxinxin
  1樓 個(gè)性首頁(yè) | 博客 | 信息 | 搜索 | 郵箱 | 主頁(yè) | UC


加好友 發(fā)短信
等級(jí):青蜂俠 帖子:1393 積分:14038 威望:0 精華:0 注冊(cè):2010-11-12 11:08:23
C++與Java語(yǔ)言及其開(kāi)發(fā)工具 (2)  發(fā)帖心情 Post By:2010-12-10 15:13:24

在Java中,對(duì)變量和方法的訪問(wèn)控制是通過(guò)訪問(wèn)修飾符來(lái)實(shí)現(xiàn)的。Java定義了4種
訪問(wèn)級(jí)別:公共(public)、受保護(hù)(protected)、私有(private)和友好(friendly)。
公共類(lèi)型的方法及變量可從任意類(lèi)進(jìn)行訪問(wèn);受保護(hù)類(lèi)型的方法及變量只能從當(dāng)前
類(lèi)及其子類(lèi)訪問(wèn);私有類(lèi)型的方法及變量則只能從當(dāng)前類(lèi)訪問(wèn)。如果未給出這三種
類(lèi)型中任意一種的顯式說(shuō)明 ,表明相應(yīng)的方法或變量屬于"友好"類(lèi)型,從而可由屬
于同一"包"(package)內(nèi)的所有類(lèi)進(jìn)行訪問(wèn)。在Java內(nèi),"包"是一個(gè)單獨(dú)的編譯單
位,它是具有某種共性的類(lèi)所組成的集合。通過(guò)定義包這個(gè)單位,可實(shí)現(xiàn)相關(guān)對(duì)象
之間的相互訪問(wèn),同時(shí)把這些對(duì)象與包之外的其它對(duì)象隔離。 

面向?qū)ο蟮木幊虣C(jī)制是Java的一個(gè)極為重要的方面。在Java內(nèi),如果不創(chuàng)建新類(lèi),
就無(wú)法創(chuàng)建應(yīng)用程序。Java定義了一個(gè)特殊的超類(lèi)Object,用戶(hù)創(chuàng)建的類(lèi)都是Object
的子類(lèi)。J ava程序既可在解釋器內(nèi)也可在瀏覽器內(nèi)運(yùn)行,但無(wú)論采用哪種方式,都
必須先創(chuàng)建一個(gè)類(lèi)實(shí)例,然后才能提交運(yùn)行。此外,利用繼承機(jī)制,用戶(hù)還可充分利
用各種超類(lèi)提供的功能。 

2. 與C++的差別 

盡管C++程序員可以相對(duì)容易地掌握J(rèn)ava編程,但他們?nèi)匀槐仨毧朔䦶腃++帶來(lái)的一
些舊習(xí)慣。Java取消了C++中的如下特性或功能: 

·結(jié)構(gòu)或指針 ·#define語(yǔ)句 

·指針 ·多重繼承 

·獨(dú)立的函數(shù) ·GOTO語(yǔ)句 

·操作符重載 ·自動(dòng)類(lèi)型轉(zhuǎn)換 

Java不支持結(jié)構(gòu)和指針,而且取消了C++中的#define或#typedef語(yǔ)句和頭文件。 

事實(shí)上,constant和typedef這兩條語(yǔ)句包含了#define語(yǔ)句的作用�,F(xiàn)在,結(jié)構(gòu)和
聯(lián)合已經(jīng)被Java的類(lèi)所代替。刪除這些特性的原因是:由于其希望維持與C語(yǔ)言的
向后兼容性,C ++的語(yǔ)言規(guī)范包含了大量冗余。比如,類(lèi)實(shí)際上就已經(jīng)包括了結(jié)構(gòu)
和聯(lián)合的作用,因此這兩種數(shù)據(jù)結(jié)構(gòu)完全可以取消。關(guān)于#define語(yǔ)句,Java語(yǔ)言規(guī)
范的制訂者認(rèn)為:盡管該語(yǔ)句的出發(fā)點(diǎn)是為了增強(qiáng)程序的可讀性,但實(shí)際效果卻恰
恰相反,它常常導(dǎo)致難讀的代碼,故應(yīng)該予以取消。Java不再支持獨(dú)立函數(shù),因此任
何函數(shù)都必須封裝到某個(gè)類(lèi)中。由于人們普遍認(rèn)為, C++所用的超類(lèi)是非常不穩(wěn)定
的,因此Java拋棄了C++中的多繼承并代之以接口。Java的接口指的是,在別的類(lèi)看
來(lái)一個(gè)類(lèi)所能實(shí)現(xiàn)的方法。它所顯示的只是一個(gè)類(lèi)的方法或常量和變量 ,而不是
這個(gè)類(lèi)的全部結(jié)構(gòu)。 

最后,Java還取消了C++中的GOTO語(yǔ)句、操作符重載、自動(dòng)類(lèi)型轉(zhuǎn)換及指針數(shù)據(jù)類(lèi)
型。 GOTO語(yǔ)句引起的爭(zhēng)議已經(jīng)有很多年了,可一直陰魂不散,這跟某些程序員對(duì)該
語(yǔ)句一直情有獨(dú)鐘有關(guān)。C++仍然支持?jǐn)?shù)據(jù)類(lèi)型的自動(dòng)轉(zhuǎn)換,但Java要求編程人員
顯式實(shí)現(xiàn)數(shù)據(jù)類(lèi)型之間的轉(zhuǎn)換。自動(dòng)數(shù)據(jù)類(lèi)型轉(zhuǎn)換使得兩個(gè)數(shù)據(jù)類(lèi)型互不兼容的
變量可以相互賦值,而不需要給出顯式說(shuō)明。這有時(shí)會(huì)導(dǎo)致一些問(wèn)題,其中最常見(jiàn)
的是精確度損失。比方說(shuō),如果把一個(gè)帶符號(hào)的32位整數(shù)賦給一個(gè)無(wú)符號(hào)整數(shù),則
所有的結(jié)果均為正數(shù)。Java的設(shè)計(jì)者們認(rèn)為這很容易引起程序錯(cuò)誤,從而決定不支
持這種轉(zhuǎn)換方式。 

某些C和C++程序員也許會(huì)覺(jué)得遺憾,因?yàn)镴ava不再支持他們非常愿意使用的指針類(lèi)
型。但我們都知道,指針是調(diào)試程序時(shí)使人最感頭痛的地方之一。Java的設(shè)計(jì)者們
認(rèn)為,由于Ja va取消結(jié)構(gòu)類(lèi)型并且把數(shù)組封裝到了對(duì)象里面,指針已經(jīng)不再有用武
之地。但有些C和C++高級(jí)編程人員可能仍然需要一段時(shí)間才能走出指針的陰影。
因?yàn)橹羔樀挠梅ūM管很難掌握,可一旦掌握了其使用技巧,就會(huì)讓人感到它的功能
的確非常強(qiáng)大。作為一種面向分布式計(jì)算環(huán)境的編程語(yǔ)言,Java放棄對(duì)指針的支持
是非常順理成章的,因?yàn)橹挥羞@樣,才可能產(chǎn)生一種穩(wěn)可能產(chǎn)生一種穩(wěn)定、高效而
且安全的代碼。 

3. 內(nèi)存管理和線(xiàn)索 

Java語(yǔ)言帶來(lái)的好處還在于其自動(dòng)內(nèi)存管理和線(xiàn)索控制。在C和C++中,內(nèi)存必須用
free、 malloc和其它許多內(nèi)存管理標(biāo)準(zhǔn)庫(kù)管理。因此,系統(tǒng)要了解何時(shí)分配、釋
放內(nèi)存并且跟蹤所有的內(nèi)存使用情況是非常困難的。如果要在C和C++中實(shí)現(xiàn)線(xiàn)索
功能,必須使用一個(gè)可對(duì)線(xiàn)索進(jìn)行各種控制的類(lèi)庫(kù)。而在Java中,盡管線(xiàn)索仍然需
要類(lèi)的支持,但系統(tǒng)卻在語(yǔ)言級(jí)包括了線(xiàn)索同步機(jī)制。 

Java具有內(nèi)嵌的內(nèi)存管理程序。一旦創(chuàng)建了一個(gè)對(duì)象,Java的運(yùn)行系統(tǒng)就開(kāi)始跟蹤
這個(gè)對(duì)象,直到不再需要跟蹤該對(duì)象的所有引用為止。當(dāng)某個(gè)對(duì)象不存在相應(yīng)的引
用時(shí),Java把這個(gè)對(duì)象放到一個(gè)用于垃圾搜集的棧內(nèi)。為在性能損失最小的情況下
提供自動(dòng)垃圾搜集機(jī)制,這個(gè)垃圾搜集程序?qū)⒃诤笈_(tái)或作為低優(yōu)先級(jí)線(xiàn)索運(yùn)行。這
樣,Java的垃圾搜集軟件將在前臺(tái)線(xiàn)索的執(zhí)行期間抽空?qǐng)?zhí)行,或者在系統(tǒng)顯式提出
需要使用那些被已經(jīng)死亡的類(lèi)所占用的內(nèi)存空間時(shí)執(zhí)行。 

從后臺(tái)內(nèi)存管理程序可以很明顯地看出,多線(xiàn)索的確可以增強(qiáng)Java環(huán)境的相對(duì)性能。
鑒于多線(xiàn)索的重要性,Java在語(yǔ)言級(jí)提供了線(xiàn)索同步機(jī)制,使多線(xiàn)索成為一種內(nèi)嵌
特性。Java 語(yǔ)言支持針對(duì)方法的同步修飾符,并通過(guò)該修飾符來(lái)指明線(xiàn)索的運(yùn)行
順序。此外,Java還能控制方法與實(shí)例變量的相互作用機(jī)制,確保了各方法之間在
修改數(shù)據(jù)時(shí)不會(huì)產(chǎn)生沖突。 

Java的內(nèi)存管理和線(xiàn)索支持還具有使Java語(yǔ)言簡(jiǎn)單化的作用。正是由于把內(nèi)存管
理任務(wù)嵌入到了Java環(huán)境,Java語(yǔ)言才可以取消指針數(shù)據(jù)類(lèi)型、malloc和free函
數(shù)。這樣,程序員就可以把更多的時(shí)間化在真正的編程工作上,而不是去跟蹤調(diào)試
與內(nèi)存使用相關(guān)的程序錯(cuò)誤。正是由于其多線(xiàn)索機(jī)制,Java才可以為一個(gè)可移植
的解釋系統(tǒng)提供較高的性能。 

Java語(yǔ)言非常適合于異構(gòu)網(wǎng)絡(luò)系統(tǒng)(尤其是Internet)上的高性能、分布式計(jì)算環(huán)
境。雖然個(gè)人機(jī)系統(tǒng)未必可以看作是高性能的,但目前的個(gè)人機(jī)已經(jīng)具有相當(dāng)好
的性能。再者, 目前幾乎所有操作系統(tǒng)均提供了各種高級(jí)特性,如內(nèi)嵌的聯(lián)網(wǎng)功
能和真正的多任務(wù)、多線(xiàn)索支持等。然而在幾年前,這些功能還只有昂貴的UNIX
工作站才能提供。有了這些軟硬件基礎(chǔ) ,加上Java的簡(jiǎn)單易學(xué)及面向?qū)ο筇匦?
未來(lái)的程序員將可以在聯(lián)入網(wǎng)絡(luò)的個(gè)人機(jī)上開(kāi)發(fā)適合于在各種硬件和軟件平臺(tái)上
發(fā)布的高級(jí)"內(nèi)容"。


支持(0中立(0反對(duì)(0單帖管理 | 引用 | 回復(fù) 回到頂部

返回版面帖子列表

C++與Java語(yǔ)言及其開(kāi)發(fā)工具 (2)








簽名
主站蜘蛛池模板: 欧美黄网站免费观看 | 91久久香蕉青青草原娱乐 | 91精品乱码一区二区三区 | 99久久国语露脸精品对白 | 亚洲视频在线观看一区 | 中文字幕亚洲 综合久久 | 亚洲第一免费网站 | 性欧美videos高清精品 | 免费a网| 免费永久观看美女视频网站网址 | 国内精品久久久久久中文字幕 | 成年男女免费视频网站 | 日韩精品麻豆 | 欧美日韩精品一区二区三区高清视频 | 日韩精品一区二区三区在线观看 | 欧美国产视频 | 亚洲一区成人 | 精品欧美成人高清在线观看2021 | 美女张开大腿让男人桶 | 老鸭窝 国产 精品 91 | 日本三级免费网站 | 香蕉久久夜色精品国产 | 欧美一区二区三区gg高清影视 | 亚洲精品国产一区二区三区在 | 99热在线获取最新地址 | 911精品国产亚洲日本美国韩国 | a免费视频 | 一本色道久久88亚洲综合 | 久久aa毛片免费播放嗯啊 | 日韩一区二区三区在线播放 | 免费观看黄色毛片 | 97在线播放 | 欧美成人全部视频 | 免费一级欧美片片线观看 | 久久99精品九九九久久婷婷 | 男女乱淫视频 | 国产dvd毛片在线视频 | 夜色www国产精品资源站 | 免费一级a毛片在线播 | 免费观看一级成人毛片软件 | 高清黄色毛片 |