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
注意:針對不同的作業系統,需要下載對應版本的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 使用變數時的注意事項
- 在同一對花括號中,變數名不能重複。
- 變數在使用之前,必須初始化(賦值)。
- 定義long型別的變數時,需要在整數的後面加L(大小寫均可,建議大寫)。因為整數預設是int型別,整數太大可能超出int範圍。
- 定義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。