1. 程式人生 > 其它 >java的語言特點

java的語言特點

Java語言特點:

  • 簡單性
  • 面向物件
  • 平臺無關性【可運行於不同的平臺】
  • 穩健性
  • 安全性
  • 可移植性
  • 高效能
  • 多執行緒
  • 編譯和解釋性
  • 分佈性

1.面向物件

  儘管Java是基於C++的,但是相比之下,Java是一種更“純粹”的面向物件程式設計語言。

  面向物件其實是現實世界模型的自然延伸,世間萬物都可以看作為物件。物件之間通過訊息相互作用,現實世界中任何實體都以歸納成為某類事物,也因此任何物件都是某一類事物的例項,如果說傳統的程序式程式設計語言是以過程為中心以演算法為驅動的話,面向物件的程式語言則是以物件為中心以訊息為驅動。用公式表示,程序式程式設計語言為:程式=演算法+資料;面向物件程式語言為:程式=物件+訊息。

  面嚮物件語言都支援三個概念:封裝,多型和繼承,Java也不例外。現實世界中的物件均有屬性和行為,對映到計算機程式上,屬性則表示物件的各個欄位資料,行為表示物件的方法(方法的作用是處理資料或同外界互動)。所謂封裝,就是用一個自主式框架把物件的資料和方法聯在一起形成一個整體。可以說,物件是支援封裝的手段,是封裝的基本單位。Java語言的封裝性較強,因為Java無全程變數,無主函式,在Java中絕大部分成員是物件,只有簡單的數字型別、字元型別和布林型別除外。而對於這些型別,Java也提供了相應的物件型別以便與其他物件互動操作。

  Alan Kay曾總結了第一個成功的面嚮物件語言,同時也是Java所基於的語言之一Smalltalk的五個基本特徵:

  1萬物皆物件。將物件視為奇特的變數,它可以儲存資料,除此之外,你還可以要求它在自身上執行操作。理論上講,你可以抽取待求問題的任何概念概念化構件(狗,建築物,服務等),將其表示為程式中的物件。

  2程式時物件的集合,他們通過傳送訊息來告知彼此所要做的。要想請求一個物件,就必須對該物件傳送一條訊息。更具體地說,可以把訊息想象為對某個特定物件的方法的呼叫請求。

  3每個物件都有自己的由其它物件所構成的儲存。換句話說,可以通過建立包含現有物件的包的方式來建立新型別的物件。因此,可以在程式中構件複雜的體系,同時將其複雜性隱藏在物件的簡單性背後。

  4每個物件都擁有其型別。按照通用的說法,“每個物件都是某個類(class)的一個例項(instance)”,這裡“類”就是“型別”的同意詞。每個類最重要的區別於其他類的特性就是“可以傳送什麼樣的訊息給他”。

  5某個特定型別的所有物件都可以接收同樣的訊息。這是一句意味深長的表述,比如因為“圓形”型別的物件同時也是“幾何形”型別的物件,所以一個“圓形”物件必定能夠接受傳送給“幾何形”物件的訊息。這意味著可以編寫“幾何形”互動並自動處理所有與幾何形性質相關的事物的程式碼

2. 簡單性

  Java 語法是 C++ 語法的一個“ 純淨” 版本。這裡沒有標頭檔案、 指標運算(甚至指 針語法)、結構、 聯合、操作符過載、 虛基類等。如果你瞭解 C++ 就會發現可以輕而易舉地轉換到 Java語法。

3. 分散式

  Java 有一個豐富的例程庫, 用於處理像 HTTP 和 FIT 之類的 TCP/IP 協議。Java 應用 程式能夠通過 URL 開啟和訪問網路上的物件,其便捷程度就好像訪問本地檔案一樣。

4. 健壯性

  Java 編譯器能夠檢測許多在其他語言中僅在執行時才能夠檢測出來的問題。

5. 安全性

  從一開始,Java 就設計成能夠防範各種攻擊,其中包括:

  (1)執行時堆疊溢位。 如蠕蟲和病毒常用的攻擊手段。

  (2)破壞自己的程序空間之外的記憶體。

  (3) 未經授權讀寫檔案。

6. 體系結構中立性

  編譯器生成一個體繫結構中立的目標檔案格式,這是一種編譯過的程式碼, 只要有 Java 執行時系統, 這些編譯後的程式碼可以在許多處理器上執行。

7. 可移植性

  在 Java 中,資料型別具有固定的大小, 這消除了程式碼移植時令 人頭痛的主要問題。 二進位制資料以固定的格式進行儲存和傳輸, 消除了位元組順序的困擾。字 符串是用標準的 Unicode 格式儲存的。

8. 解釋性

  Java 直譯器可以在任何移植瞭解釋器的機器上執行 Java 位元組碼。由於連結是一 個增量式且輕量級的過程, 所以, 開發過程也變得更加快捷, 更加具有探索性。

9. 高效能

  位元組碼可以(在執行時刻)動態地翻譯成對應執行這個應用的特定 CPU 的機 器碼。

10. 多執行緒

  多執行緒可以帶來更好的互動響應和實時行為。

11. 動態性

  Java 與 C 或 C++ 相比更加具有動態性。它能夠適應不斷髮展 的環境庫中可以自由地新增新方法和例項變數, 而對客戶端卻沒有任何影響。在 Java 中找出執行時型別資訊十分簡單。

java零基礎視訊推薦

https://www.bilibili.com/video/BV1qL411u7eE?from=search&seid=8830483804040564676&spm_id_from=333.337.0.0