Java是最近開發(fā)的、并發(fā)的、基于類的、面向?qū)ο蟮木幊毯瓦\(yùn)行時(shí)環(huán)境,包括:
- 一種編程語(yǔ)言
- API規(guī)范
- 虛擬機(jī)規(guī)范
Java具有以下特點(diǎn):
- 面向?qū)ο?Java提供了C++的基本對(duì)象技術(shù),但有一些增強(qiáng)和一些刪除。
- 架構(gòu)中立——Java源代碼被編譯成與架構(gòu)無(wú)關(guān)的目標(biāo)代碼。目標(biāo)代碼由目標(biāo)體系結(jié)構(gòu)上的Java虛擬機(jī)(JVM)解釋。
- 可移植性——Java實(shí)現(xiàn)了額外的可移植性標(biāo)準(zhǔn)。例如,ints始終是32位、2的補(bǔ)碼整數(shù)。用戶界面是通過(guò)在Solaris和其他操作環(huán)境中很容易實(shí)現(xiàn)的抽象窗口系統(tǒng)構(gòu)建的。
- 分布式-Java包含廣泛的TCP/IP網(wǎng)絡(luò)設(shè)施。庫(kù)例程支持超文本傳輸??協(xié)議(HTTP)和文件傳輸協(xié)議(FTP)等協(xié)議。
- 健壯-Java編譯器和Java解釋器都提供廣泛的錯(cuò)誤檢查。Java管理所有動(dòng)態(tài)內(nèi)存、檢查數(shù)組邊界和其他異常。
- 安全-經(jīng)常導(dǎo)致非法內(nèi)存訪問(wèn)的C和C++特性在Java語(yǔ)言中不存在。解釋器還對(duì)編譯后的代碼應(yīng)用幾個(gè)測(cè)試來(lái)檢查非法代碼。在這些測(cè)試之后,編譯后的代碼不會(huì)導(dǎo)致操作數(shù)堆棧上溢或下溢,不會(huì)執(zhí)行非法數(shù)據(jù)轉(zhuǎn)換,僅執(zhí)行合法的對(duì)象字段訪問(wèn),并且所有操作碼參數(shù)類型都被驗(yàn)證為合法。
- 高性能-將程序編譯為與體系結(jié)構(gòu)無(wú)關(guān)的類機(jī)器語(yǔ)言,從而生成一個(gè)小型高效的Java程序解釋器。Java環(huán)境還在運(yùn)行時(shí)將Java字節(jié)碼編譯為本機(jī)機(jī)器碼。
- 多線程——Java語(yǔ)言中內(nèi)置了多線程。它可以通過(guò)允許在繼續(xù)處理用戶操作的同時(shí)執(zhí)行操作(例如加載圖像)來(lái)提高交互性能。
- 動(dòng)態(tài)-Java直到運(yùn)行時(shí)才鏈接調(diào)用的模塊。
- 簡(jiǎn)單-Java類似于C++,但刪除了C和C++的大部分更復(fù)雜的功能。
Java不提供:
- 程序員控制的動(dòng)態(tài)內(nèi)存
- 指針?biāo)惴?/li>
- struct
- typedefs
- #define
- JRE組件
JRE是為典型的JVM實(shí)現(xiàn)編譯的程序可以運(yùn)行的軟件環(huán)境。運(yùn)行時(shí)系統(tǒng)包括:
運(yùn)行Java程序、動(dòng)態(tài)鏈接本地方法、管理內(nèi)存和處理異常所需的代碼
JVM的實(shí)現(xiàn)
下圖顯示了JRE及其組件,包括典型的JVM實(shí)現(xiàn)的各種模塊及其相對(duì)于JRE和類庫(kù)的功能位置。
圖1-1典型JVM的實(shí)現(xiàn):與JRE和類庫(kù)的功能關(guān)系
虛擬機(jī)
JVM是一種抽象計(jì)算機(jī),具有使用內(nèi)存的指令集。虛擬機(jī)通常用于實(shí)現(xiàn)編程語(yǔ)言。JVM是Java編程語(yǔ)言的基石。它負(fù)責(zé)Java的跨平臺(tái)可移植性和其編譯代碼的小尺寸。
Solaris JVM用于執(zhí)行Java應(yīng)用程序。Java編譯器javac輸出字節(jié)碼并將它們放入.class文件中。然后JVM解釋這些字節(jié)碼,然后可以由任何JVM實(shí)現(xiàn)執(zhí)行,從而提供Java的跨平臺(tái)可移植性。接下來(lái)的兩個(gè)圖說(shuō)明了傳統(tǒng)的編譯時(shí)環(huán)境和新的可移植Java編譯時(shí)環(huán)境。
圖1-2傳統(tǒng)編譯時(shí)環(huán)境
圖1-3新的可移植Java編譯時(shí)環(huán)境
多線程JVM
Java編程語(yǔ)言要求支持多線程(MT)程序。所有Java解釋器都提供MT編程環(huán)境。然而,這些解釋器中的許多只支持單處理器多線程,因此Java程序線程一次執(zhí)行一個(gè)。
Solaris JVM解釋器通過(guò)使用固有的Solaris多線程工具來(lái)充分利用多處理器系統(tǒng)。這些允許將單個(gè)進(jìn)程的多個(gè)線程同時(shí)調(diào)度到多個(gè)CPU上。在Solaris JVM下運(yùn)行的MT Java程序?qū)⒈仍谄渌脚_(tái)上運(yùn)行的相同程序的并發(fā)性有顯著提高。
Sun即時(shí)(JIT)編譯器
Sun Java JIT編譯器是Solaris JVM的一個(gè)組成部分,可以將執(zhí)行性能提高很多倍于以前的水平。長(zhǎng)時(shí)間運(yùn)行的計(jì)算密集型程序顯示出最佳的性能改進(jìn)。
以上就是長(zhǎng)沙牛耳教育小編介紹的"初中生編程入門先學(xué)什么,編程環(huán)境介紹",希望對(duì)大家有幫助,如有疑問(wèn),請(qǐng)?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。