本文地址:http://m.survivalescaperooms.com/archimedes/p/java-study-note1.html,轉載請注明源地址。
1.Java程序設計語言Java程序設計語言是一種高級語言,它用我們熟悉的字詞、句等表述需要計算機為我們做的事情。大多數(shù)程序設計語言,都要經(jīng)過編譯或解釋以便能在計算機上運行。
在Java程序設計語言中,所有源代碼寫在一個擴展名是.java的純文本文件里。這些源文件通過Java編譯器(javac.exe)編譯成.class文件。.class文件不包含本地處理器的代碼,而包含Java虛擬機機器語言代碼,它是一種在Java平臺上被解釋器解釋的平臺無關代碼,稱之為“字節(jié)碼”。
Java執(zhí)行工具(java)用來運行.class文件,它是一個解釋程序,又稱“Java虛擬機”,它負責解釋分解并執(zhí)行每個Java字節(jié)碼指令。下圖反映這個過程:

Java虛擬計算機,可以認為Java字節(jié)碼像機器指令碼一樣。任何Java解釋器,不論是開發(fā)工具的,還是運行applet的web瀏覽器,都可認為是運行的Java虛擬計算機。Java虛擬機在許多不同的操作系統(tǒng)都是有效的,所以同樣的.class文件有能力運行在Windows、Solaris、 linux、MacOS等多種操作系統(tǒng)下,如圖:

平臺是程序運行的硬件和軟件環(huán)境。我們已經(jīng)了解的一些流行平臺像Windows、Linux、Solaris和MacOS等。多數(shù)平臺被描述成操作系統(tǒng)與硬件的復合體。Java平臺不同于其它平臺,它是一個純軟件平臺,在其它硬件基礎平臺上運行,如下圖:

Java平臺有兩個部分:
Java虛擬機(Java VM)
Java應用程序接口(Java API)
Java虛擬機是Java平臺的基礎,是在各種不同的硬件基礎平臺上的接入口。Java字節(jié)碼程序就是由它解釋并執(zhí)行,同時提供程序的運行環(huán)境。
Java API是一個巨大的,提供許多有用功能的,軟件組成的集合體。Java API被組合在庫中,由相關的類和接口構成,這些庫稱做“包”。下圖表示運行在Java平臺上的程序。圖中顯示,Java API和虛擬機把程序與硬件隔離開,Java程序通過API在VM上運行。


JVM - java虛擬機
JVM將 java 字節(jié)碼程序翻譯成機器語言。然后由計算機執(zhí)行。
JRE - java 運行環(huán)境
JRE 是由JVM 和 java platform 核心類以及相關支撐文件組成。
API - application PRogramming interface.
API 是rules(syntax) :在java技術中如何編程。
API包括數(shù)百個類——公司預先編好的代碼,你可以在編程中充分利用它們的功能。
JDK — java developer’s kit (java開發(fā)工具包) JDK 包含JVM和其他工具,以及所有的API和相關的文件。 JDK 是java 技術的舊名(1999年11月以前采用), JDK1.1 是最后版本。Java 2 — Java 2 Platform,J2 SDK –java技術的新名稱?! DK — Software Development Kit4.Java虛擬機JVM提供以下定義:
指令集(Bytecodes 是JVM的機器指令)。
寄存器組
類文件格式
棧
垃圾回收“堆”(實現(xiàn)內(nèi)存的動態(tài)分配和自動回收)
內(nèi)存區(qū)域
Java程序執(zhí)行時,首先虛擬機對要執(zhí)行的class文件裝載,然后對字節(jié)碼進行驗證,最后用解釋器對字節(jié)碼解釋執(zhí)行,下圖是jvm的邏輯構造:

加載代碼 — 類裝配器
加載程序運行所需要的所有的類。類裝配器將本地文件系統(tǒng)的類的名字空間與從網(wǎng)絡資源來的類的名字空間分開。這樣就限制了特洛伊木馬程序,因為本地類總是首先加載。
一旦所有的類被加載,可執(zhí)行程序的內(nèi)存布局就被確定了。內(nèi)存地址被分配給符號引用表,查找表被建立。由于內(nèi)存的布局出現(xiàn)在運行時刻,防止了對于代碼域的未授權的訪問。
驗證代碼 — 字節(jié)碼驗證器
java代碼在你的機器上執(zhí)行前要經(jīng)過幾個測試。字節(jié)碼驗證器測試代碼段的格式,檢查代碼段是否有非法代碼(偽造指針,對象上的非法存取,試圖改變對象類型等)。
所有網(wǎng)絡來的類文件都要經(jīng)過字節(jié)碼驗證。
執(zhí)行代碼 — 解釋器
5.建立Java平臺和開發(fā)環(huán)境1.建立Java平臺Java平臺的建立只需安裝JDK或JRE就可以完成。JRE是Java運行環(huán)境(Java Runtime Environment)縮寫,如果僅僅用來運行Java程序,僅安裝JRE就可以了。如果需要開發(fā)和運行Java程序,就必須安裝JDK。
第一步:下載JDK。
第二步:運行JDK安裝程序。
以上兩步比較簡單,不贅述
第三步:設置JDK環(huán)境變量。
通常JDK安裝完成后需要設置Java環(huán)境變量PATH和CLASSPATH。

