Java入門基礎學習,成為一個Java程式設計師的必備知識
阿新 • • 發佈:2020-07-08
# 引言
眾所周知,Java是一種面向物件的程式語言。您可以在Windows作業系統上編寫Java原始碼,而在Linux作業系統上執行編譯後的位元組碼,而無需修改原始碼。
##### 資料型別
Java 有 2 種資料型別,一種是基本資料型別,一種是引用型別。
基本資料型別用於儲存簡單型別的資料,比如說,int、long、byte、short 用於儲存整數,float、double 用於儲存浮點數,char 用於儲存字元,boolean 用於儲存布林值。
不同的基本資料型別,有不同的預設值和大小,來個表格感受下。
|資料型別 | 預設值 |大小
|--|--|--|
| boolean | false | 1位元 |
|char |'\u0000' |2位元 |
|byte |0 |1位元 |
| short | 0 |2位元 |
| int |0 | 4位元 |
| long | 0L | 8位元 |
|float | 0.0f | 4位元組 |
|double | 0.0 | 8位元組|
引用型別用於儲存物件(null 表示沒有值的物件)的引用,String 是引用型別的最佳代表,比如說
> String program= "程式零世界" 。
##### 宣告變數
要宣告一個變數,必須指定它的名字和型別,來看一個簡單的示例:
```java
int age;
String name;
```
count 和 name 在聲明後會得到一個預設值,按照它們的資料型別——不能是區域性變數(否則 Java 編譯器會在你使用變數的時候提醒要先賦值),必須是類成員變數。
```java
public class SyntaxLocalVariable {
int age;
String name;
public static void main(String[] args) {
SyntaxLocalVariable syntax = new SyntaxLocalVariable();
System.out.println(syntax.age); // 輸出 0
System.out.println(syntax.name); // 輸出 null
}
}
```
也可以在宣告一個變數後使用“=”操作符進行賦值,就像下面這樣:
```java
int age = 19;
String name = "程式零世界";
```
我們定義了 2 個變數,int 型別的 age 和 String 型別的 name,age 賦值 19,name 賦值為“程式零世界”。
每行程式碼後面都跟了一個“;”,表示當前語句結束了。
在 Java 中,變數最好遵守命名約定,這樣能提高程式碼的可閱讀性。
- 以字母、下劃線(_)或者美元符號($)開頭
- 不能使用 Java 的保留字,比如說 int 不能作為變數名
##### 陣列
陣列在 Java 中佔據著重要的位置,它是很多集合類的底層實現。陣列屬於引用型別,它用來儲存一系列指定型別的資料。
宣告陣列的一般語法如下所示:
```java
type[] identiier = new type[length];
```
type 可以是任意的基本資料型別或者引用型別。來看下面這個例子:
```java
public class ArraysDemo {
public static void main(String[] args) {
int [] nums = new int[10];
nums[0] = 18;
nums[1] = 19;
System.out.println(nums[0]);
}
}
```
陣列的索引從 0 開始,第一個元素的索引為 0,第二個元素的索引為 1。為什麼要這樣設計?感興趣的話,你可以去探究一下。
通過變數名[索引]的方式可以訪問陣列指定索引處的元素,賦值或者取值是一樣的。
##### 關鍵字
關鍵字屬於保留字,在 Java 中具有特殊的含義,比如說 public、final、static、new 等等,它們不能用來作為變數名。為了便於你作為參照,我列舉了 48 個常用的關鍵字,你可以瞅一瞅。
1. **abstract**:abstract 關鍵字用於宣告抽象類——可以有抽象和非抽象方法。
2. **boolean**:boolean 關鍵字用於將變數宣告為布林值型別,它只有 true 和 false 兩個值。
3. **break**:break 關鍵字用於中斷迴圈或 switch 語句。
4. **byte**:byte 關鍵字用於宣告一個可以容納 8 個位元的變數。
5. **case**:case 關鍵字用於在 switch 語句中標記條件的值。
6. **catch**:catch 關鍵字用於捕獲 try 語句中的異常。
7. **char**:char 關鍵字用於宣告一個可以容納無符號 16 位位元的 Unicode 字元的變數。
8. **class**:class 關鍵字用於宣告一個類。
9. **continue**:continue 關鍵字用於繼續下一個迴圈。它可以在指定條件下跳過其餘程式碼。
10. **default**:default 關鍵字用於指定 switch 語句中除去 case 條件之外的預設程式碼塊。
11. **do**:do 關鍵字通常和 while 關鍵字配合使用,do 後緊跟迴圈體。
12. **double**:double 關鍵字用於宣告一個可以容納 64 位浮點數的變數。
13. **else**:else 關鍵字用於指示 if 語句中的備用分支。
14. **enum**:enum(列舉)關鍵字用於定義一組固定的常量。
15. **extends**:extends 關鍵字用於指示一個類是從另一個類或介面繼承的。
16. **final**:final 關鍵字用於指示該變數是不可更改的。
17. **finally**:finally 關鍵字和 try-catch 配合使用,表示無論是否處理異常,總是執行 finally 塊中的程式碼。
18. **float**:float 關鍵字用於宣告一個可以容納 32 位浮點數的變數。
19. **for**:for 關鍵字用於啟動一個 for 迴圈,如果迴圈次數是固定的,建議使用 for 迴圈。
20. **if**:if 關鍵字用於指定條件,如果條件為真,則執行對應程式碼。
21. **implements**:implements 關鍵字用於實現介面。
22. **import**:import 關鍵字用於匯入對應的類或者介面。
23. **instanceof**:instanceof 關鍵字用於判斷物件是否屬於某個型別(class)。
24. **int**:int 關鍵字用於宣告一個可以容納 32 位帶符號的整數變數。
25. **interface**:interface 關鍵字用於宣告介面——只能具有抽象方法。
26. **long**:long 關鍵字用於宣告一個可以容納 64 位整數的變數。
27. **native**:native 關鍵字用於指定一個方法是通過呼叫本機介面(非 Java)實現的。
28. **new**:new 關鍵字用於建立一個新的物件。
29. **null**:如果一個變數是空的(什麼引用也沒有指向),就可以將它賦值為 null。
30. **package**:package 關鍵字用於宣告類所在的包。
31. **private**:private 關鍵字是一個訪問修飾符,表示方法或變數只對當前類可見。
32. **protected**:protected 關鍵字也是一個訪問修飾符,表示方法或變數對同一包內的類和所有子類可見。
33. **public**:public 關鍵字是另外一個訪問修飾符,除了可以宣告方法和變數(所有類可見),還可以宣告類。 main() 方法必須宣告為 public。
34. **return**:return 關鍵字用於在程式碼執行完成後返回(一個值)。
35. **short**:short 關鍵字用於宣告一個可以容納 16 位整數的變數。
36. **static**:static 關鍵字表示該變數或方法是靜態變數或靜態方法。
37. **strictfp**:strictfp 關鍵字並不常見,通常用於修飾一個方法,確保方法體內的浮點數運算在每個平臺上執行的結果相同。
38. **super**:super 關鍵字可用於呼叫父類的方法或者變數。
39. **switch**:switch 關鍵字通常用於三個(以上)的條件判斷。
40. **synchronized**:synchronized 關鍵字用於指定多執行緒程式碼中的同步方法、變數或者程式碼塊。
41. **this**:this 關鍵字可用於在方法或建構函式中引用當前物件。
42. **throw**:throw 關鍵字主動丟擲異常。
43. **throws**:throws 關鍵字用於宣告異常。
44. **transient**:transient 關鍵字在序列化的使用用到,它修飾的欄位不會被序列化。
45. **try**:try 關鍵字用於包裹要捕獲異常的程式碼塊。
46. **void**:void 關鍵字用於指定方法沒有返回值。
47. **volatile**:volatile 關鍵字保證了不同執行緒對它修飾的變數進行操作時的可見性,即一個執行緒修改了某個變數的值,這新值對其他執行緒來說是立即可見的。
48. **while**:如果迴圈次數不固定,建議使用 while 迴圈。
##### 操作符
除去“=”賦值操作符,Java 中還有很多其他作用的操作符,我們來大致看一下。
**①、算術運算子**
- +(加號)
- –(減號)
- *(乘號)
- /(除號)
- %(取餘)
來看一個例子:
```java
public class ArithmeticOperator {
public static void main(String[] args) {
int a = 10;
int b = 5;
System.out.println(a + b);//15
System.out.println(a - b);//5
System.out.println(a * b);//50
System.out.println(a / b);//2
System.out.println(a % b);//0
}
}
```
“+”號比較特殊,還可以用於字串拼接,來看一個例子:
String result = "程式零世界" + "滿滿乾貨的GZH";
**②、邏輯運算子**
邏輯運算子通常用於布林表示式,常見的有:
- &&(AND)多個條件中只要有一個為 false 結果就為 false
- ||(OR)多個條件只要有一個為 true 結果就為 true
- !(NOT)條件如果為 true,加上“!”就為 false,否則,反之。
來看一個例子:
```java
public class LogicalOperator {
public static void main(String[] args) {
int a=10;
int b=5;
int c=20;
System.out.p