您好,歡迎來(lái)到賦能網(wǎng)!

Java語(yǔ)言屬于編譯型的開(kāi)發(fā)語(yǔ)言嗎?Java語(yǔ)言的工作原理是什么?

賦能網(wǎng) 2023-05-09 83

java是目前最流程的開(kāi)發(fā)語(yǔ)言,并且也是高薪行業(yè)之一,很多零基礎(chǔ)的人都會(huì)去學(xué)些java,為了就是能夠有一個(gè)好的發(fā)展,那Java語(yǔ)言屬于編譯型的開(kāi)發(fā)語(yǔ)言嗎?下面來(lái)我們就來(lái)給大家講解一下。

java是解釋型的語(yǔ)言,因?yàn)殡m然java也需要編譯,編譯成.class文件,但是并不是機(jī)器可以識(shí)別的語(yǔ)言,而是字節(jié)碼,最終還是需要 jvm的解釋?zhuān)拍茉诟鱾€(gè)平臺(tái)執(zhí)行,這同時(shí)也是java跨平臺(tái)的原因。所以可是說(shuō)java即是編譯型的,也是解釋型,但是假如非要?dú)w類(lèi)的話(huà),從概念上的定義,恐怕java應(yīng)該歸到解釋型的語(yǔ)言中。

Java語(yǔ)言的工作原理是什么?

由四方面組成:

(1)Java編程語(yǔ)言;

(2)Java類(lèi)文件格式;

(3)Java虛擬機(jī);

(4)Java應(yīng)用程序接口;

當(dāng)編輯并運(yùn)行一個(gè)Java程序時(shí),需要同時(shí)涉及到這四種方面。使用文字編輯軟件(例如記事本、寫(xiě)字板、UltraEdit等)或集成開(kāi)發(fā)環(huán)境(Eclipse、MyEclipse等)在Java源文件中定義不同的類(lèi),通過(guò)調(diào)用類(lèi)(這些類(lèi)實(shí)現(xiàn)了Java API)中的方法來(lái)訪問(wèn)資源系統(tǒng),把源文件編譯生成一種二進(jìn)制中間碼,存儲(chǔ)在class文件中,然后再通過(guò)運(yùn)行與操作系統(tǒng)平臺(tái)環(huán)境相對(duì)應(yīng)的Java虛擬機(jī)來(lái)運(yùn)行class文件,執(zhí)行編譯產(chǎn)生的字節(jié)碼,調(diào)用class文件中實(shí)現(xiàn)的方法來(lái)滿(mǎn)足程序的Java API調(diào)用。

1.簡(jiǎn)單性

Java看起來(lái)設(shè)計(jì)得很像C++,但是為了使語(yǔ)言小和容易熟悉,設(shè)計(jì)者們把C++語(yǔ)言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語(yǔ)句,代之以提供break和continue語(yǔ)句以及異常處理。Java還剔除了C++的操作符過(guò)載(overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。因?yàn)镴ava沒(méi)有結(jié)構(gòu),數(shù)組和串都是對(duì)象,所以不需要指針。Java能夠自動(dòng)處理對(duì)象的引用和間接引用,實(shí)現(xiàn)自動(dòng)的無(wú)用單元收集,使用戶(hù)不必為存儲(chǔ)管理問(wèn)題煩惱,能更多的時(shí)間和精力花在研發(fā)上。

2.編譯和解釋性

Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機(jī)器碼。Java字節(jié)碼提供對(duì)體系結(jié)構(gòu)中性的目標(biāo)文件格式,代碼設(shè)計(jì)成可有效地傳送程序到多個(gè)平臺(tái)。Java程序可以在任何實(shí)現(xiàn)了Java解釋程序和運(yùn)行系統(tǒng)(run-time system)的系統(tǒng)上運(yùn)行。

在一個(gè)解釋性的環(huán)境中,程序開(kāi)發(fā)的標(biāo)準(zhǔn)“鏈接”階段大大消失了。如果說(shuō)Java還有一個(gè)鏈接階段,它只是把新類(lèi)裝進(jìn)環(huán)境的過(guò)程,它是增量式的、輕量級(jí)的過(guò)程。因此,Java支持快速原型和容易試驗(yàn),它將導(dǎo)致快速程序開(kāi)發(fā)。這是一個(gè)與傳統(tǒng)的、耗時(shí)的“編譯、鏈接和測(cè)試”形成鮮明對(duì)比的精巧的開(kāi)發(fā)過(guò)程。

3.安全性

Java的存儲(chǔ)分配模型是它防御惡意代碼的主要方法之一。Java沒(méi)有指針,所以程序員不能得到隱蔽起來(lái)的內(nèi)幕和偽造指針去指向存儲(chǔ)器。更重要的是,Java編譯程序不處理存儲(chǔ)安排決策,所以程序員不能通過(guò)查看聲明去猜測(cè)類(lèi)的實(shí)際存儲(chǔ)安排。編譯的Java代碼中的存儲(chǔ)引用在運(yùn)行時(shí)由Java解釋程序決定實(shí)際存儲(chǔ)地址。

Java運(yùn)行系統(tǒng)使用字節(jié)碼驗(yàn)證過(guò)程來(lái)保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語(yǔ)言限制。這個(gè)安全機(jī)制部分包括類(lèi)如何從網(wǎng)上裝載。例如,裝載的類(lèi)是放在分開(kāi)的名字空間而不是局部類(lèi),預(yù)防惡意的小應(yīng)用程序用它自己的版本來(lái)代替標(biāo)準(zhǔn)Java類(lèi)。

Java是屬于解釋性開(kāi)發(fā)語(yǔ)言,并且java具有功能強(qiáng)大和簡(jiǎn)單易用兩個(gè)特征,使程序員以?xún)?yōu)雅的思維方式進(jìn)行復(fù)雜的編程,最后大家如果想要了解更多初識(shí)java知識(shí),敬請(qǐng)關(guān)注賦能網(wǎng)。


本文鏈接:

本文章“Java語(yǔ)言屬于編譯型的開(kāi)發(fā)語(yǔ)言嗎?Java語(yǔ)言的工作原理是什么?”已幫助 83 人

免責(zé)聲明:本信息由用戶(hù)發(fā)布,本站不承擔(dān)本信息引起的任何交易及知識(shí)產(chǎn)權(quán)侵權(quán)的法律責(zé)任!

本文由賦能網(wǎng) 整理發(fā)布。了解更多培訓(xùn)機(jī)構(gòu)》培訓(xùn)課程》學(xué)習(xí)資訊》課程優(yōu)惠》課程開(kāi)班》學(xué)校地址等機(jī)構(gòu)信息,可以留下您的聯(lián)系方式,讓課程老師跟你詳細(xì)解答:
咨詢(xún)熱線:4008-569-579

如果本頁(yè)不是您要找的課程,您也可以百度查找一下: