Java的基礎(chǔ)語(yǔ)法學(xué)習(xí)筆記
零、Java的關(guān)鍵字
用于類和接口的聲明:class, extends, implements, interface
包引入和包聲明:import, package
數(shù)據(jù)類型:boolean, byte, char, short, int, long, float, double
某些數(shù)據(jù)類型的可選值:false, true, null
流程控制:default, return, if, else, for, switch, case, do, while, break, continue,
異常處理:try, catch, finally, throw, throws
修飾符:abstract, final, native, private, protected, public, static, static, synchronized, transient, volatile
操作符:instanceof
創(chuàng)建對(duì)象:new
引用:this, super
方法返回類型: void
Java保留字:const和goto
一、java中的注釋: 有三種形式
1. // 單行注釋
2. /* 一或多行注釋 */
3. /** 文檔注釋 */ 它必須放在方法體的外面 ,可用命令javadoc來(lái)生成HTML文檔.
二、Java代碼中的“;”、“{}”、“ ”
Java語(yǔ)句以分號(hào)分隔
Java代碼塊包含在大括號(hào)內(nèi)
忽略空格。
三、標(biāo)識(shí)符: 用以命名類、方法和變量、以及包
標(biāo)識(shí)符命名規(guī)則:
1. 以字符、“_”或“$”開(kāi)頭。只能是字母,數(shù)字,“_”和“$”
2. 大小寫敏感。
3. 無(wú)長(zhǎng)度限制。
4. 類/接口名首字母大寫;
5. 方法名、變量名第一個(gè)字母小寫,其余首字母大寫;
6. 常量名稱全部大寫;
7. 包名全部小寫。
四、基本數(shù)據(jù)類型:
名稱 |
說(shuō)明符 |
存儲(chǔ)要求 |
范圍或精度 |
說(shuō)明 |
字節(jié)型 |
byte |
1字節(jié) |
-128到127 |
|
短整型 |
short |
2字節(jié) |
-2^15到2^15-1 |
|
整型 |
int |
4字節(jié) |
-2^31到2^31-1 |
|
長(zhǎng)整型 |
long |
8字節(jié) |
-2^63到2^63-1 |
長(zhǎng)整型數(shù)字有一個(gè)后綴L |
單精度浮點(diǎn)型 |
float |
4字節(jié) |
(有效小數(shù)位為6~7位) |
表示float類型數(shù)據(jù)時(shí)需要在后面添加后綴F,沒(méi)有后綴F的浮點(diǎn)數(shù)據(jù)被認(rèn)為是double類型的 |
雙精度浮點(diǎn)型 |
double |
8字節(jié) |
(有效小數(shù)位為15位) |
|
字符型 |
char |
2字節(jié) |
|
用來(lái)存儲(chǔ)Unicode編碼表中的字符。 char是無(wú)符號(hào)的16位整數(shù),字面值必須用單引號(hào)括起來(lái)(注:用單引號(hào)括起的單個(gè)中文字符也正確) |
布爾型 |
boolean |
不確定 |
|
只有true和false兩個(gè)值,它和整數(shù)不能相互轉(zhuǎn)換 |
注意:在Java中,所有數(shù)字類型在內(nèi)存中所占內(nèi)存空間的大小與平臺(tái)無(wú)關(guān),并且Java中沒(méi)有unsigned類型。
五、變量的作用域和生存期:
1. 變量是存儲(chǔ)數(shù)據(jù)的基本單元。
2. 變量可以在代碼塊中任何位置聲明
3. 塊以左大括號(hào)開(kāi)始,以右大括號(hào)結(jié)束
4. 變量的作用域就是它所在的塊
5. 成員變量:在類中聲明,它的作用域是整個(gè)類。(可以在類中方法以外的任何地方定義)
6. 局部變量:在一個(gè)方法的內(nèi)部或方法的一個(gè)代碼塊的內(nèi)部聲明。如果在一個(gè)方法內(nèi)部聲明,它的作用域是整個(gè)方法;如果在一個(gè)方法的某個(gè)代碼塊的內(nèi)部聲明,它的作用域是這個(gè)代碼塊。(局部變量必須先定義后使用)
7. 方法參數(shù):普通方法或構(gòu)造方法的參數(shù),它的作用域是整個(gè)方法不。
8. 異常處理參數(shù):它的作用域是緊跟著catch(Exception e)語(yǔ)句后的代碼塊。
六、數(shù)據(jù)轉(zhuǎn)換類型:
1. 自動(dòng)類型轉(zhuǎn)換: 當(dāng)將一種類型的變量賦給另一種類型的變量時(shí),如果兩種類型兼容,且目標(biāo)類型大于源類型時(shí),就會(huì)發(fā)生自動(dòng)類型轉(zhuǎn)換。下圖為數(shù)字類型間的合法轉(zhuǎn)換:(實(shí)箭頭為無(wú)信息損失的轉(zhuǎn)換,虛箭頭表示可能丟失精度):
2. 強(qiáng)制類型轉(zhuǎn)換: 強(qiáng)制轉(zhuǎn)換用于顯式類型 轉(zhuǎn)換。如果被轉(zhuǎn)換的值 的數(shù)據(jù)類型大于其目標(biāo) 類型,就會(huì)丟失部分信息
類型強(qiáng)制轉(zhuǎn)換使程序?qū)⒆兞恳暈槟撤N類型,盡管此變量中包含的是另一類型的數(shù)據(jù)。
語(yǔ)法:(目標(biāo)類型) 待轉(zhuǎn)換的變量名;
示例:
float c = 34.56789f;
int b = (int) c; // 將 c 轉(zhuǎn)換為整型
七、運(yùn)算符:
1.
運(yùn)算符 |
描述 |
示例 |
算術(shù)運(yùn)算符 |
算術(shù)運(yùn)算符使用數(shù)字操作數(shù)。這些運(yùn)算符主要用于數(shù)學(xué)計(jì)算 |
+, -, *, /, % |
關(guān)系運(yùn)算符 |
關(guān)系運(yùn)算符用于測(cè)試兩個(gè)操作數(shù)之間的關(guān)系。使用關(guān)系運(yùn)算符的表達(dá)式的結(jié)果為 boolean 型 |
==, >, >=, <, <= , != |
邏輯運(yùn)算符 |
邏輯運(yùn)算符用于 boolean 操作數(shù) |
&, |, ^, &&, ||, ! |
條件運(yùn)算符 |
條件運(yùn)算符很獨(dú)特,因?yàn)樗怯萌齻€(gè)操作數(shù)組成表達(dá)式的三元運(yùn)算符。它可以替代某種類型的 if-else 語(yǔ)句 |
? : |
賦值運(yùn)算符 |
賦值運(yùn)算符為一個(gè)等號(hào) =,它將值賦給變量 |
=, *=, /=, +=, -= |
2. 優(yōu)先級(jí):
順序 |
運(yùn)算符 |
1. |
括號(hào),如 ( ) 和 [ ] |
2. |
一元運(yùn)算符,如 -、++、- -和 ! |
3. |
算術(shù)運(yùn)算符,如 *、/、%、+ 和- |
4. |
關(guān)系運(yùn)算符,如 >、>=、<、<=、== 和 != |
5. |
邏輯運(yùn)算符,如 &、^、|、&&、|| |
6. |
條件運(yùn)算符和賦值運(yùn)算符,如 ? :、=、*=、/=、+= 和 -= |
一般情況,不用刻意去記,當(dāng)不能確定操作符的執(zhí)行順序時(shí),可能使用圓括號(hào)來(lái)指定順序。
八、控制流語(yǔ)句:
1. 判斷語(yǔ)句:
(1). if-else 語(yǔ)句:
一般語(yǔ)法:
if (<條件>) { <語(yǔ)句塊1> } else { <語(yǔ)句塊2> }
如果條件為真,執(zhí)行語(yǔ)句塊1里的語(yǔ)句;
如果條件為假,則執(zhí)行 else 后面的語(yǔ)句(語(yǔ)句塊2里的語(yǔ)句 )。
(2). switch-case 語(yǔ)句:
一般語(yǔ)法:
switch (表達(dá)式) { case 1: 操作 1 的語(yǔ)句; break; case 2: 操作 2 的語(yǔ)句; break; …. case n : 操作 n 的語(yǔ)句; break; default: 默認(rèn)語(yǔ)句; }
注意:switch括號(hào)中的表達(dá)式的值類型必須是與int類型兼容的基本類型(包括byte、short、char、int),每個(gè)case子句的末尾要跟個(gè)break;
2. 循環(huán)語(yǔ)句:
(1). while 循環(huán):只要指定的條件為true時(shí),就執(zhí)行循環(huán)體。如果一開(kāi)始時(shí)條件就為false,則while循環(huán)永遠(yuǎn)不被執(zhí)行?! ≌Z(yǔ)法如下:
while (條件){ // 循環(huán)體語(yǔ)句 }
(2). do-while 循環(huán):先執(zhí)行循環(huán)體,然后才測(cè)試條件。 語(yǔ)法如下:
do{ // 循環(huán)體語(yǔ)句 } while (條件);
(3). for 循環(huán):主要用于按預(yù)定的次數(shù)執(zhí)行語(yǔ)句或語(yǔ)句塊: 語(yǔ)法如下:
for(初始化;測(cè)試; 更新計(jì)數(shù)器){ // 操作語(yǔ)句; }
3. 跳轉(zhuǎn)語(yǔ)句:
(1). break 中斷循環(huán)
(2). countinue 只中斷本次循環(huán)
(3). return 退出本方法,跳到上層調(diào)用方法。如果本方法的返回類型不是void,就需要提供相應(yīng)的返回值。
九、數(shù)組: 用存儲(chǔ)一組相同類型數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)。
1. 可以使用以下三種方式聲明數(shù)組:
(1). 數(shù)據(jù)類型[ ] 標(biāo)識(shí)符; //聲明一個(gè)數(shù)組
(2). 數(shù)據(jù)類型[ ] 標(biāo)識(shí)符 = new 數(shù)據(jù)類型[大小]; //創(chuàng)建一個(gè)數(shù)組
(3). 數(shù)據(jù)類型[ ] 標(biāo)識(shí)符 = {值 1,值 2,…值 N}; //聲明,創(chuàng)建并初始化
2. 可以通過(guò)整型下標(biāo)訪問(wèn)數(shù)組的第一個(gè)值。 如:a是一整數(shù)數(shù)組,則a[0]就是數(shù)組中第一個(gè)元素。
3. 數(shù)組一旦被創(chuàng)建,就不能再改變它的大小了。
4. 可以用 數(shù)組名.length 得到數(shù)組的元素?cái)?shù)目。
5.多維數(shù)組:
二維數(shù)組:其實(shí)就是數(shù)組的數(shù)組。
如: int [][] arr = new int[2][3]; 這個(gè)程序片斷中,配置了2行3列的二維數(shù)組對(duì)象。它的配置關(guān)系可用如圖表示:
所以,根據(jù)以上原理,你可以創(chuàng)建不規(guī)則數(shù)組。
十、命令行參數(shù):
java程序中的入口方法:main方法帶有String[] args參數(shù),這個(gè)參數(shù)表示main方法接收了一個(gè)字符中數(shù)組,也就是命令行參數(shù)。
十一、轉(zhuǎn)義符:
轉(zhuǎn)義序列 |
名稱 |
描述 |
/a |
警告 |
產(chǎn)生一則警告。 |
/n |
換行 |
將光標(biāo)移到下一行的第一格。 |
/r |
回車 |
將光標(biāo)移到當(dāng)前行的第一格。 |
/t |
水平制表 |
將光標(biāo)移到下一個(gè)水平制表位置。 |
/' |
單引號(hào) |
產(chǎn)生一個(gè)單引號(hào)。 |
/" |
雙引號(hào) |
產(chǎn)生一個(gè)雙引號(hào)。 |
相關(guān)文章
SpringBoot增強(qiáng)Controller方法@ControllerAdvice注解的使用詳解
這篇文章主要介紹了SpringBoot增強(qiáng)Controller方法@ControllerAdvice注解的使用詳解,@ControllerAdvice,是Spring3.2提供的新注解,它是一個(gè)Controller增強(qiáng)器,可對(duì)controller進(jìn)行增強(qiáng)處理,需要的朋友可以參考下2023-10-105分鐘搭建SpringCloud Eureka服務(wù)注冊(cè)中心的實(shí)現(xiàn)
這篇文章主要介紹了5分鐘搭建SpringCloud Eureka服務(wù)注冊(cè)中心的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-03-03在eclipse導(dǎo)入Java的jar包的方法JDBC(圖文說(shuō)明)
這篇文章主要介紹了在eclipse導(dǎo)入Java 的jar包的方法 JDBC 圖文說(shuō)明 ,需要的朋友可以參考下2015-09-09Java SSM整合開(kāi)發(fā)統(tǒng)一結(jié)果封裝詳解
這篇文章主要介紹了Java SSM整合開(kāi)發(fā)實(shí)現(xiàn)統(tǒng)一結(jié)果封裝,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Java實(shí)現(xiàn)Redis的集合(set)命令操作
這篇文章主要介紹了Java實(shí)現(xiàn)Redis的集合(set)命令操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07Java多線程和并發(fā)基礎(chǔ)面試題(問(wèn)答形式)
多線程和并發(fā)問(wèn)題是Java技術(shù)面試中面試官比較喜歡問(wèn)的問(wèn)題之一。在這里,從面試的角度列出了大部分重要的問(wèn)題,感興趣的小伙伴們可以參考一下2016-06-06簡(jiǎn)單實(shí)現(xiàn)java抽獎(jiǎng)系統(tǒng)
這篇文章主要教大家如何簡(jiǎn)單實(shí)現(xiàn)java抽獎(jiǎng)系統(tǒng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01