[Java入門筆記] Java語言簡介


前言

學習Java有一段時間了,但是一直缺少一個系統的思想,現在重新通過書籍中、網上的文章,視頻等資料,整理與回顧Java的知識點。

言歸正傳,讓我們先從了解Java語言開始。

Java語言的由來

Java是由Sun Microsystems公司推出的Java面向對象程序設計語言(以下簡稱Java語言)和Java平台的總稱。由James Gosling和同事們共同研發,並在1995年正式推出。Java最初被稱為Oak,是1991年為消費類電子產品的嵌入式芯片而設計的。1995年更名為Java,並重新設計用於開發Internet應用程序。用Java實現的HotJava瀏覽器(支持Java applet)顯示了Java的魅力:跨平台、動態Web、Internet計算。從此,Java被廣泛接受並推動了Web的迅速發展,常用的瀏覽器均支持Javaapplet。另一方面,Java技術也不斷更新。Java自面世后就非常流行,發展迅速,對C++語言形成有力沖擊。在全球雲計算和移動互聯網的產業環境下,Java更具備了顯著優勢和廣闊前景。[引用自百度百科]

Java語言的特點

優點

1、簡單。

Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java。另一方面,Java丟棄了C++中很少使用的、很難理解的、令人迷惑的那些特性。去掉了C和C++中許多復雜功能,如指針、操作符重載、多繼承、自動的強制類型轉換,沒有goto語句,沒有struct和union等。特別地,Java語言不使用指針,並提供了自動的廢料收集,使得程序員不必為內存管理而擔憂。

 

2、面向對象。

面向對象可以說是Java最基本的特性。Java語言的設計完全是面向對象的,它不支持類似C語言那樣的面向過程的程序設計技術。所有的Java程序和applet均是對象,Java支持靜態和動態風格的代碼繼承及重用。它比C++更徹底,純度更高。Java語言提供類、接口和繼承等原語,為了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,並支持類與接口之間的實現機制(關鍵字為implements)。

 

3、跨平台性。

與平台無關是 Java 語言最大的優勢。其它語言編寫的程序面臨的一個主要問題是 操作系統的變化,處理器升級以及核心系統資源的變化,都可能導致程序出現錯誤或無法運行。Java的虛擬機成功地解決了這個問題,Java編寫的程序可以在任何安裝了 Java虛擬機 JVM 的計算機上正確的運行,Sun公司實現了自己的目標 “一次寫成,處處運行”

具體表現為:

  • 結構中立:Java程序(后綴為java的文件)在Java平台上被編譯為體系結構中立的字節碼格式(后綴為class的文件),然后可以在實現這個Java平台的任何系統中運行。這種途徑適合於異構的網絡環境和軟件的分發。
  • 可移植:這種可移植性來源於體系結構中立性,另外,Java還嚴格規定了各個基本數據類型的長度。Java系統本身也具有很強的可移植性,Java編譯器是用Java實現的,Java的運行環境是用ANSI C實現的。
  • 解釋型:Java程序在Java平台上被編譯為字節碼格式,然后可以在實現這個Java平台的任何系統中運行。在運行時,Java平台中的Java解釋器對這些字節碼進行解釋執行,執行過程中需要的類在聯接階段被載入到運行環境中。

 

4、健壯的。

Java的強類型機制、異常處理、廢料的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。Java的安全檢查機制使得Java更具健壯性。

 

5、安全性。

作為網絡語言,安全是非常重要的。Java的安全性可從兩個方面得到保證。一方面,在Java語言里,像指針和釋放內存等C++功能被刪除,避免了非法內存操作。另一方面,當Java用來創建瀏覽器時,語言功能和一類瀏覽器本身提供的功能結合起來,使它更安全。Java語言在你的機器上執行前,要經過很多次的測試。它經過代碼校驗,檢查代碼段的格式,檢測指針操作,對象操作是否過分以及試圖改變一個對象的類型。另外,Java擁有多個層次的互鎖保護措施,能有效地防止病毒的入侵和破壞行為的發生。

 

6、多線程。

