java面向對象程序設計-概述_第1頁
java面向對象程序設計-概述_第2頁
java面向對象程序設計-概述_第3頁
java面向對象程序設計-概述_第4頁
java面向對象程序設計-概述_第5頁
已閱讀5頁,還剩42頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第1章Java導論

*Java面向對象程序設計教程2主要內容1.1Java語言的特點1.1.1簡單的面向對象程序設計語言1.1.2健壯安全的分布式語言1.1.3結構中立、可移植性強的解釋型語言1.1.4高效能1.1.5支持多線程的動態語言1.1.6Java與幾種常用語言的比較1.2Java執行環境1.2.1JVM機制——Java平臺的基礎1.2.2自動垃圾收集1.2.3保護域機制與沙箱模型1.2.4類加載器——啟動引擎的點火器1.3JDK的組成與安裝設置1.3.1Java平臺的組成結構1.3.2SETPATH和SETCLASSPATH的作用1.3.3Java開發平臺簡介1.4典型例子及常見問題1.4.1編譯器、解釋器、小程序觀察器和反編譯器1.4.2簡單的“HelloWorld!”例子1.4.3應用程序的主方法1.4.4小程序的運行1.1Java語言的特點*Java面向對象程序設計教程4Java的由來1991年初,SunMicrosystems公司設立一項較大規模“消費者電子產品先進軟件發展項目”,該項目是為了發展小型、可靠、可移植、分布式、實時的嵌入式系統。

項目小組開發了一種與平臺無關的新語言,命名為“Oak”。其靈感來源于項目主持人JamesGosling辦公室外的一棵橡樹(Oak),它就是Java語言的前身。

但因Oak名稱與其它產品雷同,最后將開發的新語言取名為“Java”。據說是項目小組成員經常在公司附近一家咖啡廳喝咖啡,因此把咖啡原產地Java作為新語言的名稱。1995年,SunMicrosystems公司正式發布Java產品。

*Java面向對象程序設計教程5與Java有關的一些圖片Java的標識Java的吉祥物DukeJava之父JamesGosling*Java面向對象程序設計教程6Java語言的特點

在Java語言白皮書中,Java被描述為“是一種簡單、面向對象、分布式、解釋、健壯、安全、結構中立、可移植、高效能、多線程、動態的語言。Asimple,object-oriented,network-savvy,interpreted,robust,secure,architectureneutral,portable,high-performance,multithreaded,dynamiclanguage。

—JamesGosling,HenryMcGilton.TheJava?LanguageEnvironment,AWhitePaper.

*Java面向對象程序設計教程7簡單的面向對象程序設計語言

“爪哇”——Java總給人以小巧玲瓏

和C++很相近,但刪除許多極少被使用、不容易理解和令人混淆的C++功能,主要包括運算符重載、多重繼承以及廣泛的自動強迫同型。

自動垃圾收集(Automaticgarbagecollection)功能,這不僅簡化了Java程序的內存分配與釋放工作,而且能大幅度減少程序中的漏洞。

Java程序非常小,對于在嵌入式的系統中使用是很重要的,同時也可以通過網絡輕易下載。

*Java面向對象程序設計教程8健壯安全的分布式語言

Java擁有廣泛的能輕易處理TCP/IP協議(如HTTP與FTP等)的類庫,更容易創建網絡連接。

除了運行時異常檢查外,Java提供了廣泛的編譯時異常檢查,以便盡早的發現可能存在的錯誤。同時,在Java中對象的創建機制(只能用new操作符)和自動垃圾收集機制大大減少了因內存管理不當引發的錯誤。

Java的驗證技術是以公鑰加密算法為基礎。

*Java面向對象程序設計教程9結構中立、可移植性強的解釋型語言

為了讓Java應用程序能夠在網絡上任何地方執行,其編譯器會產出一種結構中立的字節代碼(Bytecode)。字節代碼可以在提供Java運行時系統的多種不同處理器上面執行。

Java嚴格定義了基本數據類型的大小和算術運算符的行為,因此不存在軟硬件平臺不兼容的情況。

Java系統本身具備相當好的移植性。它的編譯器用Java寫成,而Java運行時程序則是參照POSIX(一個可移植接口工業標準)規格使用ANSIC寫成的。

*Java面向對象程序設計教程10高效能

字節代碼可以動態地為執行應用程序的特定CPU解釋成機器碼。字節代碼格式在設計上即顧及機器碼的產生,因此實際的機器碼產生程序相當簡單。

解釋器運行時不需檢查運行環境,自動垃圾收集器設為優先級最低后臺線程,以保證內存得到更有效的應用。

對于運算量很大的程序可以采用原生代碼編寫,再經由Java平臺轉換。Just-In-Time(JIT)編譯技術更是讓字節代碼的執行速度大幅度提升。

*Java面向對象程序設計教程11支持多線程的動態語言

在Java核心類庫中包含Thread類,同時Java運行時系統提供了線程監視器和同步鎖定機制。多線程的其它優點包括更好的交互式回應能力與實時執行行為。

Java是一種比C或C++更具動態特性的語言。它在設計上強調為進化中的運算環境提供支援。甚至可以在不中斷網絡服務的情況下替換相關的組件。

*Java面向對象程序設計教程12Java與幾種常用語言的比較

1.2Java執行環境*Java面向對象程序設計教程14Java執行環境

Java源程序(*.java)首先被編譯成字節代碼(*.class);這些字節代碼就是Java虛擬機可以解釋的指令集。經過安全驗證后字節代碼進入虛擬機,要么經由解釋器解釋執行,要么由JIT編譯器(也稱為即時代碼生成器)轉成機器代碼執行,程序中使用到的類則根據需要動態加載到內存中。Java執行環境由編譯時(Compile-time)和運行時(Runtime)環境兩部分組成。*Java面向對象程序設計教程15JREJVM協同類加載器、字節代碼校驗器和Java類庫一起,組成了整個Java運行環境JRE。

一次編寫隨處運行

(WriteOnceRunAnywhere,WORA)Java虛擬機機制Java虛擬機(JavaVirtualMachine,JVM)是一個類似于真實計算機系統的抽象機(AbstractComputingMachine),它擁有一組指令集,用來解釋“.class”字節代碼;也就是說,JVM并不認識所謂的Java語言,而僅僅能夠讀懂class文件中有限的指令、符號及其他一些輔助信息。它除了負責執行指令外,還要管理數據、內存和寄存器。這臺虛擬的機器在任何平臺上都提供給編譯程序一個的共同的接口。編譯程序只需要面向虛擬機,生成虛擬機能夠理解的代碼,然后由解釋器來將虛擬機代碼轉換為特定系統的機器碼執行。*Java面向對象程序設計教程16*Java面向對象程序設計教程17JVM的組成執行引擎負責把字節代碼導入虛擬機;內存管理

負責分配內存給對象和數組,并進行垃圾收集;錯誤和異常管理

負責異常的捕獲或拋出;線程接口

負責對線程的支持;對原生方法(NativeMethod)的支持

支持調用C/C++等語言編寫的方法。

*Java面向對象程序設計教程18JVM的理解:機床-數控機床-虛擬機床數控機床數控機床抽象數控機床可以加工各種形狀的物體原因在于它擁有一個可以能讀懂指令的核心系統MachineVirtualMachine*Java面向對象程序設計教程19解釋產品(問題域)編程人員是熟悉的!但數控系統(JVM)是不認識的!!編程人員根據自己的想法,在相應的平臺上編寫出符合產品形狀要求的程序(.java)*Java面向對象程序設計教程20解釋這是程序員可以理解的程序(.java),因其是接近自然語言的。但對數控系統(JVM)來說太復雜,它是讀不懂的!*Java面向對象程序設計教程21解釋于是程序員利用相應的平臺把它編譯成數控系統(JVM)可以理解的程序(.class)于是數控機床(JVM)動起來啦!產品也做出來啦!可是最終數控機床(JVM)也沒有明白它做出的產品是什么,只知道走了許許多多的直線或圓弧(JVM指令集)!*Java面向對象程序設計教程22示例虛擬的真實的實現代碼移植的一種技術策略

(為什么要使用Java虛擬機?)*Java面向對象程序設計教程23使用Java虛擬機,其技術路線的本質就是改變了編譯型語言環境把易變的應用和相對穩定的系統平臺之間直接綁定的做法,通過增加語言環境的中介接口,實現了易變的應用和相對穩定的系統平臺之間的松耦合。*Java面向對象程序設計教程24保護域機制與沙箱模型

保護域(Protectiondomain)是有關系統安全的基本概念和重要模塊。域界定了作為主體的系統實體對各種對象集直接訪問的被許可程度。保護域概念提供一種在受保護單元中分組和隔離不安全因素的便利機制。

*Java面向對象程序設計教程25類加載器——啟動引擎的點火器

加載當JVM加載類時,它尋找類或接口的二進制表示,并從這個二進制表示(通常是Java編譯器生成的類文件)生成Class對象。Class對象封裝類或接口的運行時狀態。鏈接鏈接是取得加載的類或接口,并將其與JVM運行時環境結合起來,以準備執行的過程。初始化初始化在JVM調用類或接口初始化方法時發生。*Java面向對象程序設計教程26類加載器——啟動引擎的點火器JVM在啟動獨立Java應用程序時的第一步是生成初始Class對象,表示包含publicstaticvoidmain(String[]args)方法的Java的類。JVM鏈接與初始化這個類并調用main()方法。這個方法推動所需要的其他類和接口的加載、鏈接與初始化。

1.3JDK的組成與安裝設置*Java面向對象程序設計教程28Java平臺的組成結構

*Java面向對象程序設計教程29Java標準版

*Java面向對象程序設計教程30Java版本的平臺信息這些軟件可以從Sun公司的網站/上免費下載獲得。值得說明的是,這兩個版本的開發工具包的縮寫從“J2SDK(或Java2SDK)”改回到“JDK”,運行環境的縮寫從“J2RE”改回到“JRE”,下載時需要注意。Java版本的服務期限*Java面向對象程序設計教程31GAdate:ReleasefamiliesgeneralavailabilitydateEOL:Javatechnologyendoflife參考網址:/products/archive/eol.policy.html*Java面向對象程序設計教程32SETPATH的作用SETPATH=c:\jdk1.5.0\bin含義是告訴操作系統到哪里可以找到Java的編譯器等可執行文件的位置。*Java面向對象程序設計教程33SETCLASSPATH的作用SETCLASSPATH=.;c:\jdk1.5.0\lib\tools.jar含義是告訴操作系統到哪里可以找到編譯或解釋運行時所需字節代碼的位置。*Java面向對象程序設計教程34在運行環境中的設置方法如果系統平臺為Windows9X,則把以上的設置內容加入系統根目錄下的autoexec.bat文件中;如果系統平臺為WindowsXP、Windows2000及以后版本,則把以上的設置內容加入【控制面板】|【系統】|【高級】|【環境變量】中。Java開發平臺簡介集成開發環境:

IntegratedDevelopmentEnvironment,IDEJCreatorEclipseNetBeans*Java面向對象程序設計教程351.4典型例子及常見問題*Java面向對象程序設計教程37常用指令簡介編譯器javac的使用解釋器java的使用小程序觀察器appletviewer的使用反編譯器javap的使用*Java面向對象程序設計教程38應用程序編程舉例//:ApplicationStyle.java//packageg3ds.joop.ch1;publicclassApplicationStyle{//anapplication publicstaticvoidmain(String[]args){ System.out.println("HelloWorld!"); }}程序保存為ApplicationStyle.java編譯時執行javacApplicationStyle.java得到字節代碼ApplicationStyle.class。運行時執行javaApplicationStyle

*Java面向對象程序設計教程39小程序編程舉例//:AppletStyle.java//packageg3ds.joop.ch1;importjava.awt.Graphics;importjavax.swing.JApplet;publicclassAppletStyleextendsJApplet{//anapplet publicvoidpaint(Graphicsg){ g.drawString("HelloWorld!",150,50);}}<HTML><APPLETCODE="AppletStyle.class"WIDTH=300HEIGHT=100></APPLET></HTML>保存為HelloWorldShow.html或HelloWorldShow.htmappletviewerHelloWorldShow.html

“HelloWorld!”的演繹*Java面向對象程序設計教程40進一步討論*Java面向對象程序設計教程42反編譯程序樣式javap–cApplicationStyle則可以獲得字節碼的助記符版本:CompiledfromApplicationStyle.javapublicclassHelloWorldextendsjava.lang.Object{publicHelloWorld();publicstaticvoidmain(java.lang.String[]);}MethodHelloWorld()0aload_01invokespecial#1<Methodjava.lang.Object()>4returnMethodvoidmain(java.lang.String[])0getstatic#2<Fieldjava.io.PrintStreamout>3ldc#3<String"HelloWorld!">5invokevirtual#4<Methodvoidprintln(java.lang.String)>8return*Java面向對象程序設計教程43哪些類被加載了*Java面向對象程序設計教程44使用Java的一些注意事項Java中規定,在一個.java的源文件中最多只能有一個(另一個意思是可以沒有)publicclass。當這個publicclass存在時,要求該類名必須與.Java源文件的名字一致。如果你想編寫一個應用程序(通常被聲明

溫馨提示

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

最新文檔

評論

0/150

提交評論