(1).PATH變量
是操作系統(tǒng)用于查找可執(zhí)行文件的目錄集,格式如下:
PATH=<PATH原有的內(nèi)容>;<JDK安裝目錄>/bin
JDK安裝完成以后需要將開發(fā)工具的存放目錄加入到PATH變量中,使得在編譯或執(zhí)行Java程序時操作系統(tǒng)能夠找到編譯程序javac或解釋程序java。
(2).CLASSPATH變量
是Java編譯器編譯用于查找相關類或接口的目錄集,也是Java解釋器用于查找相關類或接口的目錄集,格式如下:
CLASSPATH=<class文件目錄>或<jar文件路徑名>[;...]
這里< jar文件路徑名>由每個jar文件及存放它的目錄名組成,例如
D:/Program Files (x86)/Java/jdk1.7.0_07/lib/dt.jar
多個路徑名之間用“;”分隔。
在Windows系統(tǒng)下設置環(huán)境變量可以從控制面板的系統(tǒng)設置添加,或者“計算機”->“屬性”->"高級系統(tǒng)設置"->"環(huán)境變量"
這里以JDK1.7為例介紹環(huán)境變量的設置過程,假設JDK安裝的安裝路徑是
D:/Program Files (x86)/Java/jdk1.7.0_07




在命令行中輸入下面命令:
java -version
顯示下面的版本信息,說明配置成功!

Java平臺建立(即安裝JDK)完成后就可以運行或開發(fā)Java程序了。JDK提供了基本的Java開發(fā)工具,這些工具放在JDK安裝目錄下的bin目錄。但是,對于復雜大型的Java程序是不能滿足要求,需要專門的集成開發(fā)工具。下面分別介紹JDK提供主要工具軟件,并對常用的集成開發(fā)工具做簡單介紹。
(1)JDK開發(fā)工具
JDK開發(fā)工具包括工具和實用程序,可幫助開發(fā)、執(zhí)行、調(diào)試和保存以 Java 編程語言編寫的程序。在這些程序中主要工具程序有:編譯工具Javac,解釋工具Java,文檔生成工具,Java平臺調(diào)試工具等。
JavacJava編譯器,將Java源程序編譯成字節(jié)碼,生成class文件。在bin目錄下,文件名稱是javac.exe。命令格式:
javac [選項] 源文件 [類] [ @argfiles ]
其中,
選 項 –- 編譯參數(shù)。
源文件 -– 一個或多個需要編譯的java源程序文件。
類 –- 一個或多類。
@argfiles -– 參數(shù)文件。
使用示例:編譯Java源程序helloworld.java。

Java解釋器,直接從類文件執(zhí)行Java應用程序,即application。命令格式:
java [選項] 類 [參數(shù)... ]
java [選項] -jar jar文件 [參數(shù)... ]
javaw [選項] 類 [參數(shù)... ]
javaw [選項] -jar jar文件 [參數(shù)... ]
其中:
選項 -– 運行參數(shù)。
類 -– 被調(diào)用的類的名稱。
-jar jar文件 -– 被調(diào)用的jar文件名稱。
參數(shù) -– 傳送給main方法的參數(shù)串。
使用示例:執(zhí)行Java類hello.class

(2)Java集成開發(fā)工具
集成開發(fā)環(huán)境(簡稱IDE及Integrated Development Environment的縮寫)是用于提供程序開發(fā)環(huán)境的應用程序,一般包括代碼編輯器、編譯器、調(diào)試器和圖形用戶界面工具。就是集成了代碼編寫功能、分析功能、編譯功能、調(diào)試功能等一體化的開發(fā)軟件服務套。所有具備這一特性的軟件或者軟件套(組)都可以叫做集成開發(fā)環(huán)境,可以獨立運行,也可以和其它程序并用。JAVA的集成開發(fā)環(huán)境很多,比如 JCreator,NeBeans,Java Studio,JBuilder,Java Workshop,JDeveloper,Visual Age for java,Eclipse等等,這里簡單介紹netbeans和eclipse。
NetBeans IDE
NetBeans是一個全功能的開放源碼Java IDE,可以幫助開發(fā)人員編寫、編譯、調(diào)試和部署Java應用,并將版本控制和xml編輯融入其眾多功能之中。NetBeans 可支持Java 2平臺標準版(J2SE)應用的創(chuàng)建、采用jsp和Servlet的2層Web應用的創(chuàng)建,以及用于2層Web應用的API及軟件的核心組的創(chuàng)建。此外,NetBeans 最新牒還預裝了兩個Web服務器,即Tomcat和GlassFish,從而免除了繁瑣的配置和安裝過程。所有這些都為Java開發(fā)人員創(chuàng)造了一個可擴展的開放源多平臺的Java IDE,以支持他們在各自所選擇的環(huán)境中從事開發(fā)工作,如Solaris、Linux、Windows或Macintosh。
EclipseEclipse是著名的跨平臺的自由集成開發(fā)環(huán)境(IDE)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為C++、Python、php等其他語言的開發(fā)工具。Eclipse的本身只是一個框架平臺,眾多插件的支持使得Eclipse擁有其他功能相對固定的IDE軟件很難具有的靈活性。許多軟件開發(fā)商以Eclipse為框架開發(fā)自己的IDE。
Eclipse的運行需要有Java的虛擬機存在,在編譯java的時候不需要額外的編譯器。自身就能對java源代碼進行編譯。由于Eclipse是使用java編寫的,所以在跨平臺上做的很好,常用的平臺Eclipse都能運行。
Eclipse最大的特點使用插件滿足使用者根據(jù)自己的需要對其進行擴展,且Eclipse源代碼進行開放,使插件的數(shù)量不斷增長,其中不乏一些非常優(yōu)秀的插件。也使得Eclipse的功能大大增強,使用Eclipse作為基礎來開發(fā)的軟件也很多。

新聞熱點
疑難解答