Java實戰——簡介

因爲下學期要學習JavaEE因此打算將JavaSE的知識再從新學習一遍,打好基礎的同時也但願本身有新的收穫和更深入的理解。
此次複習主要是參考廖雪峯老師的java教程,每學習完一章對其中一些要點進行總結和歸納。java

簡介

Java最先是由SUN公司(已被Oracle收購)的詹姆斯·高斯林(高司令,人稱Java之父)在上個世紀90年代初開發的一種編程語言,最初被命名爲Oak,目標是針對小型家電設備的嵌入式應用,結果市場沒啥反響。誰料到互聯網的崛起,讓Oak從新煥發了生機,因而SUN公司改造了Oak,在1995年以Java的名稱正式發佈,緣由是Oak已經被人註冊了,所以SUN註冊了Java這個商標。隨着互聯網的高速發展,Java逐漸成爲最重要的網絡編程語言。
Java介於編譯型語言和解釋型語言之間。編譯型語言如C、C++,代碼是直接編譯成機器碼執行,可是不一樣的平臺(x8六、ARM等)CPU的指令集不一樣,所以,須要編譯出每一種平臺的對應機器碼。解釋型語言如Python、Ruby沒有這個問題,能夠由解釋器直接加載源碼而後運行,代價是運行效率過低。而Java是將代碼編譯成一種「字節碼」,它相似於抽象的CPU指令,而後,針對不一樣平臺編寫虛擬機,不一樣平臺的虛擬機負責加載字節碼並執行,這樣就實現了「一次編寫,處處運行」的效果。固然,這是針對Java開發者而言。對於虛擬機,須要爲每一個平臺分別開發。爲了保證不一樣平臺、不一樣公司開發的虛擬機都能正確執行Java字節碼,SUN公司制定了一系列的Java虛擬機規範。從實踐的角度看,JVM的兼容性作得很是好,低版本的Java字節碼徹底能夠正常運行在高版本的JVM上。數據庫

以前只知道java是一種能夠跨平臺運行的語言,可是並不知道其中的緣由,如今明白了java代碼經過本地編譯器編譯造成「java字節碼」,而「java字節碼」能夠在任何平臺的虛擬機(JVM)執行,這樣就實現了「一次編寫,處處執行」。編程

隨着Java的發展,SUN給Java又分出了三個不一樣版本:網絡

  • Java SE:Standard Edition (Java SE就是標準版,包含標準的JVM和標準庫,JAVA平臺的核心)
  • Java EE:Enterprise Edition (Java EE是企業版,它只是在Java SE的基礎上加上了大量的API和庫,以便方便開發Web應用、數據庫、消息服務等,Java EE的應用使用的虛擬機和Java SE徹底相同。)
  • Java ME:Micro Edition (Java ME就和Java SE不一樣,它是一個針對嵌入式設備的「瘦身版」,Java SE的標準庫沒法在Java ME上使用,Java ME的虛擬機也是「瘦身版」。)

名詞解釋

  • JDK:Java Development Kit
  • JRE:Java Runtime Environment
    簡單地說,JRE就是運行Java字節碼的虛擬機。可是,若是隻有Java源碼,要編譯成Java字節碼,就須要JDK,由於JDK除了包含JRE,還提供了編譯器、調試器等開發工具。
    兩者的關係編程語言

  • JSR規範:Java Specification Request
  • JCP組織:Java Community Process工具

爲了保證Java語言的規範性,SUN公司搞了一個JSR規範,凡是想給Java平臺加一個功能,好比說訪問數據庫的功能,你們要先建立一個JSR規範,定義好接口,這樣,各個數據庫廠商都按照規範寫出Java驅動程序,開發者就不用擔憂本身寫的數據庫代碼在MySQL上能跑,卻不能跑在PostgreSQL上。
因此JSR是一系列的規範,從JVM的內存模型到Web程序接口,所有都標準化了。而負責審覈JSR的組織就是JCP。
一個JSR規範發佈時,爲了讓你們有個參考,還要同時發佈一個「參考實現」,以及一個「兼容性測試套件」:學習

  • RI:Reference Implementation
  • TCK:Technology Compatibility Kit

如何運行Java程序

Java源碼本質上是一個文本文件,咱們須要先用javac把Hello.java編譯成字節碼文件Hello.class,而後,用java命令執行這個字節碼文件:
┌───────┐
│ Hello.java │<─── source code
└───────┘
│ compile

┌───────┐
│ Hello.class │<─── byte code
└───────┘
│ execute

┌────────┐
│ Run on JVM │
└────────┘
所以,可執行文件javac是編譯器,而可執行文件java就是虛擬機。開發工具

相關文章
相關標籤/搜索