2020年Java程式語言-基礎概要

ramostear 發佈 2020-01-04T11:46:49+00:00

本篇文章為Java語言的開篇,通過本篇文章的描述,你可以快速地對Java有一個基本的認識。文章將介紹Java的特性,原理以及應用範圍等。1.

本篇文章為Java語言的開篇,通過本篇文章的描述,你可以快速地對Java有一個基本的認識。文章將介紹Java的特性,原理以及應用範圍等。



1. Java程式語言

​ 簡單來說,Java是一種面向對象的高級程式語言,它具備以下一些特性:

  • 易於學習和使用
  • 解釋型語言
  • 面向對象編程
  • 具備多線程能力
  • 平台無關性
  • 可移植性強
  • 高性能
  • 穩健強大
  • 安全性高

有一點需要明確的是,Java是一門解釋型的語言,雖然Java原始碼需要通過Java編譯器進行編譯,但最終這些編譯後的字節碼是通過Java虛擬機(JVM)解釋執行的。下圖是Java軟體開發的一個基本流程:

在Java語言中,所有的原始碼都使用純文本進行編寫,並使用.java作為文件的後綴名,下面是一個Java原始碼的簡單示例:

/**
 * 第一個Java示例應用程式:向世界問好!
 */
public class MyApplication{
    public static void main(String[] args){
        System.out.println("Hello  World!")
    }
}

然後,Java原始碼文件將由javac編譯器編譯為.class文件,一個.class文件包含了所有Java虛擬機(JVM)所需要的字節碼,下面是編譯.java源文件的示例:

javac MyApplication.java

最後,使用Java運行工具,將.class字節碼文件放入Java虛擬機中並運行應用程式,下面是運行Java程序的示例:

java MyApplication

2. Java語言平台無關性

​ Java另一個吸引開發者的特性是一次編譯,到處運行,即跨平台運行。使用Java語言編寫的應用程式可以在任何作業系統和硬體上運行。Java語言是如何做到這一點的?其中的奧妙在於Java編譯器編譯完成的.class字節碼文件與具體的作業系統無關,而在運行時,將由Java虛擬機解釋執行這些字節碼。具體流程如下圖:

從上圖可以看出,經過編譯後的Java源文件,通過JVM(Java虛擬機)可以在不同的作業系統上運行,例如Microsoft Windows Operation System,Solaris作業系統(Solaris Operation System),Linux作業系統(Unix/Linux Operation System)以及Mac作業系統(Mac Operation System)。藉助Java虛擬機,使Java語言真正具備了一次編寫,到處運行的能力(Write Once,Run Anywhere-WORA)。

3. JVM平台相關性

​ 需要特別區分的是:Java語言是平台無關的(跨平台運行),但並不意味著JVM(Java虛擬機)也是平台無關的。JVM用於將字節碼轉換為作業系統可執行的機器語言,但不同的作業系統器其所能執行的二進位機器碼是不一致的,因此,JVM需要依賴於具體的作業系統。不同的作業系統將對應不同的JVM。Windows OS使用的JVM不能在Linux/Unix OS上使用,同理,其他作業系統使用的JVM也不能相互使用,所以,JVM是平台(OS)相關的。我們可以在Oracle官網看到,官方為開發者提供了不同作業系統所使用的JVM。

4. Java 平台

​ 所謂的平台,可以簡單的概括為作業系統和底層硬體的組合,例如Android平台,Microsoft Windows平台,Linux/Unix平台,Mac平台等等。與上述這些平台不同的是,Java平台是一個虛擬化的平台,它只有軟體的部分,也正是因為如此,Java平台可以很容易的在其他的硬體平台上運行。

​ Java平台主要包含兩個部分:

  • Java 虛擬機(JVM-Java Virtual Machine)
  • Java應用程式編程接口(Java API-Java Application Programming Interface)

JVM(Java virtual Machine)不是一個具體的機器(相對於硬體),它是一種基於軟體的抽象機器。JVM定義了一組規範,並提供了在JVM中執行.class字節碼的運行時環境;Java API可以簡單的理解為諸多編程可用的組件集合,這些組件封裝了大量的功能,復用這些現有組件,可以提高編碼時的工作效率。

5. 為什麼選擇Java?

為什麼選擇Java?我們先來看兩張程式語言排行表和走勢圖:

理由一:面向對象的程式語言

Java時面向對象的程式語言,這意味著它遵循一種編程風格:基於類,對象,繼承等概念,這有助於保持系統的靈活性和可擴展性。

理由二:開放原始碼

Java是開源的,它擁有大量可供選擇的代碼庫,與此同時,在Java原始碼的基礎上,開發人員還可以更具項目要求對其進行擴展,最大限度的復用現有的代碼,這使得使用Java開發應用的成本得到降低。

理由三:強大的社區支持

Java有著強大的社區作為支持,在此基礎上,還有很多優秀的第三方廠商都支持Java語言,如我們熟知的Spring,Hibernate,Android等。你可以在各大Java社區中獲得完善的,高質量的文檔,教程,示例等資源。

理由四:跨平台

Java語言是平台獨立的,這意味著它可以在各種平台上運行。Java的經典名言:「Write Once,Run Anywhere」很貼切的表達了Java這一特性,開發人員只需要編寫一份Java代碼,便可藉助JVM在不同的作業系統中運行Java程序。

理由五:分布式

Java語言可以使用遠程方法調用(RMI)來共享系統資源。在網絡區域中,藉助RMI可以輕鬆實現多台伺服器之間的通信和資源共享。

理由六:安全

Java語言的安全性比較高,它提供了對象封裝和數據抽象,我們可以通過這些特性對數據的訪問權限進行控制。

6 .結束語

​ 文章最後,談談一個讓諸多程式設計師一直津津樂道的問題:「誰是世界上最好的語言?」,在這裡,我想藉由一個比喻談談我的看法:

自行車是一個很好的代步工具,綠色環保,小巧方便,通過性好,這就好比某些輕量級的程式語言,容易上手;而四個輪子的汽車相比於自行車而言,駕馭難度大,不那麼環保,體積大,容易堵車,但不能因此說自行車是最好的交通工具,大部分情況下,自行車是娛樂休閒健身使用,而汽車大部分情況是為了效率和速度。如果將Java比作一台汽車的話,我青睞於它的原因是:它能上高速,安全係數高,駕駛舒適,有成就感,而自行車不能上高速,載重也干不過汽車。


關鍵字: