魔方格魔方格合作機(jī)構(gòu)> 保定培訓(xùn)學(xué)校>保定競(jìng)秀區(qū)達(dá)內(nèi)IT培訓(xùn)
保定競(jìng)秀區(qū)達(dá)內(nèi)IT培訓(xùn)
全國(guó)統(tǒng)一學(xué)習(xí)專(zhuān)線(xiàn) 8:30-21:00
位置:魔方格 > 計(jì)算機(jī)>Java開(kāi)發(fā)> Java開(kāi)發(fā)語(yǔ)言有哪些特點(diǎn)  正文

Java開(kāi)發(fā)語(yǔ)言有哪些特點(diǎn)

發(fā)布時(shí)間:2022-02-11 10:00:33來(lái)源:魔方格

Java語(yǔ)言是適用于分布式計(jì)算環(huán)境的面向?qū)ο缶幊陶Z(yǔ)言,它雖類(lèi)似C和C++,但比C++簡(jiǎn)單,忽略了許多為提高計(jì)算效率,初學(xué)者較難掌握的程序語(yǔ)言特性。那么,Java開(kāi)發(fā)語(yǔ)言有哪些特點(diǎn)?

Java語(yǔ)言主要有以下特點(diǎn):

1.強(qiáng)類(lèi)型

Java語(yǔ)言是一種強(qiáng)類(lèi)型語(yǔ)言,強(qiáng)類(lèi)型能約束程序員必須遵守更多的編程規(guī)定,也能讓編譯器檢測(cè)出程序中盡可能多的錯(cuò)誤。

2.編譯和解釋

Java語(yǔ)言是一種編程語(yǔ)言,用Java語(yǔ)言編寫(xiě)的源程序在計(jì)算機(jī)上運(yùn)行需經(jīng)過(guò)編譯和解釋執(zhí)行兩個(gè)嚴(yán)格區(qū)分的階段。Java語(yǔ)言的編譯程序先將Java源程序翻譯成機(jī)器無(wú)關(guān)的字節(jié)碼(bytecode),不是通常的編譯程序?qū)⒃闯绦蚍g成計(jì)算機(jī)的機(jī)器代碼。運(yùn)行時(shí),Java的運(yùn)行系統(tǒng)和鏈接需要執(zhí)行的類(lèi),并作必要的優(yōu)化后,解釋執(zhí)行字節(jié)碼程序。

3.自動(dòng)無(wú)用內(nèi)存回收功能

Java語(yǔ)言具有自動(dòng)無(wú)用內(nèi)存回收功能,程序可以按需使用內(nèi)存,但不需要對(duì)無(wú)用內(nèi)存顯式地撤銷(xiāo)分配。系統(tǒng)有一個(gè)垃圾收集器(garbage collector),自動(dòng)收集程序不再使用的內(nèi)存。這樣,能避免顯式的撤銷(xiāo)分配所引起的安全問(wèn)題。Java語(yǔ)言不再含有任何不安全的語(yǔ)言成分。例如,沒(méi)有指針,數(shù)組元素都要檢查下標(biāo)是否越界。

4.面向?qū)ο?/strong>

面向?qū)ο笫浅绦騿T編寫(xiě)大型程序、有效控制程序復(fù)雜性的重要手段。Java語(yǔ)言在面向?qū)ο蠓矫?,比C++更“純”,它的所有數(shù)據(jù)類(lèi)型,包括布爾類(lèi)型、整形、字符型等,都有相應(yīng)的類(lèi),程序可完全基于對(duì)象編寫(xiě)。

面向?qū)ο笳Z(yǔ)言主要有封裝性、繼承性和多態(tài)性三個(gè)特點(diǎn)。封裝就是將實(shí)現(xiàn)細(xì)節(jié)隱藏起來(lái),只給出如何使用的信息。數(shù)據(jù)及數(shù)據(jù)上的操作用類(lèi)封裝,對(duì)象是類(lèi)的實(shí)例,外界使用對(duì)象中的數(shù)據(jù)及可用的操作受到一定的限制。繼承體現(xiàn)眾多的一種層次對(duì)象的特性,下一層的類(lèi)可從上一層的類(lèi)繼承定義,從上一層類(lèi)派生的類(lèi)的對(duì)象能繼承上一層對(duì)象的特性,同時(shí)可以改變和擴(kuò)充一些特性,以適應(yīng)其自身的特點(diǎn)。多態(tài)性的意義主要體現(xiàn)在邏輯上相同的不同層次上的操作,使用相同的操作名,根據(jù)具體對(duì)象,能自動(dòng)選擇對(duì)應(yīng)的操作。Java語(yǔ)言很實(shí)用地實(shí)現(xiàn)了這三種特性。

5.與平臺(tái)無(wú)關(guān)

與平臺(tái)無(wú)關(guān)是對(duì)程序可移植性較直接較有效的支持。Java語(yǔ)言的設(shè)計(jì)者在設(shè)計(jì)時(shí)重點(diǎn)考慮了Java程序的可移植性,采用多種機(jī)制來(lái)增加可移植性,其中較主要的是定義了一種虛擬機(jī)(virtual machine),以及虛擬機(jī)使用的java字節(jié)碼。在任何平臺(tái)上,Java源程序被Java編譯器編譯成虛擬機(jī)能夠識(shí)別的字節(jié)碼。這樣,只要有Java虛擬機(jī)的平臺(tái),就能解釋執(zhí)行java字節(jié)碼程序,從而實(shí)現(xiàn)Java與平臺(tái)無(wú)關(guān)。另外,Java語(yǔ)言還采用基于國(guó)際標(biāo)準(zhǔn)的數(shù)據(jù)類(lèi)

在任何平臺(tái)上,同上種數(shù)據(jù)類(lèi)型是一致的。例如,用int標(biāo)識(shí)32位二進(jìn)制位(bit)整型數(shù)據(jù),那么無(wú)論在哪一臺(tái)計(jì)算機(jī)上,Java的int數(shù)據(jù)都是32位整數(shù)。相反,C語(yǔ)言會(huì)隨著硬軟件平臺(tái)的改變,用int標(biāo)識(shí)的整數(shù)位數(shù)也可能不全相同。

Java語(yǔ)言提高可移植性的代價(jià)是降低程序的執(zhí)行效率。出于java語(yǔ)言也是一種解釋執(zhí)行的語(yǔ)言,Java程序的執(zhí)行速度與C程序的執(zhí)行速度有較大的差別。不過(guò),為了盡量彌補(bǔ)執(zhí)行效率低的缺陷,java的字節(jié)碼在設(shè)計(jì)上非常接近現(xiàn)代計(jì)算機(jī)的機(jī)器碼,這有助于提高解釋執(zhí)行的速度。

6.安全性

Java是在網(wǎng)絡(luò)環(huán)境中使用的編程語(yǔ)言,必須考慮安全性問(wèn)題,主要有以下兩個(gè)方面:設(shè)計(jì)的安全防范:Java語(yǔ)言沒(méi)有指針,避免程序因?yàn)橹羔樖褂貌划?dāng),訪(fǎng)問(wèn)不應(yīng)該訪(fǎng)問(wèn)的內(nèi)存空間;提供數(shù)組元素上標(biāo)檢測(cè)機(jī)制,禁止程序越界訪(fǎng)問(wèn)內(nèi)存;提供內(nèi)存自動(dòng)回收機(jī)制,避免程序遺漏或重復(fù)釋放內(nèi)存。

運(yùn)行安全檢查:為了防止字節(jié)碼程序可能被非法改動(dòng),解釋執(zhí)行前,先對(duì)字節(jié)碼程序作檢查,防止網(wǎng)絡(luò)“黑客”對(duì)字節(jié)碼程序已作了惡意改動(dòng),達(dá)到破壞系統(tǒng)的目的。較后,瀏覽器限制下載的小應(yīng)用程序不允許訪(fǎng)問(wèn)本地文件,避免小應(yīng)用程序破壞本地文件。

7.分布式計(jì)算

Java語(yǔ)言支持客戶(hù)機(jī)/服務(wù)器計(jì)算模式。Java程序能利用URL對(duì)象,能訪(fǎng)問(wèn)網(wǎng)絡(luò)上的對(duì)象,如同訪(fǎng)問(wèn)本地的文件一樣,實(shí)現(xiàn)數(shù)據(jù)分布。另外,Java的客戶(hù)機(jī)/服務(wù)器模式也可以把計(jì)算從服務(wù)器分散到客戶(hù)機(jī)端,實(shí)現(xiàn)操作分布。

8.多線(xiàn)程

線(xiàn)程是比進(jìn)程更小的一種可并發(fā)執(zhí)行的單位,每個(gè)進(jìn)程都有自己獨(dú)立的內(nèi)存空間和其他資源,當(dāng)進(jìn)程切換時(shí)需要進(jìn)行數(shù)據(jù)和資源的保護(hù)與恢復(fù)。若干協(xié)同工作的線(xiàn)程可以共享內(nèi)存空間和資源,線(xiàn)程切換不需要數(shù)據(jù)的保護(hù)與恢復(fù)。

Java的運(yùn)行環(huán)境采用多線(xiàn)程實(shí)現(xiàn),可以利用系統(tǒng)的空閑時(shí)間執(zhí)行諸如內(nèi)存回收等操作;Java語(yǔ)言提供語(yǔ)言級(jí)多線(xiàn)程支持,用Java語(yǔ)言能直接編寫(xiě)多線(xiàn)程程序。

相關(guān)內(nèi)容: Java開(kāi)發(fā) Java開(kāi)發(fā)語(yǔ)言 Java開(kāi)發(fā)語(yǔ)言特點(diǎn)

相關(guān)文章
最新文章