1. 程式人生 > >《瘋狂Java講義(第4版)》-----第1章【Java語言概述與開發環境】

《瘋狂Java講義(第4版)》-----第1章【Java語言概述與開發環境】

編譯型語言和解釋型語言

  • 編譯型語言:程式在執行之前需要一個專門的編譯過程,把程式編譯成
    為機器語言的檔案,執行時不需要重新翻譯,直接使用編譯的結果就行了。程式執行效率高,依賴編譯器(翻譯成的是特定平臺的機器語言,要是跨平臺還是需要拷貝原始碼再重新編譯),跨平臺性差些。如C、C++、Delphi等

  • 解釋性語言:編寫的程式不進行預先編譯,以文字方式儲存程式程式碼。在釋出程式時,看起來省了道編譯工序。但是,在執行程式的時候,解釋性語言必須先解釋再執行。每個平臺上的直譯器負責將源程式解釋成特定平臺的機器指令即可。解釋型語言可以方便實現源程式的移植,但是以犧牲程式執行效率為代價的。

Java語言的執行機制

在這裡插入圖片描述
JVM、JRE、JDK

  • JVM是一個抽象的計算機,和實際計算機一樣,具有指令集,負責執行指令,管理資料、記憶體和暫存器。
  • JRE(Java Runtime Environment)Java執行時環境。
  • JDK(Java SE Development Kit)Java標準版開發包,是Oracle提供的一套用於開發Java應用程式的開發包,提供了編譯、執行Java程式所需的各種工具和資源,包括Java編譯器、JRE以及常用的Java類庫等
  • Java EE SDK(Software Development Kit)包含JDK

環境變數配置

我的電腦—右鍵—屬性—高階系統設定—環境變數,新增下面這個系統變數,把JDK安裝的路徑拷貝過來,填寫在變數值裡。
在這裡插入圖片描述


編輯Path,新增兩個值如下。如果顯示的是一行路徑,沒有這麼分行顯示,直接把這兩個路徑新增在前面的路徑後面。注意每兩個路徑之間要有英文狀態下的分號隔開。
在這裡插入圖片描述
配置好環境後,測試是否安裝成功?
Windows+R組合鍵,輸入cmd回車,進入命令列介面,分別輸入javac和java,出現下面介面,表明環境配置成功。
在這裡插入圖片描述
在這裡插入圖片描述

第一個Java程式

在記事本中寫如下程式碼:

public class HelloWorld{
	
	public static void main(String[] args){
		System.out.println("Hello World!");
	}

}

然後,儲存,並把檔名改為HelloWorld.java,筆者把該檔案放在了D盤的根目錄下,並把命令列目錄切換到D盤,然後執行javac,java命令,就完成了第一個程式的執行!具體如下:
在這裡插入圖片描述

  • 注意:執行javac命令後,會生成.class檔案,源程式裡面有幾個類就會生成幾個.class檔案

  • 注意:如果去除main方法,再用javac命令,仍會生成相應的.class檔案,但是再用java命令,會報錯,找不到main方法。因為Java直譯器規定:如果某個類能被直譯器直接解釋執行,則這個類必須包含main方法。Java虛擬機器是從main方法開始解釋執行,main方法是Java程式的入口。

  • 注意:.java檔案最多隻含有一個public類,如果有public類,.java檔名必須和public類名相同。

垃圾回收

Java程式的記憶體分配和回收都是由JRE在後臺自動進行的。通常JRE會提供一個後臺執行緒來進行檢測和控制,一般都是在CPU空閒或記憶體不足時自動進行垃圾回收,而程式設計師無法精確控制垃圾回收的時間和順序等。

Java的堆記憶體儲存著正在執行的應用程式所建立的所有物件。所有JVM的實現都有一個垃圾回收器管理的堆記憶體。

當一個物件沒有被引用時,就成了記憶體垃圾。JVM垃圾回收器除了可以釋放垃圾物件的記憶體,還可以清除記憶體碎片。碎片整理將佔用的堆記憶體移到堆的一端。垃圾回收器只能回收記憶體資源,對物理資源,如資料庫連線、磁碟I/O資源等無能為力。為了更快地讓垃圾回收器回收不用的物件,可以讓這個物件的引用變數設定為null。