在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來創建。通常有兩種方法來創建線程:其一,使用型構為Thread(Runnable)的構造子將一個實現了Runnable接口的對象包裝成一個線程,其二,從Thread類派生出子類並重寫run方法,使用該子類創建的對象即為線程。值得注意的是Thread類已經實現了Runnable接口,因此,任何一個線程均有它的run方法,而run方法中包含了線程所要運行的代碼。線程的活動由一組方法來控制。Java語言支持多個線程的同時執行,並提供多線程之間的同步機制(關鍵字為synchronized)。

 

7、動態的。

Java語言的設計目標之一是適應於動態變化的環境。Java程序需要的類能夠動態地被載入到運行環境,也可以通過網絡來載入所需要的類。這也有利於軟件的升級。另外,Java中的類有一個運行時刻的表示,能進行運行時刻的類型檢查。

 

缺點

當然,所有的事情都不可能是完美的,有優點必然會有缺點。

1、效率:因為要先經過編譯和垃圾回收機制等,所以速度比較慢!不適合大型的程序,網絡游戲等的編程!

2、復雜性,正因為它的功能強大,因此也增加了其復雜性,像當今流行的框架有很多,什么struts,spring,jQuery等等,無疑增加了java的復雜性。

 

Java的運行機制

其他高級語言的運行機制

計算機高級語言按照程序執行方式可以分為編譯型解釋型

編譯型語言是指在程序執行之前,首先會有一個單獨的編譯過程,針對特定的平台(操作系統),將高級語言翻譯成機器語言,以后執行這個程序的時候,便可以直接運行,這樣編譯后可以脫離開發環境獨立運行,效率也可以高一些。但也有一個缺點,那就是編譯語言被編譯成特定平台上的機器碼,通常無法直接轉移到其他平台運行,如果有需求,需要重新將源代碼轉移到特定平台,針對部分平台進行修改之后,重新編譯。C/C++ 等都是編譯型語言。

解釋型語言是指在運行時才將程序翻譯成機器語言,跨平台性較好,但不足之處就是每次執行都需要進行一次編譯。相當於把編譯型語言中的編譯和解釋的過程混合到一起同時完成。Ruby,Python等都是解釋型語言。

Java程序的運行機制

 Java語言比較特殊,Java語言編寫的程序也需要經過編譯步驟,只不過它並不是編譯成特定語言的機器碼,而是生產與機器無關的字節碼(*.class文件)。這種字節碼不能直接運行,需要經過Java解釋器(JVM Java虛擬機)來運行。因此,Java語言是先編譯,后解釋,將這兩個步驟分開。

JVM虛擬機

上面介紹到,Java程序將字節碼運行需要JVM虛擬機,下面我們來認識一下它。

Java虛擬機,即JVM(Java Virtual Machine)。當Java編譯器編譯Java代碼的時候,生成的是面向JVM的字節碼,再由JVM面向各操作系統,因此使用Java語言編寫的程序,實際上是運行在JVM之上,而不是運行在操作系統上。

它有一個解釋器組件,可以實現Java字節碼和計算機操作系統之間的通信。

 JVM類似於一個抽象的計算機,和實際的計算機一樣,它具有指令集並使用不同的存儲區域。復雜執行指令,管理數據、內存和寄存器。

 JAVA開發工具包JDK(Java Development Kit)

JDK是JAVA開發工具包的簡稱,是Sun提供的一套用於開發Java程序的開發包。它提供了編譯,運行Java程序所需的各種工具和資源。包含Java編譯器,Java運行時環境,常用Java類庫等。

Java運行時環境Jre(Java Runtime Environment)

Jre是運行Java程序的必備條件,Jre包含JVM,JVM是運行Java程序的核心虛擬機,而運行Java程序不僅需要核心虛擬機,還需要類加載器,字節碼校驗器以及大量基礎類庫,而JDK還包含了開發工具,因此如果只需要運行Java程序,只需要安裝Jre即可。

Sun把Java分為Java SE、Java EE、Java ME。

  • J2SE(Standard Edition):標准版,適用於普通應用程序的開發;
  • J2EE(Enterprise Edition):企業版,適用於大型企業級應用程序的開發;
  • J2ME(Mirco Edition):微型版,適用於移動設備或嵌入式設備的程序開發。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM