




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
Java技術與應用主講人:孫鑫/1精選2021版課件Java的起源
Java來自于Sun公司的一個叫Green的項目,其原先的目的是為家用消費電子產品開發一個分布式代碼系統,這樣我們可以把E-mail發給電冰箱、電視機等家用電器,對它們進行控制,和它們進行信息交流。開始,準備采用C++,但C++太復雜,安全性差,最后基于C++開發了一種新的語言Oak(Java的前身),Oak是一種用于網絡的精巧而安全的語言,Sun公司曾以此投標一個交互式電視項目,但結果被SGI打敗。可憐的Oak幾乎無家可歸,恰巧這時MarkArdreesen開發的Mosaic和Netscape啟發了Oak項目組成員,他們用Java編制了HotJava瀏覽器,得到了Sun公司首席執行官ScottMcNealy的支持,觸發了Java進軍Internet。Java的取名也有一則趣聞,有一天,幾位Java成員組的會員正在討論給這個新的語言取什么名字,當時他們正在咖啡館喝著Java(爪哇)咖啡,有一個人靈機一動說就叫Java怎樣,得到了其他人的贊賞,于是,Java這個名字就這樣傳開了。Java的起源
Download:2精選2021版課件我們為什么要用Java因為Java是簡單的面向對象的健壯的安全的解釋的與平臺無關的多線程的動態的語言
Download:3精選2021版課件我們為什么要用Java簡單的
Java最初是為對家用電器進行集成控制而設計的一種語言,因此它必須簡單明了。Java語言的簡單性主要體現在三個方面:
1、Java的風格類似于C++,因而C++程序員初次接觸Java語言,就會感到很熟悉。從某種意義上講,Java語言是C及C++語言的一個變種,因此,C++程序員可以很快地掌握Java編程技術。
2、Java摒棄了C++中容易引發程序錯誤的一些特性,如指針、結構、枚舉以及內存管理等。
3、Java提供了豐富的類庫,可以幫助我們很方便的開發Java程序。
Download:4精選2021版課件我們為什么要用Java面向對象的
面向對象可以說是Java最重要的特性,所以它支持繼承、重載、多態等面向對象的特性。Java語言的設計是完全面向對象的,它不支持類似C語言那樣的面向過程的程序設計技術。
Download:5精選2021版課件我們為什么要用Java健壯的
Java致力于檢查程序在編譯和運行時的錯誤。Java也是一種強類型的語言,其類型檢查比C++還要嚴格。類型檢查幫助我們檢查出許多開發早期出現的錯誤。Java自己負責內存管理,提供了垃圾內存回收機制,有效的避免了C++中最頭疼的內存泄漏問題。
Download:6精選2021版課件我們為什么要用Java安全的
Java的安全性可從兩個方面得到保證。一方
面,在Java語言里,刪除了指針和釋放內存等C++功能,避免了非法內存操作。另一方面,通過Java的安全體系架構來確保Java代碼的安全性。當我們從網上下載Java代碼在本地執行時,Java的安全架構能確保惡意的代碼不能隨意訪問我們本地計算機的資源,例如:刪除文件,訪問本地網絡資源等操作都是被禁止的。
Download:7精選2021版課件我們為什么要用Java解釋的
Java代碼是解釋執行的,我們使用Java編譯器將Java代碼編譯成字節碼,這是一種中間代碼,然后由Java解釋器解釋執行。而C++程序是編譯執行的,C++程序代碼被編譯為本地機器指令,然后執行。
Download:8精選2021版課件我們為什么要用Java與平臺無關的
Java作為一種網絡語言,其源代碼被編譯成一種結構中立的中間文件格式。只要有Java運行系統的機器都能執行這種中間代碼。Java源程序被編譯成一種與機器無關的字節碼格式,在Java虛擬機上運行。
Download:9精選2021版課件我們為什么要用Java多線程的
Java語言的一個重要特性就是在語言級支持多線程的程序設計。多線程就好像我們做一張桌子,如果你一個人完成這張桌子—就好像單線程,那么你需要先做桌面,做完桌面后,再做4個桌子腿,如果現在有5個人來做桌子—在程序中開辟5個線程,其中1個人做桌面,另外4個人分別做4個桌子腿,那么這兩種方式效率的高低,相信大家都能區分出來。
Download:10精選2021版課件我們為什么要用Java動態的
Java的動態特性是其面向對象設計方法的擴展。它允許程序動態地裝入運行過程中所需要的類,這是我們采用C++語言進行面向對象程序設計所無法實現的。在C++程序設計過程中,每當在類中增加一個實例變量或一個成員函數后,
引用該類的所有子類都必須重新編譯,否則將導致程序崩潰。Java從以下幾個方面采取措施來解決這個問題。Java編譯器不是將對實例變量和成員函數的引用編譯為數值引用,而是將符號引用信息在字節碼中保存下來,傳遞給解釋器,再由解釋器在完成動態連接類后,將符號引用信息轉換為數值偏移量。一個在存儲器中生成的對象不在編譯過程中決定,而是延遲到運行時由解釋器確定。這樣,對類中的變量和方法進行更新時就不至于影響現存的代碼。
解釋執行字節碼時,這種符號信息的查找和轉換過程僅在一個新的名字出現時才進行一次,隨后代碼便可以全速執行。在運行時確定引用的好處是可以使用已被更新的類,而不必擔心會影響原有的代碼。如果程序連接了網絡中另一系統中的某一類,該類的所有者也可以自由地對該類進行更新,而不會使任何引用該類的程序崩潰。Java還簡化了使用一個升級的或全新協議的方法。如果你的系統運行Java程序時遇到了不知怎樣處理的程序,Java能自動下載你所需要的功能程序。
Download:11精選2021版課件Java跨平臺的原理
Java的跨平臺是通過Java虛擬機(JVM)來實現的。
Download:12精選2021版課件Java跨平臺的原理Java源文件的編譯過程Java應用程序的開發周期包括編譯、下載、解釋和執行幾個部分。Java編譯程序將Java源程序翻譯為JVM可執行代碼—字節碼。這一編譯過程同C/C++的編譯有些不同。當C編譯器編譯生成一個對象的代碼時,該代碼是為在某一特定硬件平臺運行而產生的。因此,在編譯過程中,編譯程序通過查表將所有對符號的引用轉換為特定的內存偏移量,以保證程序運行。Java編譯器卻不將對變量和方法的引用編譯為數值引用,也不確定程序執行過程中的內存布局,而是將這些符號引用信息保留在字節碼中,由解釋器在運行過程中創建內存布局,然后再通過查表來確定一個方法所在的地址。這樣就有效的保證了Java的可移植性和安全性。
Download:13精選2021版課件Java跨平臺的原理Java解釋器的執行過程
運行JVM字節碼的工作是由解釋器來完成的。解釋執行過程分三步進行:代碼的裝入、代碼的校驗和代碼的執行。裝入代碼的工作由“類裝載器”(classloader)完成。類裝載器負責裝入運行一個程序需要的所有代碼,這也包括程序代碼中的類所繼承的類和被其調用的類。當類裝載器裝入一個類時,該類被放在自己的名字空間中。除了通過符號引用自己名字空間以外的類,類之間沒有其他辦法可以影響其它類。在本臺計算機上的所有類都在同一地址空間內,而所有從外部引進的類,都有一個自己獨立的名字空間。這使得本地類通過共享相同的名字空間獲得較高的運行效率,同時又保證它們與從外部引進的類不會相互影響。當裝入了運行程序需要的所有類后,解釋器便可確定整個可執行程序的內存布局。解釋器為符號引用同特定的地址空間建立對應關系及查詢表。通過在這一階段確定代碼的內存布局,Java很好地解決了由超類改變而使子類崩潰的問題,同時也防止了代碼對地址的非法訪問。隨后,被裝入的代碼由字節碼校驗器進行檢查。校驗器可發現操作數棧溢出,非法數據類型轉換等多種錯誤。通過校驗后,代碼便開始執行了。
Download:14精選2021版課件Java跨平臺的原理Java字節碼的兩種執行方式1、即時編譯方式:解釋器先將字節碼編譯成機器碼,然后再執行該機器碼。
2、解釋執行方式:解釋器通過每次解釋并執行一小段代碼來完成Java字節碼程序的所有操作。
通常采用的是第二種方法。由于JVM規格描述具有足夠的靈活性,這使得將字節碼翻譯為機器代碼的工作具有較高的效率。對于那些對運行速度要求較高的應用程序,解釋器可將Java字節碼即時編譯為機器碼,從而很好地保證了Java代碼的可移植性和高性能。
Download:15精選2021版課件Java跨平臺的原理JVM規格描述JVM的設計目標是提供一個基于抽象規格描述的計算機模型,為解釋程序開發人員提供很好的靈活性,同時也確保Java代碼可在符合該規范的任何系統上運行。JVM對其實現的某些方面給出了具體的定義,特別是對Java可執行代碼,即字節碼(Bytecode)的格式給出了明確的規格。這一規格包括操作碼和操作數的語法和數值、標識符的數值表示方式、以及Java類文件中的Java對象、常量緩沖池在JVM的存儲映象。這些定義為JVM解釋器開發人員提供了所需的信息和開發環境。Java的設計者希望給開發人員以隨心所欲使用Java的自由。
JVM是為Java字節碼定義的一種獨立于具體平臺的規格描述,是Java平臺獨立性的基礎。
Download:16精選2021版課件Java跨平臺的原理Java程序執行與C/C++程序執行的對比分析如果把Java源程序想象成我們的C++源程序,Java源程序編譯后生成的字節碼就相當于C++源程序編譯后的80x86的機器碼(二進制程序文件),JVM虛擬機相當于80x86計算機系統,Java解釋器相當于80x86CPU。在80x86CPU上運行的是機器碼,在Java解釋器上運行的是Java字節碼。Java解釋器相當于運行Java字節碼的“CPU”,但該“CPU”不是通過硬件實現的,而是用
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年微波和高頻波解凍設備合作協議書
- 環境綠化與公共設施管理合作協議細節
- 農田灌溉系統安裝與維護服務合同
- 網絡廣告行業精準投放與廣告優化策略方案
- 行政管理中的市政學課題研究試題及答案
- 小區智能化設備維護協議
- 2025年照相及電影洗印設備項目建議書
- 酒店租賃運營管理合作協議
- 農業生物技術聯合開發協議
- 社交網絡行業社交平臺建設與運營策略方案
- 消防常見隱患排查
- 如何提高你的判斷力
- 小麥病蟲害識別及“一噴三防”技術課件
- 軍用光纜保護專項方案
- 對外通信中斷處置預案
- 小學音樂教師的職業感觸與體驗
- 才藝展示部分課件
- 2023年全國中學生數學奧林匹克競賽(預賽)暨全國高中數學聯合競賽一試及加試試題(B)卷一試解析
- 陜09J01 建筑用料及做法圖集
- 血液透析血管通路的感染與預防
- 2020版5MW風力發電機組安裝手冊風電機組安裝手冊
評論
0/150
提交評論