零基礎學Java第一節(語法格式、資料型別)
本篇文章是《零基礎學Java》專欄的第一篇文章,從本篇文章開始,將會連更本專欄,帶領大家將Java基礎知識徹底學懂,文章採用通俗易懂的文字、圖示及程式碼實戰,從零基礎開始帶大家走上高薪之路!
第1章 Java概述
1.1 Java語言發展史
-
Java語言發展史
詹姆斯·高斯林(James Gosling)1977年獲得了加拿大卡爾加里大學電腦科學學士學位,1983年獲得了美國卡內基梅隆大學電腦科學博士學位,畢業後到IBM工作,設計IBM第一代工作站NeWS系統,但不受重視。後來轉至Sun公司,1990年,與Patrick,Naughton和Mike Sheridan等人合作“綠色計劃”,後來發展一套語言叫做“Oak”,後改名為Java。
SUN(Stanford University Network,斯坦福大學網路公司)
1.2 跨平臺原理
-
平臺:指的是作業系統(Windows,Linux,Mac)
-
跨平臺:Java程式可以在任意作業系統上執行,一次編寫到處執行
-
原理:實現跨平臺需要依賴Java的虛擬機器 JVM (Java Virtual Machine)
1.3 JVM、JRE、JDK
-
什麼是JVM
JVM是java虛擬機器(JVM Java Virtual Machine),java程式需要執行在虛擬機器上,不同平臺有自己的虛擬機器,因此java語言可以跨平臺。
-
什麼是JRE
包括Java虛擬機器(JVM Java Virtual Machine)和Java程式所需的核心類庫等如果想要執行一個開發好的Java程式,計算機中只需要安裝JRE即可。
JRE=JVM+類庫
-
什麼是JDK
JDK是提供給Java開發人員使用的,其中包含了java的開發工具,也包括了JRE。所以安裝了JDK,就不用在單獨安裝JRE了。
其中的開發工具:編譯工具(javac.exe)、打包工具(jar.exe)等
JDK=JRE+JAVA的開發工具
-
JDK,JRE,JVM的作用和關係
JRE包含:核心類庫和JVM
JDK包含:JRE 和開發工具包
第二章 語法格式
2.1 註釋
2.1.1 註釋概覽
-
什麼是註釋
用於解釋說明程式的文字
-
Java中註釋分類
-
單行註釋,格式:
//註釋文字
-
多行註釋,格式:
/* 註釋文字 */
-
文件註釋,格式:
/** 註釋文字 */
-
-
註釋的作用
- 解釋說明程式
- 幫助我們除錯錯誤
2.1.2 程式碼實戰
/*
* 註釋:用於解釋說明程式的文字
*
* 分類:
* 單行
* 多行
*
* 作用:解釋說明程式,提高程式的閱讀性。
*/
//這是我的HelloWorld案例,class用於定義類。
public class HelloWorld {
/*
* 這是main方法
* main方法是程式的入口方法
* 所有程式的執行都是從main方法開始的
*/
public static void main(String[] args) {
//這是輸出語句。
System.out.println("公眾號【程式設計攻略】,專注於計算機基礎知識的講解");
}
}
2.2 關鍵字
2.2.1 關鍵字概述
- 被Java語言賦予特定含義的單詞
2.2.2 關鍵字特點
- 常用的程式碼編輯器,針對關鍵字有特殊的顏色標記,非常直觀,所以我們不需要去死記硬背,在今後的學習中重要的關鍵字也會不斷的出來。
2.2.3 程式碼實戰
public class KeyWordDemo {
public static void main(String[] args) {
System.out.println("HelloWorld");
}
}
關鍵字舉例:
2.3 常量
2.3.1 常量概述
- 在程式執行的過程中,其值不可以發生改變的量
2.3.2 常量分類
-
字串常量:用雙引號括起來的內容(“HelloWorld”)
-
整數常量:所有整數(12,-23)
-
小數常量:所有小數(12.34)
-
字元常量:用單引號括起來的內容(‘a’,’A’,’0’)
-
布林常量:較為特有,只有true和false
-
空常量:null
2.3.3 程式碼實戰
public class ChangLiang {
public static void main(String[] args) {
//字串常量
System.out.println("HelloWorld");
//整數常量
System.out.println(12);
System.out.println(-23);
//小數常量
System.out.println(12.34);
//字元常量
System.out.println('a');
System.out.println('0');
//布林常量
System.out.println(true);
System.out.println(false);
}
}
2.4 變數
2.4.1 變數概述
-
在程式執行的過程中,在某個範圍內其值可以發生改變的量
-
從本質上講,變數其實是記憶體中的一小塊區域
2.4.2 變數定義格式
- 資料型別 變數名 = 初始化值;
格式是固定的,記住格式,以不變應萬變。
2.4.3 變數圖解
2.5 資料型別
2.5.1 計算機儲存單元
變數是記憶體中的小容器,用來儲存資料。那麼計算機記憶體是怎麼儲存資料的呢?無論是記憶體還是硬碟,計算機儲存裝置的最小資訊單元叫“位(bit)”,我們又稱之為“位元位”,通常用小寫的字母b表示。而計算機最小的儲存單元叫“位元組(byte)”,通常用大寫字母B表示,位元組是由連續的8個位組成。
除了位元組外還有一些常用的儲存單位,大家可能比較熟悉,我們一起來看看:
- 1B(位元組) = 8bit
- 1KB = 1024B
- 1MB = 1024KB
- 1GB = 1024MB
- 1TB = 1024GB
2.5.2 資料型別概述和分類
-
為什麼有資料型別
Java語言是強型別語言,對於每一種資料都定義了明確的具體資料型別,在記憶體中分配了不同大小的記憶體空間。
-
Java中資料型別的分類
-
基本資料型別
-
引用資料型別
-
2.5.3 基本資料型別(4類8種)
2.6 識別符號
2.6.1 識別符號概述
-
作用
給包,類,方法,變數等起名字
-
組成規則
由字元,下劃線_,美元符$組成
::: block-1
這裡的字符采用的是unicode字符集,所以包括英文大小寫字母,中文字元,數字字元等。
:::注意事項
- 不能以數字開頭
- 不能是Java中的關鍵字
-
命名原則:見名知意
- 包
最好是域名倒過來,要求所有的字母小寫
- 類或者介面
如果是一個單詞,首字母大寫
如果是多個單詞,每個單詞首字母大寫(駝峰標識)
- 方法或者變數
如果是一個單詞,全部小寫
如果是多個單詞,從第二個單詞首字母大寫
- 常量
如果是一個單詞,所有字母大寫
如果是多個單詞,所有的單詞大寫,用下劃線區分每個單詞
2.6.2 程式碼實戰
public class IdentifierDemo {
public static void main(String[] args) {
//資料型別 變數名 = 初始化值;
int age = 20;
//不能以數字開頭
//正確寫法
//int b2 = 30;
//錯誤寫法
//int 2b = 30;
//不能是java中的關鍵字
//int class = 40;
}
}
2.7 定義變數
2.7.1 基本資料型別變數的定義和使用
-
變數的定義格式:
資料型別 變數名 = 初始化值;
-
基本資料型別:
byte,short,int,long,float,double,char,boolean
整數預設是int型別,定義long型別的資料時,要在資料後面加L。
浮點數預設是double型別,定義float型別的資料時,要在資料後面加F。
2.7.2 程式碼實戰
public class VariableDemo {
public static void main(String[] args) {
//byte型別的變數
byte b = 10;
System.out.println(10);
System.out.println(b);
//short型別的變數
short s = 100;
System.out.println(s);
//int型別的變數
int i = 1000;
System.out.println(i);
//long型別的變數
//long l = 10000;
//System.out.println(l);
long l = 10000000000L;
System.out.println(l);
//float型別的變數
float f = 12.34F;
System.out.println(f);
//double型別的變數
double d = 12.34;
System.out.println(d);
//char型別的變數
char ch = 'a';
System.out.println(ch);
//boolean型別的變數
boolean bb = true;
System.out.println(bb);
}
} //定義boolean型別的變數
boolean bb = false;
System.out.println(bb);
}
}
2.7.3 變數定義的注意事項
-
變數未賦值,不能直接使用
引出變數的第二種使用格式
-
變數只在它所屬的範圍內有效。
變數在哪對大括號內,變數就屬於哪對大括號
-
一行上可以定義多個變數,但是不建議
2.7.4 程式碼實戰
public class VariableDemo2 {
public static void main(String[] args) {
//定義一個變數
int a = 10;
System.out.println(a);
int b;
b = 20;
System.out.println(b);
{
//程式碼塊
int c = 30;
System.out.println(c);
}
//System.out.println(c);
System.out.println(b);
/*
int aa,bb;
aa = 10;
bb = 20;
System.out.println(aa);
System.out.println(bb);
*/
int aa = 10;
int bb = 20;
System.out.println(aa);
System.out.println(bb);
}
}
2.8 資料型別轉換
2.8.1 隱式資料型別轉換
取值範圍小的資料型別與取值範圍大的資料型別進行運算,會先將小的資料型別提升為大的,再運算。
2.8.2 程式碼實戰
public class ConversionDemo {
public static void main(String[] args) {
//定義兩個int型別的變數
int a = 10;
int b = 20;
System.out.println(a+b);
//我可以把a+b的結果進行輸出,說明這個計算的結果是沒有問題的
//那麼,我應該也可以把這個結果接收一下。
int c = a + b;
System.out.println(c);
System.out.println("-----------------");
//定義兩個變數,一個int型別,一個byte型別
int aa = 10;
byte bb = 20;
System.out.println(aa+bb);
//下面這種寫法報錯了
//byte cc = aa+bb;
int cc = aa + bb;
System.out.println(cc);
}
}
2.8.3 強制型別資料轉換
強制轉換的格式:
目標型別 變數名=(目標型別)(被轉換的資料);
強制轉換的注意事項:如果超出了被賦值的資料型別的取值範圍得到的結果會與你期望的結果不同。
2.8.4 程式碼實戰
public class ConversionDemo2 {
public static void main(String[] args) {
//定義兩個變數,一個int型別,一個byte型別
int a = 10;
byte b = 20;
int c = a + b;
System.out.println(c);
byte d = 30;
byte e = (byte)(a + b);
System.out.println(e);
}
}