JAVA语言概述课件.ppt
JAVA语言程序设计JAVA語言概述*1.1.1Java語言的發展1991年由JamesGosling負責開發的一個分佈式代碼系統(Oak),最初是為家用消費電子產品(電冰箱、電視機等)進行編程控制。1993年Sun公司將目標市場轉向Internet。1994年將Oak語言更名為Java。1995年Java被正式發佈,之後立即引起極大的轟動。*Java目前的主要應用許多大公司購買了Java的許可證。眾多軟體開發商開始支持Java軟體產品。面向對象的應用開發。Intranet(企業內部網)上的軟體開發。動態畫面的設計,包括圖形圖像的調用。與各類資料庫連接查詢的SQL語句實現。其他應用類型的程式。*1.1.2Java語言的特點2-1簡單性面向對象分佈式處理健壯性結構中立安全性系統精簡,但功能齊備。風格類似於C++,對C++程式員而言非常容易掌握。Java摒棄了C++中容易引發程式錯誤的地方,如指針操作和記憶體管理;提供豐富的類庫。完全是面向對象的,它不支持類似C語言那樣的面向過程的程式設計技術。支持TCP/IP協議。Java應用程式可通過一個特定的URL來打開並訪問對象,就像訪問本地檔系統那樣簡單。提供面向對象的異常處理機制,在編譯時能對Null指針檢測、數組邊界檢測、異常出口位元組代碼校驗等。自動垃圾收集來進行記憶體管理。將根源程式編譯成一種結構中立的中間檔格式。只要有Java運行系統的機器都能執行這種中間代碼。Java語言提供的安全。編譯器提供的安全。位元組碼校驗。類裝載。*1.1.2Java語言的特點2-2可移植性解釋性高性能多線程動態Java應用程式可以在配備了Java解釋器和運行環境的任何電腦系統上運行,而與體系結構無關。Java編譯器將java原始檔案生成類檔.class,類檔可通過java命令解釋執行,將Java位元組碼轉換為機器碼。JIT編譯器。可以提高Java代碼的執行速度。內置多線程功能,使得在一個程式裏可同時執行多個小任務。帶來的好處是更好的交互性和即時控制性。允許程式動態地裝入運行過程中所需要的類,這是C++語言進行面向對象程式設計所無法實現的。*1.1.3Java與C++的比較專案JavaC++全局變數不存在全局變數存在數據類型和轉換無結構、枚舉或者聯合,轉換時進行類型相容檢查通過指針進行任意的類型轉換,帶來不安全性範圍運算符無作用域範圍運算符::有數組對象,有只读的length無length記憶體管理可創建不屬於基本數據類型的對象不能提前聲明不必進行提前聲明必須預處理沒有預處理機制有頭檔importinclude指針無有goto和virtual無有注釋文檔對注釋文檔的內建支持無*1.1.4Java程式工作機制4-1*1、Java虛擬機4-2實現平臺無關性的基礎就是Java虛擬機,是以Java位元組碼為指令組的軟CPU。負責對本地*.class檔解釋執行。包含類加載器、位元組確認器、以及JIT即時編譯器。類加載器:用來取得從網路或本地的類檔。位元組確認器:確認類檔是否有正確的格式。JIT:使虛擬機能提高到編譯式的運行效率。*2、位元組碼4-3*.class檔與機器碼不同,不是真正的CPU可運行的指令代碼,故又稱偽代碼。通過JVM以及JRE將其轉成本地機器代碼,達到一次撰寫,到處運行的效益。(WriteOnce,RunAnywhere)*3、垃圾收集4-4虛擬機使用兩個獨立的堆記憶體,分別用於靜態記憶體分配和動態記憶體分配。非垃圾收集堆記憶體,用於存儲所有類定義、常量池和方法表。另一個堆記憶體,用於垃圾收集的演算法適用於存放在動態堆記憶體中的對象。垃圾收集器在收集對象前調用finalize方法。顯式調用垃圾收集(System.gc())方法,不能保證立即運行,因為其優先順序很低。*1.2.1Java應用程式舉例2-1//這是檔案名為“HelloWorld.java”的簡單應用程式importjava.io.*;//引入包classHelloWorld{//定義類publicstaticvoidmain(Stringargs[])//main方法{ System.out.println(“歡迎來到Java世界!”);/