Java程序設(shè)計技術(shù)課件_第1頁
Java程序設(shè)計技術(shù)課件_第2頁
Java程序設(shè)計技術(shù)課件_第3頁
Java程序設(shè)計技術(shù)課件_第4頁
Java程序設(shè)計技術(shù)課件_第5頁
已閱讀5頁,還剩29頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

Java程式設(shè)計技術(shù)

概述

什麼是Java語言

一個簡單的Java程式程式的編譯和運行常見錯誤使用Java核心API文檔什麼是Java語言前身是1991年由美國Sun公司的JameGosling、BillJoe等人開發(fā)的Oak語言

Java是一種功能強大的程式設(shè)計語言,既是開發(fā)環(huán)境,又是應(yīng)用環(huán)境,它代表一種新的計算模式什麼是Java語言面向?qū)ο蟮某淌皆O(shè)計語言與機器無關(guān)的二進位格式的類檔Java虛擬機(用來執(zhí)行類檔)完整的軟體程式包(跨平臺的API和庫)Java語言Java語言的特點語法簡單,功能強大類似於C++,去掉了C++中不常用且容易出錯的地方完全面向?qū)ο蠓謥咽脚c安全性強調(diào)網(wǎng)路特性,內(nèi)置TCP/IP、HTTP、FTP協(xié)議類庫三級代碼安全檢查機制與平臺無關(guān)一次編寫,到處運行Java語言的特點解釋編譯兩種運行方式j(luò)ust-in-time編譯器,簡稱JIT編譯器多線程 動態(tài)執(zhí)行執(zhí)行代碼是在運行時動態(tài)載入的豐富的API文檔和類庫Java的三層架構(gòu)主機架構(gòu)集中處理,集中管理,各用戶分享使用電腦資源。這種模式下,可移植性差,擴充系統(tǒng)費用較大個人電腦(PC)本地處理,本地管理,各用戶獨佔系統(tǒng)資源,管理維護費用直線上升Java的三層架構(gòu)Java計算模式結(jié)合了上述兩種模式的優(yōu)勢,它可用於客戶/伺服器架構(gòu),將公共使用的程式放到應(yīng)用程式伺服器上,用戶使用時從伺服器上下載到客戶端,各用戶獨立使用設(shè)備和程式。當程式更新時,只需在伺服器上進行。不必在客戶端做任何維護工作,達到“零管理”的理想目標。Java語言的目標創(chuàng)建一種面向?qū)ο蟮恼Z言提供一種解釋環(huán)境這可以縮短系統(tǒng)開發(fā)的編譯-連接-裝載-測試週期,提高開發(fā)速度。去掉了影響代碼健壯性的功能如指針結(jié)構(gòu)及程式員負責(zé)的記憶體分配與釋放。Java語言的目標為程式運行多線程提供了方法允許程式下載代碼模組在程式運行生命期內(nèi)可以動態(tài)修改檢查下載的代碼模組,提供了保證安全的一種手段Java虛擬機Java虛擬機(Javavirtualmachine,JVM)是運行Java程式必不可少的機制。編譯後的Java程式指令並不直接在硬體系統(tǒng)的CPU上執(zhí)行,而是由JVM執(zhí)行。JVM是編譯後的Java程式和硬體系統(tǒng)之間的介面,程式員可以把JVM看作一個虛擬的處理器。它不僅解釋執(zhí)行編譯後的Java指令,而且還進行安全檢查。它是Java程式能在多平臺間進行無縫移植的可靠保證,同時也是Java程式的安全檢驗引擎。Java虛擬機JVM的定義JVM是在一臺真正的機器上用軟體方式實現(xiàn)的一臺假想機JVM的具體實現(xiàn)指令集(等價於CPU的指令集)、寄存器組、類檔格式、棧、垃圾收集堆、記憶體區(qū)JVM代碼格式為壓縮的位元組碼,效率較高JVM的實現(xiàn)叫做Java運行時系統(tǒng)或運行時環(huán)境(RuntimeEnvironment),簡稱為運行時Java虛擬機的性能Java解釋器經(jīng)過優(yōu)化,位元組碼的執(zhí)行速度已有很大提高在位元組碼執(zhí)行之前先經(jīng)過JIT編譯器進行編譯,生成針對具體平臺的本機執(zhí)行代碼。執(zhí)行效率可比解釋執(zhí)行的效率大幅度提高。並仍不失跨平臺的特點Java虛擬機的性能Hotspot技術(shù)是Sun公司推出,為根本上解決Java程式的效率問題。它提供對代碼的運行時選擇。在程式執(zhí)行時,對每個位元組碼指令進行分析,根據(jù)它的執(zhí)行次數(shù),動態(tài)決定它的執(zhí)行方式垃圾收集程式員不必親自釋放記憶體後臺系統(tǒng)級線程,記錄每次記憶體分配的情況,並統(tǒng)計每個記憶體指針的引用次數(shù)。垃圾收集自動進行,無需用戶釋放記憶體,消除了記憶體漏洞代碼安全語言定義publicprotectedprivatefinal取消指針自動回收垃圾bytecode檢查限定對象的存取許可權(quán)系統(tǒng)堆疊溢出參數(shù)類型一致程式執(zhí)行系統(tǒng)WWW流覽器限制Java小應(yīng)用程式的不正當使用Java根源程式(.java檔)Java編譯器Javabytecode(.class檔)bytecode下載器bytecode解釋器系統(tǒng)執(zhí)行平臺代碼安全對於Applet,因其是從其他機器上通過網(wǎng)路下載到本機執(zhí)行的,程式中可能隱藏某些非法操作,所以在Applet運行之前,系統(tǒng)要對之進行嚴格的三級代碼安全檢查,即驗證、分析和跟蹤監(jiān)測。代碼安全JDK1.0版本中,安全模型是所謂的“沙箱”模型JDK1.1版本中,使用“簽名Applet”Java2允許用戶自己設(shè)定相關(guān)的安全級別代碼安全Java解釋器Java解釋器只能執(zhí)行為JVM編譯的代碼Java解釋器有三項主要工作:

(1)下載代碼--由類下載器完成 (2)校驗代碼--由位元組碼校驗器完成 (3)運行代碼--由運行時解釋器完成代碼安全類下載器從Internet網(wǎng)上下載類檔類下載器把本地檔系統(tǒng)的類名空間和網(wǎng)路源輸入的類名空間區(qū)分開來,以增加安全性代碼安全位元組碼校驗器檢查代碼的安全性,代碼段的格式,並使用規(guī)則來檢查非法代碼段主要檢查以下幾項內(nèi)容: (1)類遵從JVM的類檔格式。 (2)不出現(xiàn)訪問違例情況。 (3)代碼不會引起運算棧溢出。 (4)所有運算代碼的參數(shù)類型總是正確的。 (5)不會發(fā)生非法數(shù)據(jù)轉(zhuǎn)換,如把整數(shù)轉(zhuǎn)換為指針。 (6)對象域訪問是合法的。開發(fā)環(huán)境開發(fā)環(huán)境的安裝安裝JDK設(shè)置環(huán)境變數(shù)PATH=C:\ProgramFiles\Java\jdk1.5.0\bin;CLASSPATH=.;c:\ProgramFiles\Java\jdk1.5.0\LIB;c:\ProgramFiles\Java\jdk1.5.0\demoJDK目錄結(jié)構(gòu)C:\Jdk1.5.0binlibjavacjavaappletviewer用戶類檔所在目錄c:\java\examples\applications當前目錄jredemoJava程式Java應(yīng)用程式(JavaApplication)Java小應(yīng)用程式(JavaApplet)Java應(yīng)用程式例publicclassHelloWorldApp{

publicstaticvoidmain(Stringargs[]){

System.out.println("HelloWorld!");}}編譯命令運行命令運行結(jié)果程式的編譯和運行編譯

原始檔案是文本形式的檔,經(jīng)過編譯,生成二進位格式的位元組碼類檔Java編譯器:“javac”

$javacHelloWorldApp.java運行

Java的解釋器是“java.exe”java和javac一般放在$JAVA_HOME/bin目錄中,系統(tǒng)配置檔的PATH變數(shù)中應(yīng)包含該目錄

$javaHelloWorldApp常見錯誤編譯時錯誤

javac:Commandnotfound

包含javac編譯器的路徑變數(shù)設(shè)置不正確。HelloWorldApp.java:3:Methodprintl

(java.lang.String)notfoundinclassjava.io.PrintStream.

System.out.printl(“HelloWorld!”);

^方法名printl不正確,

HelloWorldApp.java:1:PublicclassHelloWorldappmustbe

definedinafilecalled"HelloWorldapp.java".

publicclassHelloWorldapp{

^檔定義的公有類HelloWorldapp的名字和文件名不匹配。常見錯誤運行時錯誤Can'tfindclassHelloWorldApp系統(tǒng)找不到名為HelloWorldApp的類檔。InclassHelloWorldApp:mainmustbepublicandstaticmain()方法的左側(cè)缺少static或public檔中含有的類個數(shù)錯誤在一個原始檔案中只能定義一個公有類常見錯誤層次錯誤解釋:一個.java原始檔案可以含有三個“頂層”元素,這三個元素必須依次是:(1)一個包說明,即package語句,可選(2)任意多個引入語句,即import語句(3)類和介面說明常見錯誤整體來看,Java程式的結(jié)構(gòu)如下:package語句:零個或1個,必須放在檔開始;import語句:零個或多個,必須放在所有類定義之前;公有的(public)類定義:零個或一個;類定義:零個或多個;介面定義:零個或多個;原始檔案命名時,若檔中含有public類,原始檔案必須與該類名字一致,注意區(qū)分大小寫。常見錯誤正確的語句序列:錯誤的語句順序:packageTransportation;importjava.awt.Graphics;importjava.applet.Applet;importjava.awt.Graphics;importjava.applet.Applet;packageTrans

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論