小姐姐手把手教你最基礎Java語法,快來我的碗中
文章目錄
- java基礎語法
java基礎語法
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。
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. 第一個演示程式
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相關命令可以在任意目錄下使用。
2.2.2 配置環境變數步驟
具體配置步驟請看我其他部落格。
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
…
2.5 Notepad++軟體的安裝和使用(應用)
2.5.1 什麼要使用Notepad++軟體
Notepad++功能比windows中的自帶記事本功能強大,除了可以用來製作一般的純文字說明檔案,也十分適合編寫計算機程式程式碼。Notepad++有行號,能夠快速定位問題位置,還有語法高亮度顯示、程式碼摺疊等功能。而且它是免費的。
2.5.2 Notepad++軟體安裝
安裝:傻瓜式安裝,一直下一步即可。建議也安裝到統一的開發軟體目錄下,比如E:\develop。
2.5.3Notepad++軟體配置
安裝完畢之後,為了使用方便,做一個簡單的配置:修改預設語言和編碼。
3. java基礎語法
3.1 註釋(理解)
註釋是對程式碼的解釋和說明文字,可以提高程式的可讀性,因此在程式中新增必要的註釋文字十分重要。Java中的註釋分為三種:
單行註釋。單行註釋的格式是使用//,從//開始至本行結尾的文字將作為註釋文字。
// 這是單行註釋文字
多行註釋。多行註釋的格式是使用/* 和 */將一段較長的註釋括起來。
/*
這是多行註釋文字
這是多行註釋文字
這是多行註釋文字
*/
注意:多行註釋不能巢狀使用。
文件註釋。文件註釋以/**
開始,以*/
結束。(以後講)
3.2 關鍵字(理解)
關鍵字是指被java語言賦予了特殊含義的單詞。
關鍵字的特點:
關鍵字的字母全部小寫。
常用的程式碼編輯器對關鍵字都有高亮顯示,比如現在我們能看到的public、class、static等。
3.3 常量(應用)
常量:在程式執行過程中,其值不可以發生改變的量。
Java中的常量分類:
字串常量 用雙引號括起來的多個字元(可以包含0個、一個或多個),例如"a"、“abc”、"中國"等
整數常量 整數,例如:-10、0、88等
小數常量 小數,例如:-5.5、1.0、88.88等
字元常量 用單引號括起來的一個字元,例如:‘a’、‘5’、‘B’、'中’等
布林常量 布林值,表示真假,只有兩個值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("歡迎來到黑馬程式設計師"); // 輸出字串
}
}
3.4 資料型別(記憶、應用)
3.4.1 計算機儲存單元
我們知道計算機是可以用來儲存資料的,但是無論是記憶體還是硬碟,計算機儲存裝置的最小資訊單元叫“位(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型別。
3.5 變數(應用)
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的,型別不相容。
3.6 識別符號(記憶、理解)
識別符號是使用者程式設計時使用的名字,用於給類、方法、變數、常量等命名。
Java中識別符號的組成規則:
由字母、數字、下劃線“_”、美元符號“$”組成,第一個字元不能是數字。
不能使用java中的關鍵字作為識別符號。
識別符號對大小寫敏感(區分大小寫)。
Java中識別符號的命名約定:
小駝峰式命名:變數名、方法名
首字母小寫,從第二個單詞開始每個單詞的首字母大寫。
大駝峰式命名:類名
每個單詞的首字母都大寫。
另外,識別符號的命名最好可以做到見名知意
例如:username、studentNumber等。
3.7 型別轉換(理解)
在Java中,一些資料型別之間是可以相互轉換的。分為兩種情況:自動型別轉換和強制型別轉換。
自動型別轉換:
把一個表示資料範圍小的數值或者變數賦值給另一個表示資料範圍大的變數。這種轉換方式是自動的,直接書寫即可。例如:
double num = 10; // 將int型別的10直接賦值給double型別
System.out.println(num); // 輸出10.0
強制型別轉換:
把一個表示資料範圍大的數值或者變數賦值給另一個表示資料範圍小的變數。
強制型別轉換格式:目標資料型別 變數名 = (目標資料型別)值或者變數;
例如:
double num1 = 5.5;
int num2 = (int) num1; // 將double型別的num1強制轉換為int型別
System.out.println(num2); // 輸出5(小數位直接捨棄)
說明:
- char型別的資料轉換為int型別是按照碼錶中對應的int值進行計算的。比如在ASCII碼錶中,'a’對應97。
int a = 'a';
System.out.println(a); // 將輸出97
- 整數預設是int型別,byte、short和char型別資料參與運算均會自動轉換為int型別。
byte b1 = 10;
byte b2 = 20;
byte b3 = b1 + b2;
// 第三行程式碼會報錯,b1和b2會自動轉換為int型別,計算結果為int,int賦值給byte需要強制型別轉換。
// 修改為:
int num = b1 + b2;
// 或者:
byte b3 = (byte) (b1 + b2);
- boolean型別不能與其他基本資料型別相互轉換。