2000字讀懂Java的來源

title: Java的來源 html

blog: CSDNjava

data: Java學習路線及視頻程序員

1.Java市場

截至2020-03: Java的市場份額爲17.78%web

2. Java語言簡介

  • SUN(Stanford University Network,斯坦福大學網絡公司 ) 1995年推出的一 門高級編程語言。
  • 是一種面向Internet的編程語言。Java一開始富有吸引力是由於Java程序能夠 在Web瀏覽器中運行。這些Java程序被稱爲Java小程序(applet)。applet使 用現代的圖形用戶界面與Web用戶進行交互。 applet內嵌在HTML代碼中。
  • 隨着Java技術在web方面的不斷成熟,已經成爲Web應用程序的首選開發語言。

後臺開發語言:Java、PHP、Python、Go、Node.js編程

3. Java發展史

4. Java技術體系平臺

5. Java在各領域的應用

  • 從Java的應用領域來分,Java語言的應用方向主要表如今如下幾個方面:小程序

    • 企業級應用:主要指複雜的大企業的軟件系統、各類類型的網站。Java的安全機制以及它的跨平臺的優點,使它在分佈式系統領域開發中有普遍應用。應用領域包括金融、電信、交通、電子商務等。瀏覽器

    • Android平臺應用:Android應用程序使用Java語言編寫。Android開發水平的高低很大程度上取決於Java語言核心能力是否紮實。安全

    • 大數據平臺開發:各種框架有Hadoop,spark,storm,flink等,就這類技術生態圈來說,還有各類中間件如flume,kafka,sqoop等等 ,這些框架以及工具大多數是用Java編寫而成,但提供諸如Java,scala,Python,R等各類語言API供編程。網絡

    • 移動領域應用:主要表如今消費和嵌入式領域,是指在各類小型設備上的應用,包括手機、PDA、機頂盒、汽車通訊設備等。多線程

6.Java語言的誕生

java之父James Gosling團隊在開發」Green」項目時,發現C缺乏垃圾回收系統,還有可移植的安全性、分佈程序設計和多線程功能。最後,他們想要一種易於移植到各類設備上的平臺

Java確實是從C語言和C++語言繼承了許多成份,甚至能夠將Java當作是類C語言發展和衍生的產物。好比Java語言的變量聲明,操做符形式,參數傳遞,流程控制等方面和C語言、C++語言徹底相同。但同時,Java是一個純粹的面向對象的程序設計語言,它繼承了C++語言面向對象技術的核心。Java捨棄了C語言中容易引發錯誤的指針(以引用取代)、運算符重載(operator overloading)、多重繼承(以接口取代)等特性,增長了垃圾回收器功能用於回收再也不被引用的對象所佔據的內存空間。JDK1.5又引入了泛型編程(GenericProgramming)、類型安全的枚舉、不定長參數和自動裝/拆箱

8qI81S.png

7.Java語言的主要特性

  • Java語言是易學的
    • Java語言的語法與C語言和C++語言很接近,使得大多數程序員很容易學習和使用Java
  • Java語言是強制面向對象的
    • Java語言提供類、接口和繼承等原語,爲了簡單起見,只支持類之間的單繼承,但支持接口之間的多繼承,並支持類與接口之間的實現機制關鍵字爲implements。
  • Java語言是分佈式的
    • Java語言支持Internet應用的開發,在基本的Java應用編程接口中有一個網絡應用編程接口(java net),它提供了用於網絡應用編程的類庫,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(遠程方法激活)機制也是開發分佈式應用的重要手段。
  • Java語言是健壯的
    • Java的強類型機制、異常處理、垃圾的自動收集等是Java程序健壯性的重要保證。對指針的丟棄是Java的明智選擇。
  • Java語言是安全的
    • Java一般被用在網絡環境中,爲此,Java提供了一個安全機制以防惡意代碼的攻擊。如:安全防範機制(類ClassLoader),如分配不一樣的名字空間以防替代本地的同名類、字節代碼檢查。
  • Java語言是體系結構中立的
    • Java程序(後綴爲java的文件)在Java平臺上被編譯爲體系結構中立的字節碼格式(後綴爲class的文件),而後能夠在實現這個Java平臺的任何系統中運行。
  • Java語言是解釋型的
    • Java程序在Java平臺上被編譯爲字節碼格式,而後能夠在實現這個Java平臺的任何系統的解釋器中運行
  • Java是性能略高的
    • 與那些解釋型的高級腳本語言相比,Java的性能仍是較優的
  • Java語言是原生支持多線程的
    • 在Java語言中,線程是一種特殊的對象,它必須由Thread類或其子(孫)類來建立。

8.Java程序運行機制及運行過程

Java語言的特色

  • 面向對象
    • 兩個基本概念:類、對象
    • 三大特性:封裝、繼承、多態
  • 健壯性
    • 吸取了C/C++語言的優勢,但去掉了其影響程序健壯性的部分(如指針、內存的申請與釋放等),提供了一個相對安全的內存管理和訪問機制
  • 跨平臺性
    • 經過Java語言編寫的應用程序在不一樣的系統平臺上均可以運行。「Write once , Run Anywhere」
8q7JXD.png

由於有了JVM,同一個Java 程序在三個不一樣的操做系統中均可以執行。這樣就實現了Java 程序的跨平臺性。

Java兩種核心機制

  • Java虛擬機
    • JVM是一個虛擬的計算機,具備指令集並使用不一樣的存儲區域。負責執行指令,管理數據、內存、寄存器。
    • 對於不一樣的平臺,有不一樣的虛擬機。
    • 只有某平臺提供了對應的java虛擬機,java程序纔可在此平臺運行
    • Java虛擬機機制屏蔽了底層運行平臺的差異,實現了「一次編譯,處處運行」
8q7OE9.png 8qHAUA.png
  • 垃圾回收
    • 再也不使用的內存空間應回收—— 垃圾回收。
      • 在C/C++等語言中,由程序員負責回收無用內存。
      • Java 語言消除了程序員回收無用內存空間的責任:它提供一種系統級線程跟蹤存儲空間的分配狀況。並在JVM空閒時,檢查並釋放那些可被釋放的存儲空間。
    • 垃圾回收在Java程序運行過程當中自動進行,程序員沒法精確控制和干預。
    • Java程序還會出現內存泄漏和內存溢出問題嗎?Yes!

9.經常使用的Java開發工具

Java經常使用開發工具介紹

Sublime Text 3 新手安裝教程

IntelliJ IDEA安裝操做步驟

10.結語

8qXr3n.png
相關文章
相關標籤/搜索