JavaSE入門學習5:Java基礎文法(一)
一關鍵字
關鍵字概述:Java語言中有一些具有特殊用途的詞被稱為關鍵字。關鍵字對Java的編譯器有著特殊的意義,在程
序中應用時一定要謹慎。
關鍵字特點:組成關鍵字的字母全部小寫。
關鍵字注意事項:goto和const作為保留字存在,當前並不使用。
Java中常用的50個關鍵字(48個加2個保留字,就當背英文單詞啦):
關鍵字 描述
abstract 抽象方法,抽象類別的修飾符
assert 斷言條件是否滿足
boolean 布林值資料型別
break 跳出迴圈或者label程式碼片段
byte 8-bit 有符號資料類型
case switch語句的一個條件
catch 和try搭配撲捉異常資訊
char 16-bit Unicode字元資料類型
class 定義類
const 未使用
continue 不執行迴圈體剩餘部分
default switch語句中的預設分支
do 迴圈語句,迴圈體至少會執行一次
double 64-bit雙精確度浮點數
else if條件不成立時執行的分支
enum 枚舉類型
extends 表示一個類是另一個類的子類
final 表示一個值在初始化之後就不能再改變了;表示方法不能被重寫,或者一個類不能有子類。
finally 為了完成執行的代碼而設計的,主要是為了程式的健壯性和完整性,無論有沒有異常發生都執行代碼。
float 32-bit單精確度浮點數
for for迴圈語句
goto 未使用
if 條件陳述式
implements 表示一個類實現了介面
import 匯入類
instanceof 測試一個對象是否是某個類的執行個體
int 32位整型數
interface 介面,一種抽象的類型,僅有方法和常量的定義
long 64位整型數
native 表示方法用非java代碼實現
new 分配新的類執行個體
package 一系列相關類組成一個包
private 表示私人欄位,或者方法等,只能從類內部訪問
protected 表示欄位只能通過類或者其子類訪問子類或者在同一個包內的其他類
public 表示共有屬性或者方法
return 方法傳回值
short 16位元字
static 表示在類層級定義,所有執行個體共用的
strictfp 浮點數比較使用嚴格的規則
super 表示基類
switch 選擇語句
synchronized 表示同一時間只能由一個線程訪問的代碼塊
this 表示調用當前執行個體或者調用另一個建構函式
throw 拋出異常
throws 定義方法可能拋出的異常
transient 修飾不要序列化的欄位
try 表示代碼塊要做異常處理或者和finally配合表示是否拋出異常都執行finally中的代碼
void 標記方法不返回任何值
volatile 標記欄位可能會被多個線程同時訪問,而不做同步
while while迴圈
二標識符
標識符概述:Java對各種變數,類,介面,方法等起名字時使用的字元序列。
組成規則:1英文大小寫字母2數字字元3美元符($)和底線(_)。
使用標識符時,需要遵守幾條規則:
1標識符可以由字母、數字、底線(_)、美元符($)組成,但不能包含 @、%、空格等其它特殊字元,不能以數字
開頭。比如:123name 就是不合法的。
2標識符不能是 Java 關鍵字和保留字(Java預留的關鍵字,以後的升級版本中有可能作為關鍵字),但可以包含關
鍵字和保留字。如:不可以使用 void 作為標識符,但是 Myvoid 可以。
3標識符是嚴格區分大小寫。 所以,一定要分清楚和是兩個不同的標識符。
4標識符的命名最好能反映出其作用,做到見名知意。
不合法的標識符:
合法的標識符:
標識符命名的常見類型:
1包(其實就是檔案夾,用於解決相同類名進行區分的問題),全部小寫。
單級:
舉例:student
多級:
舉例:student.number
2類或介面:
一個單詞:單詞的首字母必須大寫。
舉例:Student
多個單詞:每個單詞的首字母必須大寫。
舉例:HelloWorld
3方法和變數:
一個單詞:單詞的首字母必須小寫。
舉例:main
多個單詞:從第二個單詞開始,每個單詞的首字母必須大寫。
舉例:showAllName
4常量:
一個單詞:單詞字母必須全部大寫。
舉例:PI
多個單詞:每個單字母必須大寫,用_隔開 。
舉例:STUDENT_MAX_AGE
三注釋
注釋概述:在編寫程式時,經常需要添加一些注釋,用以描述某段代碼的作用。一般來說,對於一份規範的程式
原始碼而言,注釋應該佔到原始碼的 1/3 以上。因此,注釋是程式原始碼的重要組成部分,一定要加以重視。
Java中注釋分類及格式:
Java中注釋有三種類型:單行注釋、多行注釋、文檔注釋。
1單行注釋格式://注釋文字
2多行注釋格式:/*注釋文字*/,需要注意的是多行注釋不能嵌套使用,而單行是可以的。
3文檔注釋:/**注釋文字*/,這個注釋的作用的是被javadoc工具解析產生一個說明書。
注釋的作用:
1解釋說明程式,提高程式的可閱讀性;
2可以協助我們偵錯工具。
看一個例子:
四常量和變數
常量概述:在程式執行的過程中其值不可以發生改變。所謂常量,我們可以理解為是一種特殊的變數,它的值被
設定後,在程式運行過程中不允許改變。
Java中常量分類:
1字面值常量
A字串常量:用雙引號括起來的內容。
舉例:"hello" "world"
B整數常量:所有的整數。
舉例:100 300
C小數常量:所有的小數。
舉例:10.23
D字元常量:用單引號括起來的常量。
舉例:'A' 'C' 'O'
E布爾常量:比較特殊,只有true和false
F空常量:null
2自訂常量
文法格式:final 常量名 = 值;
程式中使用常量可以提高代碼的可維護性。例如,在項目開發時,我們需要指定使用者的性別,此時可以定義一個
常量 SEX,賦值為 "男",在需要指定使用者性別的地方直接調用此常量即可,避免了由於使用者的不規範賦值導致程式出
錯的情況。
舉例:
變數
變數概述:在程式的執行過程中,其值是可以在一定範圍內發生改變的量。
在Java中,我們通過三個元素描述變數:變數類型、變數名以及變數值,其中變數名是標識符。
變數的定義格式:
A:資料類型 變數名 = 初始化值;
B:資料類型 變數名;
變數名 = 初始化值;
Java語言是一種強型別語言。通俗點說就是,在Java中儲存的資料都是有類型的,而且必須在編譯時間就確定其類
型。String 是一種常見的引用資料類型,用來表示字串。在程式開發中,很多操作都要使用字串來完成,例如系
統中的使用者名稱、密碼、電子郵箱等。這個String參考型別是特殊的。
Java中有兩類資料類型:兩類十一種
在Java的領域裡,基礎資料型別 (Elementary Data Type)變數存的是資料本身,而參考型別變數存的是儲存資料的空間地址。這個我們以
後的學習中逐漸體會到。
基礎資料型別 (Elementary Data Type)
A:整數 佔用位元組數
byte 1
short 2
int 4
long 8
B:浮點數
float 4
double 8
C:字元
char 2
D:布爾
boolean 1(並不確定)
使用變數需要的注意事項:
1範圍:變數定義在哪一級大括弧中,哪個大括弧的範圍就是這個變數的範圍。相同的範圍中不能定義兩
個同名變數。
2初始化值:沒有初始化的值不能直接使用。
3在一行上建議只定義一個變數,可以定義多個,但不建議。
4Java 中的變數需要先聲明後使用。
5變數中每次只能賦一個值,但可以修改多次。
6main 方法中定義的變數必須先賦值,然後才能輸出。
在Java程式中,不同的基礎資料型別 (Elementary Data Type)的資料之間經常需要進行相互轉換。
我們定義的變數的基礎資料型別 (Elementary Data Type)時需要注意:
1整數預設是int類型,浮點數預設是double。
2長整數要加L或者l(建議使用L)。
3單精確度的浮點數要加F或者f(建議使用F)。
(1)boolean類型不參與轉換
(2)預設轉換
A:從小到大
B:byte,short,char -- int -- long -- float -- double
C:byte,short,char之間不相互轉換,直接轉成int類型參與運算。
(3)強制轉換
A:從大到小
B:可能會有精度的損失,一般不建議這樣使用。
C:格式:
目標資料類型 變數名 = (目標資料類型) (被轉換的資料);
思考題和面試題
A:下面兩種方式有區別嗎?
float f1 = 12.345f;
float f2 = (float)12.345;
B:下面的程式有問題嗎,如果有,在哪裡呢?
byte b1 = 3;
byte b2 = 4;
byte b3 = b1 + b2;
byte b4 = 3 + 4;
C:下面的操作結果是什麼呢?
byte a = 130;
byte b = (byte)130;
D:字元參與運算
是尋找ASCII裡面的值,查ASCII表即可
'a'97
'A'65
'0'48
System.out.println('a');
System.out.println('a' + 1);
E:字串參與運算
這裡其實是字串的串連
System.out.println("hello"+'a'+1);
System.out.println('a'+1+"hello");
System.out.println("5+5="+5+5);
System.out.println(5+5+"=5+5");
上面兩個題的輸出輸出是:
先到這裡,若有錯誤的地方,請指正。