




免費預覽已結(jié)束,剩余1頁可下載查看
下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1.swfJDK:即Java Develop Kit,Java開發(fā)工具包。Java2:1998年12月,SUN公司發(fā)布了JDK1.2,開始使用“Java2”這一名稱,目前我們已經(jīng)很少使用JDK1.1版本,所以我們所說的Java都是指Java2.。J2SDK當然就是Java 2 Software Develop Kit。JRE (Java Runtime Environment),即Java運行環(huán)境,通常已包含在J2SDK中了。 如果我們僅是為了運行Java程序,而不是從事Java開發(fā),我們可以直接下載JRE,在我們的系統(tǒng)上安裝。Java的開發(fā)工具包(JDK):按其應(yīng)用環(huán)境的不同分三種不同的版本。l J2SE (Java 2 Platform, Standard Edition) :Java 2 平臺標準版,主要用于桌面程序和Java小程序的開發(fā),我們通常所說的JDK就是指J2SE。l J2EE (Java 2 Platform, Enterprise Edition) :Java 2 平臺企業(yè)版,主要用于企業(yè)級的開發(fā),目前我們有很多的大型應(yīng)用就是基于J2EE的,如有一些電子商務(wù)網(wǎng)站和稅務(wù)局的網(wǎng)上報稅系統(tǒng)就是基于J2EE的。l J2ME (Java 2 Platform, Micro Edition) :主要用于手持設(shè)備的開發(fā),例如手機、PDA等,我們手持設(shè)備的一些小游戲和名片管理程序就是通過J2ME來開發(fā)的。相關(guān)資源的官方下載網(wǎng)址:Java 2 Platform, Standard Edition,v1.5.0/j2se/1.5.0/download.htmlJ2SE v 1.5.0Documentation/j2se/1.5.0/download.htmlJava Tutorial/docs/books/tutorial/information/download.htmlJava的特征:簡單的、面向?qū)ο蟮摹⒔训?、安全的、解釋的、與平臺無關(guān)的、多線程的、動態(tài)的語言。2.swf我們?yōu)槭裁匆肑ava簡單的 Java最初是為家用電器進行集成控制而設(shè)計的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現(xiàn)在三個方面:1、 Java的風格類似于C+,因而C+程序員初次接觸Java語言,就會感到很熟悉。從某種意義上講,Java語言是C和C+語言的一個變種,因此,C+程序員可以很快地掌握Java編程技術(shù)。2、 Java摒棄了C+中容易引發(fā)程序錯誤的一些特性,如指針、結(jié)構(gòu)、枚舉以及內(nèi)存管理等。3、 Java提供了豐富的類庫,可以幫助我們很方便的開發(fā)Java程序。面向?qū)ο蟮?面向?qū)ο罂梢哉f是Java最重要的特性,所以它支持繼承、重載、多態(tài)等面向?qū)ο蟮奶匦?。Java語言的設(shè)計是完全面向?qū)ο蟮?,它不支持類似C語言那樣的面向過程的程序設(shè)計技術(shù)。健壯的Java致力于檢查程序在編譯和運行時的錯誤。Java也是一種強類型的語言,其類型檢查比C+還要嚴格。類型檢查幫助我們檢查出許多開發(fā)早期出現(xiàn)的錯誤。Java自己負責內(nèi)存管理,提供了垃圾回收機制,有效的避免了C+中最頭疼的內(nèi)存泄漏問題。安全的 Java 的安全性可從兩個方面得到保證。一方面,在Java語言里,刪除了指針和釋放內(nèi)存等C+功能,避免了非法內(nèi)存操作。另一方面,通過Java的安全體系架構(gòu)來確保Java代碼的安全性。當我們從網(wǎng)上下載Java代碼 在本地執(zhí)行時,Java的安全架構(gòu)能確保惡意的代碼不能隨意訪問我們本地計算機的資源,例如:刪除文件,訪問本地網(wǎng)絡(luò)資源等操作都是被禁的。解釋的Java代碼是解釋執(zhí)行的,我們使用Java編譯器將Java代碼編譯成字節(jié)碼,這是一種中間代碼,然后由Java解釋器解釋執(zhí)行。而C+程序是編譯執(zhí)行的,C+程序代碼被編譯為本地機器指令,然后執(zhí)行。與平臺無關(guān)的Java作為一種網(wǎng)絡(luò)語言,其源代碼被編譯成一種結(jié)構(gòu)中立的中間文件格式。只要有Java運行系統(tǒng)的機器都能執(zhí)行這種中間代碼。Java源程序被編譯成一種與機器無關(guān)的字節(jié)碼格式,在Java虛擬機上運行。多線程的動態(tài)的 Java的動態(tài)特性是其面向?qū)ο笤O(shè)計方法的擴展。它允許程序動態(tài)地裝入運行過程中所需要的類,這是我們采用C+語言進行面向?qū)ο蟪绦蛟O(shè)計所無法實現(xiàn)的。在C+程序設(shè)計過程中,每當在類中增加一個實例變量或一個成員函數(shù)后,引用該類的所有子類都必須重新編譯,否則將導致程序崩潰。Java從以下幾個方面采取措施來解決了這個問題。Java編譯器不是將對實例變量和成員函數(shù)的引用編譯為數(shù)值引用,而是將符號引用信息在字節(jié)碼中保存下來傳遞給解釋器,再由解釋器在完成動態(tài)連接類后,將符號引用信息轉(zhuǎn)換為數(shù)值偏移量。一個在存儲器中生成的對象不在編譯過程中決定,而是延遲到運行時由解釋器確定。這樣,對類中的變量和方法進行更新時就不至于影響現(xiàn)存的代碼。解釋執(zhí)行字節(jié)碼時,這種符號信息的查找和轉(zhuǎn)換過程在一個新的名字出現(xiàn)時才進行一次,隨后代碼便可以全速執(zhí)行。在運行時確定引用的好處是可以使用已被更新的類,而不必擔心會影響原有的代碼。如果程序連接了網(wǎng)絡(luò)中另一系統(tǒng)中的某一類,該類的所有者也可以自由地對該類進行更新,而不會使任何引用該類的程序崩潰。Java還簡化了使用一個升級的或全新協(xié)議的方法。如果你的系統(tǒng)運行Java程序時遇到了不知怎樣處理的程序,Java能自動下載你所需要的功能程序。3. swfJava跨平臺的原理Java源文件的編譯過程 Java應(yīng)用程序的開發(fā)周期包括編譯、下載、解釋和執(zhí)行幾個部分。Java編譯程序?qū)ava源程序翻譯為JVM可執(zhí)行代碼一一字節(jié)碼。這一編譯過程同C/C+的編譯有些不同。當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬件平臺運行而產(chǎn)生的。因此,在編譯過程中,編譯程序通過查表將所有對符號的引用轉(zhuǎn)換為特定的內(nèi)存偏移量,以保證程序運行。Java編譯器卻不將對變量和方法的引用編譯為數(shù)值引用,也不確定程序執(zhí)行過程中的內(nèi)存布局,而是將這些符號引用信息保留在字節(jié)碼中,由解釋器在運行過程中創(chuàng)建內(nèi)存布局,然后再通過查表來確定一個方法所在的地址。這樣就有效的保證了Java的可移植性和安全性。Java解釋器的執(zhí)行過程 運行JVM字節(jié)碼的工作是由解釋器來完成的。解釋執(zhí)行過程分三步進行:代碼的裝入、代碼的校驗和代碼的執(zhí)行。裝入代碼的工作由“類裝載器”(class loader)完成。類裝載器負責裝入運行一個程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被其調(diào)用的類。當類裝載器裝入一個類時,該類被放在自己的名字空間中。除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其它類。在本臺計算機上的所有類都在同一地址空間內(nèi),而所有從外部引進的類,都有一個自己獨立的名字空間。這使得本地類通過共享相同的名字空間獲得較高的運行效率,同時又保證它們從外部引進的類不會相互影響。當裝入了運行程序需要的所有類后,解釋器便可確定整個可執(zhí)行程序的內(nèi)存布局。解釋器為符號引用同特定的地址空間建立對應(yīng)關(guān)系及查詢表。通過在這一階段確定代碼的內(nèi)存布局,Java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了代碼對地址的非法訪問。 隨后,被裝入的代碼由字節(jié)碼校驗器進行檢查。校驗器可發(fā)現(xiàn)操作數(shù)棧溢出,非法數(shù)據(jù)類型轉(zhuǎn)換等多種錯誤。通過校驗后,代碼便開始執(zhí)行了。Java字節(jié)碼的兩種執(zhí)行方式1、 即時編譯方式:解釋器先將字節(jié)碼編譯成機器碼,然后再執(zhí)行該機器碼。(也就是編譯成與硬件平臺相關(guān)的代碼,會加快執(zhí)行速度,與C+編譯執(zhí)行速度基本保持一致了)2、 解釋執(zhí)行方式:解釋器通過每次解釋并執(zhí)行一小段代碼來完成Java字節(jié)碼程序的所有操作。(這種方式通過解釋執(zhí)行與平臺無關(guān)的java字節(jié)碼來完成的,相對于C+編譯執(zhí)行要慢一些)通常采用的是第二種方法。由于JVM規(guī)格描述具有足夠的靈活性,這使得將字節(jié)翻譯為機器代碼的工作具有較高的效率。對于那些對運行速度要求較高的應(yīng)用程序,解釋器可將Java字節(jié)碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。 JVM規(guī)格描述JVM的設(shè)計目標是提供一個基于抽象規(guī)格描述的計算機模型,為解釋程序開發(fā)人員提供很好的靈活性,同時也確保Java代碼可在符合該規(guī)范的任何系統(tǒng)上運行。JVM對其實現(xiàn)的某些方面給出了具體的定義,特別是對Java可執(zhí)行代碼,即字節(jié)碼(Byte code)的格式給出了明確的規(guī)格。這一規(guī)格包括操作碼和操作數(shù)的語法和數(shù)值、標識數(shù)值表示方式、以及Java類文件中的Java對象、常量緩沖池在JVM的存儲映像。這些定義為JVM解釋器開發(fā)人員提供了所需的信息和開發(fā)環(huán)境。Java的設(shè)計者希望給開發(fā)人員以隨心所欲使用Java的自由。JVM是為Java字節(jié)碼定義的一種獨立于具體平臺的規(guī)格描述,是Java平臺獨立性的基礎(chǔ)。Java程序執(zhí)行與C/C+程序執(zhí)行的對比分析 如果把Java源程序想象成我們的C+源程序,Java源程序編譯后生成的字節(jié)碼就相當于C+源程序編譯后的80x86的機器碼(二進制程序文件),JVM虛擬機相當于80x86的計算機系統(tǒng),Java解釋器相當于80x86CPU。在80x86CPU上運行的是機器碼,在Java解釋器上運行的是Java字節(jié)碼。Java解釋器相當于運行Java字節(jié)碼的“CPU”,但該“CPU”不是通過硬件實現(xiàn)的,而是用軟件實現(xiàn)的。Java解釋器實際上就是特定的平臺下的一個應(yīng)用程序。只要實現(xiàn)了特定平臺下的解釋器程序,Java字節(jié)碼就能通過解釋器程序在該平臺下運行,這是Java跨平臺的根本。當前,并不是在所有的平臺下都有相應(yīng)Java解釋器程序,這也是Java并不能在所有的平臺下都能運行的原因,它只能在已實現(xiàn)了Java解釋器程序的平臺下運行。4. swf10.swf1查看路徑: set path2java文件中若有一個Public類,則只能有一個Public類,且文件名必須與這個Public類的類名一致,故Java文件中最多只存在一個Public類,如:_ public class Welcome public static void main(String args) System.out.println(Welcome !); class HelloWorld public static void main(String args) System.out.println(Hello the World !); 則它的文件名就應(yīng)該保存為 Welcome.java 編譯命令為:javac Welcome.java/*由于編譯器javac 對文件名Welcome.java的大小寫不敏感,故可以寫為 javac welcome.java*/解釋器命令為:java Welcome /*注意java解釋器解釋的是java類文件,故用Welcome類名,而非文件名Welcome.java*/3jar 的用法:-c 創(chuàng)建新的存檔-t 列出存檔內(nèi)容的列表-x 展開存檔中的命名的(或所有的)文件-u 更新已存在的存檔-v 生成詳細輸出到標準輸出上-f 指定存檔文件名-m 包含來自標明文件的標明信-o 只存儲方式;未用ZIP壓縮格-M 不產(chǎn)生所有項的清單(manifest)文件-i 為指定的jar文件產(chǎn)生索引信-c 改變到指定目錄,它將被遞歸處理。例如:上面的java文件產(chǎn)生的兩個 Hello. class 和Welcom.class類通過jar包壓縮到Lesson.jar下則操作如下: jar cvf Lesson.jar Hello. class Welcom.class 4一個點號表示當前路徑,兩個點號表示上一層路徑,因此在設(shè)置環(huán)境變量時,通常保留當前路徑,常出現(xiàn)點號,例如: set classpath=D: ;。5Java 的八種數(shù)據(jù)類型: 初始化值byte 1 個字節(jié) (8bit) ( 128 127 ) 0short 2 個字節(jié) (16bit) ( 32768 32767 ) 0char 2 個字節(jié) (16bit) ( 0 65535 ) u0000(空)int 4 個字節(jié) (32bit) 有符號 0long 8 個字節(jié) (64bit) 有符號 0Lfloat 4 個字節(jié) (32bit) 有符號 0.0Fdouble 8 個字節(jié) (64bit) 有符號 0.0Dboolean 1 個字節(jié) (8bit) 只有 true和false兩個值 False 定義變量并分配空間后,各類型的變量自動進行初始化賦值。6糾錯=public class Welcome /文件名保存為 Welcome.java public static void main(String args) byte b; b=3; /編譯發(fā)現(xiàn)這一行沒出錯,說明3并不是作為int常量的. b=b*3; /*編譯發(fā)現(xiàn)這一行出錯,這是因為byte類型的變量在參與運算被自動 提升為int類型了.應(yīng)改為 b=(byte)(b*3),這樣運行結(jié)果為9. */ System.out.println(b); public class Welcome /文件名保存為Welcome.java public static void main(String args) float f; f=1.3; /*錯誤,由于java中小數(shù)常量1.3被認為是8個字節(jié)的雙精度double 類型,現(xiàn)被賦給只有4個字節(jié)的單精度float類型,顯然會丟失精度. 因此改為f=1.3f; 1.3f表示
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 單方面諒解協(xié)議書范本
- 民宅供暖入網(wǎng)協(xié)議書范本
- 跨國并購企業(yè)戰(zhàn)略合作的框架協(xié)議
- 離婚協(xié)議書:婚姻解除與共同財產(chǎn)分割全案
- 智能制造財產(chǎn)權(quán)利質(zhì)押融資合同模板
- 高端汽車抵押擔保合同
- 臨時彩鋼房拆除作業(yè)安全管理合同
- 房地產(chǎn)交易場地價差額貨幣賠償合同
- 餐飲店面租賃及節(jié)假日促銷活動合作合同
- 深水承臺鋼套箱止水技術(shù)專題
- 2022年中國醫(yī)學科學院放射醫(yī)學研究所高層次人才引進筆試備考題庫及答案解析
- 工程地質(zhì)學實習報告
- 大班幼兒自主建構(gòu)游戲:搭雞窩 課件
- 信息檢索智慧樹知到答案章節(jié)測試2023年齊魯工業(yè)大學
- 鋁鎂錳金屬屋面專項施工組織設(shè)計
- 攪拌器的型式
- 傳感器原理 磁電式傳感器
- XX印務(wù)有限公司采購控制程序
- 2.溝槽開挖(檢驗批)質(zhì)量驗收記錄表
- GB/T 8433-1998紡織品色牢度試驗?zāi)吐然味?游泳池水)
- GB/T 12719-2021礦區(qū)水文地質(zhì)工程地質(zhì)勘查規(guī)范
評論
0/150
提交評論