重溫Java(一):Java入門

說明:重溫Java系列是本人結合資料重新學習Java時整理的筆記,主要參考資料如下,如有侵權,請聯繫刪除!

參考資料:

  • 高淇 Java300集視頻
  • Java 核心卷一
  • 碼出高效Java開發手冊
  • 明解Java
  • Oracle官方教程

說明:本系列以高淇Java300集視頻爲主線,形成整體的知識體系,然後通過所列資料對知識點補充、修改;如有遺漏,錯誤,請指正!

本章目錄:

  1. Java版本介紹
  2. Java的特點
  3. Java運行機制
  4. JVM、JRE和JDK
  5. Java程序員入門儀式

正文

1.Java版本介紹

Java分爲以下三個版本:
JavaSE(Java Standard Edition):標準版,定位於客戶端,主要用於桌面或簡單服務器的應用開發,這個版本是Java平臺的核心,它提供了豐富的API(Application Program Interface, 應用程序接口)來開發相關應用,包括用戶界面接口AWT及Swing、網絡功能與國際化、圖像處理以及輸入輸出等。

JavaEE(Java Enterprise Edition):企業版,定位於複雜服務器應用的開發,主要用於分佈式網絡程序開發,比如阿里巴巴的電子商務網站。

JavaME(Java Micro Edition):微型版,定位於手機和其他小型設備的應用開發。

三個版本之間的關係,如圖所示:
Java三個版本之間的關係圖

2.Java的特點

Java是一種高級語言,具備以下特點:

  1. Simple 簡單
  2. Object oriented 面向對象
  3. Distributed 分佈式
  4. Multithreaded 多線程
  5. Dynamic 動態性
  6. Architecture neutral 體系結構中立
  7. Portable 可移植性
  8. High performance 高性能
  9. Robust 健壯性
  10. Secure 安全性
    以上10個特點摘自Oracle官方教程,僅作了解即可。

3.Java運行機制

Java最大的優勢就是跨平臺,而跨平臺主要是指字節碼文件可以在任何具有Java虛擬機的計算機或者電子設備上運行,Java虛擬機中的Java解釋器負責將字節碼文件解釋成爲特定的機器碼進行運行。

跨平臺其實是通過在不同的操作系統上安裝相應的虛擬機實現。下面可以來看一下Java運行機制。

首先要知道目前編程語言主要分爲:編譯型和解釋型,而Java則是兩者的結合。

Java的源文件(Source File)的後綴名爲.java;需要通過編譯器(javac)將源文件編譯(Compile)成以.class爲後綴名的字節碼文件;最後通過虛擬機(Java解釋器)解釋執行。
java運行機制
正是因爲虛擬機可以安裝在不同的操作系統中(操作系統的不同是因爲計算機只認識二進制的機器語言,並且不同平臺的計算機,其機器語言指令都是不同),通過虛擬機將Java源碼編譯成.class文件然後解釋成對應平臺認識的機器語言,所以Java程序可以在不同操作系統上運行。(.class二進制文件是平臺獨立的結構中立的)
Java跨平臺
Java跨平臺的原理,簡單總結一下:

  1. 一次編譯,到處運行
  2. 編譯器:將源碼編譯成class文件
  3. 虛擬機:將class文件的字節碼解釋成對應平臺的機器語言並執行
  4. 解釋器是虛擬機的一個重要組成部分
  5. Java語言的執行的需要經過編譯和解釋兩個階段。

4.JVM、JRE和JDK

JVM(Java Virtual Machine)就是一個虛擬的用於執行字節碼的“虛擬計算機”。它定義了指令集、寄存器集、結構棧、垃圾收集堆、內存區域。JVM負責將Java字節碼解釋執行,邊解釋邊運行,速度就會受到一定的影響。
不同的操作系統有不同的虛擬機。Java虛擬機機制屏蔽了底層運行平臺的差異,實現了跨平臺,也就是“一次編譯,隨處運行”。
JVM
JRE(Java Runtime Environment)就是Java運行環境,包含Java虛擬機(JVM)、庫函數、運行Java應用程序所須的文件。
JDK(Java Development Kit)就是Java開發工具包,包含JRE以及編譯器和調試器等用於程序開發的文件。
JVM、JRE、JDK三者關係圖
Java虛擬機總結:

• JVM是Java Virtual Machine(Java虛擬機)的縮寫
• JVM是一種用於計算設備的規範,它是一個虛構出來的計算機,是通過在實際的計算機上仿真模擬各種計算機功能來實現的。
• JVM就是一個虛擬的用於執行bytecodes字節碼的計算機
• Java虛擬機是Java最核心技術,也是跨平臺的基礎。
• Java語言使用Java虛擬機屏蔽了與具體平臺相關的信息,使得Java語言編譯程序只需生成在Java虛擬機上運行的目標代碼(字節碼),就可以在多種平臺上不加修改地運行。
• Java虛擬機在執行字節碼時,把字節碼解釋成具體平臺上的機器指令執行。這就是Java的能夠“一次編譯,到處運行”的原因

補充:

平臺是程序運行的軟硬件環境,前面說過Java也是一個平臺,只不過Java是一個基於硬件基礎上的純軟件平臺。Java平臺包括兩部分:

  1. The Java Virtual Machine Java虛擬機
  2. The Java Application Programming Interface(API) Java應用程序接口
    前面已經介紹了Java虛擬機,是Java語言的核心基礎;
    API是一個提供了大量現成軟件組件的集合,提供了許多有用的功能。它被分爲相關類和接口的庫;這些庫稱爲包。
    在這裏插入圖片描述
    Java虛擬機和API使Java程序和底層硬件相互隔離,所以Java程序可以不用過多的關注底層硬件;但是這也使Java語言運行會慢了一點。隨着硬件性能提升和Java平臺的不斷優化,Java語言的速度不會成爲限制其發展的瓶頸。

5.Java程序員入門儀式

Java開發的準備:

  1. 安裝JDK
    Java是一門面向對象的編程語言,其最大的優勢就是“跨平臺”,想要實現跨平臺,必須安裝Java必備的運行環境,而對於Java開發人員來說不但要安裝運行環境,還要安裝Java的開發工具,具體的安裝過程參考:https://blog.csdn.net/u012187452/article/details/72595040#comments
  2. 安裝Java開發工具
    常用Java開發工具
    • 文本編輯器(選擇任意一個)
    • UltraEdit
    • EditPlus
    • notepad++
    • 集成開發環境(IDE:Integrated Development Environment)
    • JBuilder (http://www.borland.com)(基本淘汰)
    • Eclipse (http://www.eclipse.org)****開源 解壓即可(重點)
    • MyEclipse:若進行J2EE開發,還要加MyEclipse插件。MyEclipse是Eclipse的插件,也是一款功能強大的J2EE集成開發環境。現在直接安裝集成Eclipse的MyEclipse即可。商業軟件
    • NetBeans(http://java.sun.com
    • IntelliJ IDEA(https://www.jetbrains.com/idea/)(強烈推薦)

第一個Java程序

/**
 * Created by lining on 2019/6/15.
 *
 * The HelloWorld class implements an application that
 * simply prints "Hello World! I am Coming!" to standard output.
 */
public class HelloWorld {
    public static void main(String[] args) {
        System.out.println("Hello World! I am Coming!"); // Display the string.
    }
}

運行結果:
在這裏插入圖片描述
我們來分析一下這個代碼

我們可以發現這部分源碼主要包括三部分:源碼註釋、類定義和Main方法。

第一部分:源碼註釋

/**
 * Created by lining on 2019/6/15.
 *
 * The HelloWorld class implements an application that
 * simply prints "Hello World! I am Coming!" to standard output.
 */

這部分就是源碼的註釋,用來說明源碼的作用,可以提高源碼的可讀性。Java編譯器在編譯源碼是會跳過註釋,所以註釋不會出現在字節碼文件中。

Java提供了三種註釋:

/* text */ 

多行註釋 Java 編譯器會忽略 //之間的內容,多行註釋也叫作傳統註釋(traditional comment),這是因爲其註釋形式和C語言的註釋形式相同

/** documentation */

文檔註釋(documentation comment) Java編譯器同樣會忽略/** 和*/之間的內容;可以通過JDK提供的Javadoc命令,生成程序的API文檔。

// text

單行註釋(end of line comment)註釋內容從//到本行結尾

第二部分:類定義

// 這是程序的類定義
public class HelloWorld {

}  

上面代碼的意思就是名稱爲HelloWorld的類(class)的類定義或類聲明(class declaration)。class關鍵字後面就是類名稱,類名稱後面會緊跟着一對大括號{},{}中間的代碼就是Java源碼。

第三部分:main方法

public static void main(String[] args) {
	// java語句
}

這就是main方法的定義,每一個獨立的Java應用程序都必須有main方法。

  • 修飾符public和static的組合可以是public static或者static public,一般約定使用public static;方法的入參名稱可以隨意,但是一般都是args或者argv。
  • Main方法和C、C++語言的Main方法相像,都是程序的入口,main方法可以調用其他方法。
  • Main方法接受一個入參,類型是字符串數組
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章