我肝了一個月,給你寫出了這本Java開發手冊。

我肝了一個月,給你寫出了這本Java開發手冊。

這是程序員cxuan的第四篇硬核分享java

先來看一下本篇文章的思惟導圖吧,我會圍繞下面這些內容進行講解。內容很乾,小夥伴們看完還但願不吝轉發。(高清思惟導圖版本關注做者公衆號 Java建設者 回覆 Java666 獲取,其餘思惟導圖獲取方式在文末)。
我肝了一個月,給你寫出了這本Java開發手冊。程序員

下面開始咱們的文章。編程

Java 概述

什麼是 Java?安全

Java 是 Sun Microsystems 於1995 年首次發佈的一種編程語言和計算平臺。編程語言還比較好理解,那麼什麼是 計算平臺 呢?多線程

「計算平臺是在電腦中運行應用程序(軟件)的環境,包括硬件環境和軟件環境。通常系統平臺包括一臺電腦的硬件體系結構、操做系統、運行時庫。框架

Java 是快速,安全和可靠的。從筆記本電腦到數據中心,從遊戲機到科學超級計算機,從手機到互聯網,Java 無處不在!Java 主要分爲三個版本編程語言

  • JavaSE(J2SE)(Java2 Platform Standard Edition,java平臺標準版)
  • JavaEE(J2EE)(Java 2 Platform,Enterprise Edition,java平臺企業版)
  • JavaME(J2ME)(Java 2 Platform Micro Edition,java平臺微型版)。

Java 的特色ide

Java 是一門面向對象的編程語言性能

什麼是面向對象?面向對象(Object Oriented) 是一種軟件開發思想。它是對現實世界的一種抽象,面向對象會把相關的數據和方法組織爲一個總體來看待。編碼

相對的另一種開發思想就是面向過程的開發思想,什麼面向過程?面向過程(Procedure Oriented) 是一種以過程爲中心的編程思想。舉個例子:好比你是個學生,你天天去上學須要作幾件事情?

起牀、穿衣服、洗臉刷牙,吃飯,去學校。通常是順序性的完成一系列動做。

class student {
  void student_wakeUp(){...}
   void student_cloth(){...}
   void student_wash(){...}
   void student_eating(){...}
   void student_gotoSchool(){...}
}

而面向對象能夠把學生進行抽象,因此這個例子就會變爲

class student(){
   void wakeUp(){...}
   void cloth(){...}
   void wash(){...}
   void eating(){...}
   void gotoSchool(){...}
}

能夠不用嚴格按照順序來執行每一個動做。這是特色一。

  • Java 摒棄了 C++ 中難以理解的多繼承、指針、內存管理等概念;不用手動管理對象的生命週期,這是特徵二。
  • Java 語言具備功能強大和簡單易用兩個特徵,如今企業級開發,快速敏捷開發,尤爲是各類框架的出現,使 Java 成爲愈來愈火的一門語言。這是特色三。
  • Java 是一門靜態語言,靜態語言指的就是在編譯期間就可以知道數據類型的語言,在運行前就可以檢查類型的正確性,一旦類型肯定後就不能再更改,好比下面這個例子。
public void foo() {
    int x = 5;
    boolean b = x;
}

靜態語言主要有 Pascal, Perl, C/C++, JAVA, C#, Scala 等。

相對應的,動態語言沒有任何特定的狀況須要指定變量的類型,在運行時肯定的數據類型。好比有Lisp, Perl, Python、Ruby、JavaScript 等。

從設計的角度上來講,全部的語言都是設計用來把人類可讀的代碼轉換爲機器指令。動態語言是爲了可以讓程序員提升編碼效率,所以你可使用更少的代碼來實現功能。靜態語言設計是用來讓硬件執行的更高效,所以須要程序員編寫準確無誤的代碼,以此來讓你的代碼儘快的執行。從這個角度來講,靜態語言的執行效率要比動態語言高,速度更快。這是特色四。

  • Java 具備平臺獨立性和可移植性

Java 有一句很是著名的口號:Write once, run anywhere,也就是一次編寫、處處運行。爲何 Java 可以吹出這種牛批的口號來?核心就是 JVM。咱們知道,計算機應用程序和硬件之間會屏蔽不少細節,它們之間依靠操做系統完成調度和協調,大體的體系結構以下

我肝了一個月,給你寫出了這本Java開發手冊。

那麼加上 Java 應用、JVM 的體系結構會變爲以下

我肝了一個月,給你寫出了這本Java開發手冊。

Java 是跨平臺的,已編譯的 Java 程序能夠在任何帶有 JVM 的平臺上運行。你能夠在 Windows 平臺下編寫代碼,而後拿到 Linux 平臺下運行,該如何實現呢?

首先你須要在應用中編寫 Java 代碼;

用 Eclipse 或者 javac 把 Java 代碼編譯爲 .class 文件;

而後把你的 .class 文件打成 .jar 文件;

而後你的 .jar 文件就可以在 Windows 、Mac OS X、Linux 系統下運行了。不一樣的操做系統有不一樣的 JVM 實現,切換平臺時,不須要再次編譯你的 Java 代碼了。這是特色五。

  • Java 可以容易實現多線程

Java 是一門高級語言,高級語言會對用戶屏蔽不少底層實現細節。好比 Java 是如何實現多線程的。從操做系統的角度來講,實現多線程的方式主要有下面這幾種

在用戶空間中實現多線程

在內核空間中實現多線程

在用戶和內核空間中混合實現線程

而我認爲 Java 應該是在 用戶空間 實現的多線程,內核是感知不到 Java 存在多線程機制的。這是特色六。

  • Java 具備高性能

咱們編寫的代碼,通過 javac 編譯器編譯稱爲 字節碼(bytecode),通過 JVM 內嵌的解釋器將字節碼轉換爲機器代碼,這是解釋執行,這種轉換過程效率較低。可是部分 JVM 的實現好比 Hotspot JVM 都提供了 JIT(Just-In-Time) 編譯器,也就是一般所說的動態編譯

相關文章
相關標籤/搜索