本篇內(nèi)容主要講解“Java的關(guān)鍵特性有哪些”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學(xué)習(xí)“Java的關(guān)鍵特性有哪些”吧!
為莊浪等地區(qū)用戶提供了全套網(wǎng)頁設(shè)計制作服務(wù),及莊浪網(wǎng)站建設(shè)行業(yè)解決方案。主營業(yè)務(wù)為網(wǎng)站制作、成都網(wǎng)站設(shè)計、莊浪網(wǎng)站設(shè)計,以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠的服務(wù)。我們深信只要達到每一位用戶的要求,就會得到認可,從而選擇與我們長期合作。這樣,我們也可以走得更遠!Document the Java: Sun Microsystems 公司的白皮書-- 1995.10 James Gosling 和 Henry
McGilton 的草案-- 說明了Java的以下主要特性:
*Simple and Familiar (簡單熟悉)
*Object-oriented (面向?qū)ο?
*Architecture-neutral (結(jié)構(gòu)中立)
*Portable (可移動)
*Somewhat Interpreted (部分解釋)
*Distributed (分布式的)
*Robust (魯棒性)
*Secure (安全)
*High performance (高性能)
*Multi Threaded (多線索)
*Dynamic (動態(tài))
Java 特性 -- 簡單熟悉
Java 省略了C++ 中一些很少用到的,
不易理解的和易于混淆的特性, 包括操作符重載, 多重繼承, 指針和自動類型強制.
它增加了自動垃圾清理, 使得用Java進行動態(tài)編程比用 C 或 C++
容易.
不再有mallocs!
它還加了′接口′ 構(gòu)造, 類似于 Objective C 的概念,
經(jīng)常用于通過允許method調(diào)用語法是"繼承的"來彌補多重繼承的缺少帶來的不便.
結(jié)果因為它類似于C++, 用戶會比較熟悉, 便于編程.
這樣做的另一個結(jié)果是使得內(nèi)核變得很小, 適用于消費者電子設(shè)備. 基本解釋器(alpha) 為~40Kb, 庫和線索另外需要 175Kb.
Java 特性 -- 面向?qū)ο?br/>Java 模型可以看成是 C++ 的一個子集, 帶有一些從Objective_C
中繼承下來的動態(tài)元素(方法重載, 垃圾收集).
結(jié)構(gòu), 聯(lián)合和函數(shù)被抽象成為Java類的數(shù)據(jù)和方法(methods) -- Java 比較簡單!
Java模型的長處不僅在于簡單還在于和系統(tǒng)相關(guān)的類庫的擴充 (大約 250 個公共庫在alpha 和 beta 版中發(fā)布).
Java
類也在Web 嵌入模型中起到通訊單元的作用. Applet 類通過HTML的applet標(biāo)記中的名字標(biāo)識自己. Applet
下載出現(xiàn)在applet源程序中的其它類. 因此, Java 類名字起到分布式Java代碼數(shù)據(jù)庫的地址模式的作用.
Java 特性 --結(jié)構(gòu)中立
C/C++ 在異構(gòu)網(wǎng)絡(luò)環(huán)境下編程需要使用和兼容多個平臺和相應(yīng)的編譯器. 這個問題在
Java中通過稱為bytecode(或opcode)的獨立于平臺的二進制描述解釋的設(shè)計而解決了.
Java 編譯器(用 Java 寫成的, 平臺獨立)
讀取 Java 源程序生成Java bytecode. 這些 bytecodes 根據(jù)瀏覽器的要求被送到客戶端的機器上.
每個客戶機器必須運行 Java
解釋器, 它完成 Java bytecode的解釋執(zhí)行. Java 解釋器是用POSIX的ANSI C編寫的, 需要送到每個單獨的平臺下面進行一次常規(guī)的編譯.
一旦解釋器就緒, 應(yīng)用程序開發(fā)者不必關(guān)心任何平臺說明和區(qū)別不同的本地編譯器.
Java 特性 -- 可移動
Java
語言提供了一個統(tǒng)一的抽象 (虛擬) 機器模型, 對所有的平臺是一致的.
SUN 擁有 Java 虛擬機 -- 它是通用的, 而任何用戶可以增加它的類
不同于在 C/C++ 中需要手工為不同的整數(shù)匹配到物理機器的結(jié)構(gòu)上, Java byte, char short, int 和 long
的大小始終是一樣的, 分別等于 8, 16, 16(unicode), 32 和 64 位.
沒有頭文件, 預(yù)處理程序,#define 等.
浮點數(shù)總是IEEE 754
特定窗口環(huán)境的區(qū)別的說明 (X Windows, MS Windows, Macintosh) 根據(jù)抽象窗口工具
Abstract Windowing Toolkit (AWT) 消除掉了.
AWT 是由 ~60 Java 類(alpha)寫成的,
它提供了一個通用的 GUI 編程模型, 可以在 UNIX, PC 和 Mac 上移動, 由Java解釋器自動翻譯成本地平臺的窗口系統(tǒng).
Java
特性 -- 部分解釋
Java 代表了完全編譯 (如 C/C++) 和完全解釋 (如 Smalltalk 或者 Perl) 之間的一種折衷方案.
Java "編譯器" 生成一種二進制 bytecode 輸出, 它是可移動的, 比特定機器實際所需的二進制代碼要小得多 .
Java "解釋器"
執(zhí)行這個 bytecode , 因此動態(tài)性比象Perl這樣的解釋器小 (后者內(nèi)部實現(xiàn)一個等價的 bytecode 構(gòu)造, 當(dāng)閱讀程序源碼時
on-the-fly).
通常地, 編輯過程是: a) 時間消費和 b) 平臺說明. 因此, 解釋器用于促進 a) 快速原型化和/或 b) 可移動性.
Java 模型主要考慮平臺獨立性但是效率也是適當(dāng)?shù)囊驗镴ava 編譯器比較快, 生成簡潔的 bytecode 輸出.
Java 特性 -- 分布式
流行的 TCP/IP 為基礎(chǔ)的協(xié)議如 FTP 或 HTTP 是根據(jù)網(wǎng)絡(luò)協(xié)議類來支持的. 這方便了各種形式的分布式處理. 新的協(xié)議 (如 PVM )
可以增加和動態(tài)安裝.
Java 的分布式計算模型主要是客戶-服務(wù)器, Java 編譯器在服務(wù)器一方準(zhǔn)備 opcodes, Java
解釋器在客戶一方執(zhí)行它.
用戶可以期待用服務(wù)器和客戶的Java線索互相通訊實現(xiàn)更多的動態(tài)使用.
Java 特性 -- 魯棒性
Java 增強了編譯時的類型檢查, 消除了 C/C++ 在這方面的一些錯誤.
指針?biāo)惴ū煌耆艞?
這樣是為了運行時檢查數(shù)組下標(biāo)和增強了Java模型的安全性.
始終要求顯式說明, 即 C 類型的隱式說明被放棄. 這樣使得Java
編譯器可以完成早期的錯誤檢查.
Java中快速原型化(prototyping )不如 JavaScript,Lisp, Tcl, Smalltalk 或
Perl, 但是Java的軟件質(zhì)量保證比這些更加動態(tài)和 ′寬大的′ 語言要好.
Java 特性 -- (希望的) 安全性
Java
二進制代碼在網(wǎng)絡(luò)中傳送, 在客戶機器上執(zhí)行. 因此安全性是一個至關(guān)重要的問題, 在Java中得到著力加強.
Java 有它自己的已安全方式設(shè)計的網(wǎng)絡(luò)類
C++ 模型的修改如去掉指針?biāo)惴ê蛷娭祁愋娃D(zhuǎn)換主要是基于安全要求的考慮.
多數(shù)病毒是基于對私用的/保護的計算機存儲器的訪問實現(xiàn)的,
這在Java中是不可能的.
Java opcode 是由Java解釋器在客戶一端獨占的虛擬存儲器中執(zhí)行的. 因此除非Java解釋器自己存在安全漏洞,
否則模塊是安全的, 用戶無法通過不正確地或者惡意地編寫applet產(chǎn)生安全漏洞.
穿過網(wǎng)絡(luò)發(fā)送的 bytecode在客戶端被檢驗,
阻止惡意/錯誤的類引發(fā)問題
Java 特性 -- 高性能
Java 解釋器完成Java bytecode的on-the-fly
runtime 執(zhí)行, 獲得了滿意的性能.
NOT true in initial software which is often 100 times
slower than C but this is expected to improve as true compilers are produced and
general software improves!
支持生成從bytecode中生成與本地機器相關(guān)的代碼, 作為中級編譯器形式來看,
這一點滿足了對性能要求較高的應(yīng)用程序.
從Jave bytecode中生成的機器代碼的性能與同樣平臺下的典型的 C/C++ 編譯器提供的性能相當(dāng).
這里的一些概念實際上和 OSF/ANDF 相似. 使用 ANDF 術(shù)語的話, 我們可以稱 Java 編譯器為 ′生產(chǎn)者producer′,
這里討論的機器代碼生成器是一個 ′安裝者installer′. 缺省情況下 Java 的工作模式不使用 installer 而是直接解釋中級代碼形式
(這種方式在 ANDF 中是用 GAI -- Generalized ANDF Interpreter支持的).
ANDF
模型在原理上可以應(yīng)用到所有的語言上. Java/HotJava 系統(tǒng)為Java語言實現(xiàn)了 ANDF 概念.
Java 特性 -- 多線索
Java 模型提供優(yōu)先權(quán)多線索, 在Thread類上面執(zhí)行. 線索方法基于C.A.R. Hoare的監(jiān)視者和條件變量變化表提供一套時間同步原語.
Java 線索從Xerox Park的先驅(qū)性的Cedar/Mesa系統(tǒng)(它創(chuàng)造了Macintosh和面向?qū)ο蟪绦蛟O(shè)計)中繼承了一些特性.
Java
多線索在applet 編程中的一個典型應(yīng)用是有幾個獨立但又相互關(guān)聯(lián)的情況的模擬 (例如各種排序算法的), 它們同時在一個applet窗口中運行.
多線索還內(nèi)部用于 HotJava 瀏覽器, 處理多個動態(tài)文檔.
另一個有趣的應(yīng)用領(lǐng)域是多-HotJava 環(huán)境的情況, 例如合作實驗室或游戲
Java 線索內(nèi)置的點對點通訊原語. 各種線索的通訊環(huán)境可以通過線索和網(wǎng)絡(luò)協(xié)議對象的聯(lián)合來提供.
Java 特性 -- It 動態(tài)性
Java 模型比C++的動態(tài)性要好, 接近于Smalltalk 或 Perl.
在父類實現(xiàn)被更新后, 子類不需要重新編譯.
類有runtime 陳述(按照Class類實現(xiàn)), 它允許用戶在運行時察看一個給定對象實例的類型 (在 C 中如果指針是指向整數(shù)或瀏覽器則無法知道)
C++ 有 "脆弱父類" 問題, 如果改變了父類或引用的類中的任意內(nèi)容(方法/實例變量), 必須重新編譯子類. Java 在運行時解決類的引用,
解決了這個問題.
到此,相信大家對“Java的關(guān)鍵特性有哪些”有了更深的了解,不妨來實際操作一番吧!這里是創(chuàng)新互聯(lián)網(wǎng)站,更多相關(guān)內(nèi)容可以進入相關(guān)頻道進行查詢,關(guān)注我們,繼續(xù)學(xué)習(xí)!
分享標(biāo)題:Java的關(guān)鍵特性有哪些-創(chuàng)新互聯(lián)
當(dāng)前地址:http://jinyejixie.com/article26/pijcg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、自適應(yīng)網(wǎng)站、定制開發(fā)、網(wǎng)站建設(shè)、外貿(mào)建站、網(wǎng)站改版
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容