1. 程式人生 > 其它 >Java本科學習 0x01 基礎

Java本科學習 0x01 基礎

題記

手把青秧插滿田,
低頭便見水中天。
六根清淨方為道,
退步原來是向前。
—— 《插秧詩》

1. Java概述

1.1 Java語言發展史(瞭解)

語言:人與人交流溝通的表達方式

計算機語言:人與計算機之間進行資訊交流溝通的一種特殊語言

Java語言是美國Sun公司(Stanford University Network)在1995年推出的計算機語言

Java之父:詹姆斯·高斯林(James Gosling)

2009年,Sun公司被甲骨文公司收購,所以我們現在訪問oracle官網即可:https://www.oracle.com

當前,我們課程使用的JDK版本:11.0

1.2 Java語言跨平臺原理(理解)

Java程式並非是直接執行的,Java編譯器將Java源程式編譯成與平臺無關的位元組碼檔案(class檔案),然後由Java虛擬機器(JVM)對位元組碼檔案解釋執行。所以在不同的作業系統下,只需安裝不同的Java虛擬機器即可實現java程式的跨平臺。

1.3 JRE和JDK(記憶)

JVM(Java Virtual Machine),Java虛擬機器

JRE(Java Runtime Environment),Java執行環境,包含了JVM和Java的核心類庫(Java API)

JDK(Java Development Kit)稱為Java開發工具,包含了JRE和開發工具

總結:我們只需安裝JDK即可,它包含了java的執行環境和虛擬機器。

1.4 JDK的下載和安裝(應用)

1.4.1 下載

通過官方網站獲取JDK

http://www.oracle.com

注意:針對不同的作業系統,需要下載對應版本的JDK。

具體下載步驟請參見《JDK下載及安裝說明文件》

1.4.2 安裝

傻瓜式安裝,下一步即可。但預設的安裝路徑是在C:\Program Files下,為方便統一管理建議修改安裝路徑,將與開發相關的軟體都安裝到一個目錄下,例如:E:\develop。

注意:安裝路徑不要包含中文或者空格等特殊字元(使用純英文目錄)。

具體安裝步驟請參見《JDK下載及安裝說明文件》

1.4.3 JDK的安裝目錄介紹

目錄名稱 說明
bin 該路徑下存放了JDK的各種工具命令。javac和java就放在這個目錄。
conf 該路徑下存放了JDK的相關配置檔案。
include 該路徑下存放了一些平臺特定的標頭檔案。
jmods 該路徑下存放了JDK的各種模組。
legal 該路徑下存放了JDK各模組的授權文件。
lib 該路徑下存放了JDK工具的一些補充JAR包。

2. 入門程式HelloWorld

2.1 常用DOS命令(應用)

在接觸整合開發環境之前,我們需要使用命令列視窗對java程式進行編譯和執行,所以需要知道一些常用DOS命令。

1、開啟命令列視窗的方式:win + r開啟執行視窗,輸入cmd,回車。

2、常用命令及其作用

操作 說明
碟符名稱: 碟符切換。E:回車,表示切換到E盤。
dir 檢視當前路徑下的內容。
cd 目錄 進入單級目錄。cd itheima
cd .. 回退到上一級目錄。
cd 目錄1\目錄2... 進入多級目錄。cd itheima\JavaSE
cd \ 回退到碟符目錄。
cls 清屏。
exit 退出命令提示符視窗。

2.2 Path環境變數的配置(應用)

2.2.1 為什麼配置環境變數

開發Java程式,需要使用JDK提供的開發工具(比如javac.exe、java.exe等命令),而這些工具在JDK的安裝目錄的bin目錄下,如果不配置環境變數,那麼這些命令只可以在該目錄下執行。我們不可能把所有的java檔案都放到JDK的bin目錄下,所以配置環境變數的作用就是可以使bin目錄下的java相關命令可以在任意目錄下使用。

注意:目前較新的JDK安裝時會自動配置javac、java命令的路徑到Path環境變數中去 ,所以javac、java可以直接使用。

但是以前下載的老版本的JDK是沒有自動配置的,此時必需要自己配置Path環境變數。

JAVA_HOME:告訴作業系統JDK安裝在了哪個位置(未來其他技術要通過這個找JDK)

Path:告訴作業系統JDK提供的javac(編譯)、java(執行)命令安裝到了哪個位置

注意:新版本的JDK只是自動配置了Path,沒有自動配置JAVA_HOME。

2.3 HelloWorld案例(應用)

HelloWorld案例是指在計算機螢幕上輸出“HelloWorld”這行文字。各種計算機語言都習慣使用該案例作為第一個演示案例。

2.3.1 Java程式開發執行流程

開發Java程式,需要三個步驟:編寫程式,編譯程式,執行程式。

2.3.2 HelloWorld案例的編寫

1、新建文字文件檔案,修改名稱為HelloWorld.java。

2、用記事本開啟HelloWorld.java檔案,輸寫程式內容。

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

2.3.3 HelloWorld案例的編譯和執行

存檔案,開啟命令列視窗,將目錄切換至java檔案所在目錄,編譯java檔案生成class檔案,執行class檔案。

編譯:javac 檔名.java

範例:javac HelloWorld.java

執行:java 類名

範例:java HelloWorld

2.4 HelloWorld案例常見問題(理解)

2.4.1 BUG

在電腦系統或程式中,隱藏著的一些未被發現的缺陷或問題統稱為bug(漏洞)。

2.4.2 BUG的解決

1、具備識別BUG的能力:多看

2、具備分析BUG的能力:多思考,多查資料

3、具備解決BUG的能力:多嘗試,多總結

2.4.3 HelloWorld案例常見問題

1、非法字元問題。Java中的符號都是英文格式的。

2、大小寫問題。Java語言對大小寫敏感(區分大小寫)。

3、在系統中顯示檔案的副檔名,避免出現HelloWorld.java.txt檔案。

4、編譯命令後的java檔名需要帶檔案字尾.java

5、執行命令後的class檔名(類名)不帶檔案字尾.class

...

3、IDEA安裝使用

參見“IDEA安裝詳解.pdf”

4. java基礎語法

4.1 註釋(理解)

註釋是對程式碼的解釋和說明文字,可以提高程式的可讀性,因此在程式中新增必要的註釋文字十分重要。Java中的註釋分為三種:

單行註釋。單行註釋的格式是使用//,從//開始至本行結尾的文字將作為註釋文字。

// 這是單行註釋文字

多行註釋。多行註釋的格式是使用/* 和 */將一段較長的註釋括起來。

/*
這是多行註釋文字
這是多行註釋文字
這是多行註釋文字
*/
注意:多行註釋不能巢狀使用。

文件註釋。文件註釋以/**開始,以*/結束。(以後講)

4.2 字面量(應用)

作用:告訴程式設計師,資料在程式中的書寫格式。

字面量型別 說明 程式中的寫法
整數 不帶小數的數字 666,-88
小數 帶小數的數字 13.14,-5.21
字元 必須使用單引號,有且僅能一個字元 ‘A’,‘0’, ‘我’
字串 必須使用雙引號,內容可有可無 “HelloWorld”,“黑馬程式設計師”
布林值 布林值,表示真假,只有兩個值:true,false true 、false
空值 一個特殊的值,空值 值是:null
public class Demo {
    public static void main(String[] args) {
        System.out.println(10); // 輸出一個整數
        System.out.println(5.5); // 輸出一個小數
        System.out.println('a'); // 輸出一個字元
        System.out.println(true); // 輸出boolean值true
        System.out.println("歡迎來到黑馬程式設計師"); // 輸出字串
    }
}

4.3 資料型別(記憶、應用)

3.4.1 計算機儲存單元

l計算機底層都是一些數位電路(理解成開關),用開表示0、關表示1,這些01的形式就是二進位制。

資料在計算機底層都是採用二進位制儲存的,l在計算機中認為一個開關表示的0|1稱為1位(b),每8位稱為一個位元組(B), 所以1B=8b

位元組是計算機中資料的最小單位。

我們知道計算機是可以用來儲存資料的,但是無論是記憶體還是硬碟,計算機儲存裝置的最小資訊單元叫“位(bit)”,我們又稱之為“位元位”,通常用小寫的字母”b”表示。而計算機中最基本的儲存單元叫“位元組(byte)”,

通常用大寫字母”B”表示,位元組是由連續的8個位組成。

除了位元組外還有一些常用的儲存單位,其換算單位如下:

1B(位元組) = 8bit

1KB = 1024B

1MB = 1024KB

1GB = 1024MB

1TB = 1024GB

3.4.2 Java中的資料型別

Java是一個強型別語言,Java中的資料必須明確資料型別。在Java中的資料型別包括基本資料型別和引用資料型別兩種。

Java中的基本資料型別:

資料型別 關鍵字 記憶體佔用 取值範圍
整數 byte 1 負的2的7次方 ~ 2的7次方-1(-128~127)
short 2 負的2的15次方 ~ 2的15次方-1(-32768~32767)
int 4 負的2的31次方 ~ 2的31次方-1
long 8 負的2的63次方 ~ 2的63次方-1
浮點數 float 4 1.401298e-45 ~ 3.402823e+38
double 8 4.9000000e-324 ~ 1.797693e+308
字元 char 2 0-65535
布林 boolean 1 true,false

說明:

​ e+38表示是乘以10的38次方,同樣,e-45表示乘以10的負45次方。

​ 在java中整數預設是int型別,浮點數預設是double型別。

4.4 變數(應用)

3.5.1 變數的定義

變數:在程式執行過程中,其值可以發生改變的量。

從本質上講,變數是記憶體中的一小塊區域,其值可以在一定範圍內變化。

變數的定義格式:

資料型別 變數名 = 初始化值; // 宣告變數並賦值
int age = 18;
System.out.println(age);

或者

// 先宣告,後賦值(使用前賦值即可)
資料型別 變數名;
變數名 = 初始化值;
double money;
money = 55.5;
System.out.println(money);

還可以在同一行定義多個同一種資料型別的變數,中間使用逗號隔開。但不建議使用這種方式,降低程式的可讀性。

int a = 10, b = 20; // 定義int型別的變數a和b,中間使用逗號隔開
System.out.println(a);
System.out.println(b);

int c,d; // 宣告int型別的變數c和d,中間使用逗號隔開
c = 30;
d = 40;
System.out.println(c);
System.out.println(d);

變數的使用:通過變數名訪問即可。

3.5.2 使用變數時的注意事項

  1. 在同一對花括號中,變數名不能重複。
  2. 變數在使用之前,必須初始化(賦值)。
  3. 定義long型別的變數時,需要在整數的後面加L(大小寫均可,建議大寫)。因為整數預設是int型別,整數太大可能超出int範圍。
  4. 定義float型別的變數時,需要在小數的後面加F(大小寫均可,建議大寫)。因為浮點數的預設型別是double, double的取值範圍是大於float的,型別不相容。

4.5 關鍵字、標誌符(記憶、理解)

關鍵字

Java自己保留的一些單詞,作為特殊功能的,例如:public、class、byte、short、int、long、double…

我們不能用來作為類名或者是變數名稱,否則報錯。

注意:關鍵字很多,不用刻意去記。

abstract assert boolean break byte
case catch char class const
continue default do double else
enum extends final finally float
for goto if implements import
instanceof int interface long native
new package private protected public
return strictfp short static super
switch synchronized this throw throws
transient try void volatile while

標誌符

標誌符就是由一些字元、符號組合起來的名稱,用於給類,方法,變數等起名字的規矩。

基本要求:由數字、字母、下劃線(_)和美元符($)等組成

強制要求:不能以數字開頭、不能是關鍵字、區分大小寫

基本命令規範

變數名稱:滿足識別符號規則,建議全英文、有意義、首字母小寫,滿足“駝峰模式”,例如:int studyNumber = 59。

類名稱: 滿足識別符號規則,建議全英文、有意義、首字母大寫,滿足“駝峰模式”,例如:HelloWorld.java。