第二章:Java基本语法
目錄:
1. 關(guān)鍵字 & 標(biāo)識(shí)符
2. 變量
- 基本數(shù)據(jù)類型
- 基本數(shù)據(jù)類型轉(zhuǎn)換
3. 運(yùn)算符
4. 程序流程控制
- 4.1 分之結(jié)構(gòu)
- 4.2 循環(huán)結(jié)構(gòu)
- 4.3 break&continue
5. 數(shù)組
- 二維數(shù)組
- 數(shù)組的常見(jiàn)異常
- 數(shù)組的常用的算法問(wèn)題
關(guān)鍵字 & 標(biāo)識(shí)符
關(guān)鍵字
關(guān)鍵字的定義和特點(diǎn):
定義:被Java語(yǔ)言賦予了特殊含義,用做專門(mén)用途的字符串(單詞)
特點(diǎn):關(guān)鍵字中所有字母都為小寫(xiě)
用于定義數(shù)據(jù)類型的關(guān)鍵字:
class 、interface、enum、byte、short、int、long、float、double、char、boolean、void
用于定義數(shù)據(jù)類型值的關(guān)鍵字:
true、false、null
用于定義流程控制的關(guān)鍵字:
if、else、switch、case、default、while、do、for、break、continue、return
用于定義訪問(wèn)權(quán)限修飾符的關(guān)鍵字:
private、protected、public
用于定義類,函數(shù),變量修飾符的關(guān)鍵字:
abstract、final、static、synchronized
用于定義類與類之間關(guān)系的關(guān)鍵字:
extends、implements
用于定義建立實(shí)例及引用實(shí)例,判斷實(shí)例的關(guān)鍵字:
new、this、super、instanceof
用于異常處理的關(guān)鍵字:
try、catch、finally、throw
用于包的關(guān)鍵字:
package、import
其他修飾符關(guān)鍵字:
native、strictfp、transient、volatile
保留字
Java保留字:現(xiàn)有Java版本尚未使用,但以后版本可能會(huì)作為關(guān)鍵字使用。自己命名標(biāo)識(shí)符時(shí)要避免使用這些保留字
byValue、cast、future、generic、inner、operator、outer、rest、var、goto、const
標(biāo)識(shí)符
Java 對(duì)各種變量、方法和類等要素命名時(shí)使用的字符系列成為標(biāo)識(shí)符。
凡是自己可以起名字的地方都叫標(biāo)識(shí)符。
- 定義合法標(biāo)識(shí)符規(guī)則:
- 由26個(gè)英文字母大小寫(xiě),0-9,_或$組成
- 數(shù)字不可以開(kāi)頭
- 不可以使用關(guān)鍵字和保留字,但能包含關(guān)鍵字和保留字
- Java中嚴(yán)格區(qū)分大小寫(xiě),長(zhǎng)度無(wú)限制
- 標(biāo)識(shí)符不能包含空格
注意:在起名字時(shí),為了提高閱讀性,要盡量有意義,“見(jiàn)名知意”。
Java中的名稱命名規(guī)范:(不遵守,也不會(huì)出現(xiàn)編譯的錯(cuò)誤)
包名:多單詞組成時(shí)所有字母都小寫(xiě):xxxyyyzzz
類名、接口名:多單詞組成時(shí),所有單詞的首字母大寫(xiě):XxxYyyZzz
變量名、方法名:多單詞組成時(shí),第一個(gè)單詞首字母小寫(xiě),第二個(gè)單詞開(kāi)始每個(gè)單詞首字母大寫(xiě):xxxYyyZzz
常量名:所有字母都大寫(xiě)。多單詞時(shí)每個(gè)單詞用下劃線連接:XXX_YYY_ZZZ
變量
java中變量按照數(shù)據(jù)類型來(lái)分類:基本數(shù)據(jù)類型 vs 引用數(shù)據(jù)類型(數(shù)組 類 接口)
基本數(shù)據(jù)類型:
整型:byte(8 bit) short int(默認(rèn)類型) long
浮點(diǎn)型:float double (默認(rèn)類型)
字符型:char(‘ ’)
布爾類型: boolean(只能取值為true 或false,不能取null)
補(bǔ)充:按照在類中存在的位置的不同:成員變量 vs 局部變量
進(jìn)制(了解)
十進(jìn)制 二進(jìn)制 八進(jìn)制 十六進(jìn)制
二進(jìn)制:計(jì)算機(jī)底層都是用二進(jìn)制來(lái)存儲(chǔ)、運(yùn)算。
- 二進(jìn)制 與十進(jìn)制之間的轉(zhuǎn)換。
- 二進(jìn)制在底層存儲(chǔ):正數(shù)、負(fù)數(shù)都是以補(bǔ)碼的形式存儲(chǔ)的。(原碼、反碼、補(bǔ)碼)
- 四種進(jìn)制間的轉(zhuǎn)換
變量的運(yùn)算:
- ①自動(dòng)類型轉(zhuǎn)換:容量小的數(shù)據(jù)類型自動(dòng)轉(zhuǎn)換為容量大的數(shù)據(jù)類型。
short s = 12;
int i = s + 2;
注意:byte short char之間做運(yùn)算,結(jié)果為int型! - ②強(qiáng)制類型轉(zhuǎn)換:是①的逆過(guò)程。使用“()”實(shí)現(xiàn)強(qiáng)轉(zhuǎn)。
運(yùn)算符
運(yùn)算符是一種特殊的符號(hào),用以表示數(shù)據(jù)的運(yùn)算、賦值和比較等。
算術(shù)運(yùn)算符:
+ - + - * / % ++ – +
注意:1) /: int i = 12; i = i / 5;
2) %:最后的符號(hào)只跟被模數(shù)相同
3)前++:先+1,后運(yùn)算 后++:先運(yùn)算,后+1
4)+:String字符串與其他數(shù)據(jù)類型只能做連接運(yùn)算,且結(jié)果為String類型。sysout(‘’ + ‘\t’ + ‘‘); vs sysout(“” + ‘\t’ + ‘‘);
賦值運(yùn)算符:
= += -= *= /= %=
int i= 12;
i = i * 5;
i *= 5;//與上一行代碼同樣的意思
【特別地】
short s = 10;
s = s + 5;//報(bào)編譯的異常
s = (short)(s + 5);
s += 5;//s = s + 5,但是結(jié)果不會(huì)改變s的數(shù)據(jù)類型。
比較運(yùn)算符(關(guān)系運(yùn)算符):
== > < >= <= instanceof
【注意】區(qū)分== 與 = 區(qū)別。
進(jìn)行比較運(yùn)算操作以后,返回一個(gè)boolean類型的值
4>=3 表達(dá)的是4 > 3或者 4 = 3.結(jié)果是true。
if(i > 1 && i < 10){ }
不能寫(xiě)為:if(1 < i < 10){}
邏輯運(yùn)算符(運(yùn)算符的兩端是boolean值):
& && | || ^ !
【注意】區(qū)分 & 與 && 的區(qū)別,以及 | 與 || 的區(qū)別
我們使用的時(shí)候,選擇&& , ||
位運(yùn)算符(兩端是數(shù)值類型的數(shù)據(jù)):
<< >> >>> & | ^ ~
【例子】1.如何交換m = 12和n = 5的值
2.將60轉(zhuǎn)換為十六進(jìn)制輸出。
三元運(yùn)算符:
(條件表達(dá)式)? 表達(dá)式1 : 表達(dá)式2;
1)既然是運(yùn)算符,一定會(huì)返回一個(gè)結(jié)果,并且結(jié)果的數(shù)據(jù)類型與表達(dá)式1,2的類型一致
2)表達(dá)式1與表達(dá)式2 的數(shù)據(jù)類型一致。
3)使用三元運(yùn)算符的,一定可以轉(zhuǎn)換為if-else。反之不一定成立。
例子:獲取兩個(gè)數(shù)的較大值;獲取三個(gè)數(shù)的最大值。
程序流程控制
4.1 順序結(jié)構(gòu)
程序從上到下逐行地執(zhí)行,中間沒(méi)有任何判斷和跳轉(zhuǎn)。
4.2 分支結(jié)構(gòu)
根據(jù)條件,選擇性地執(zhí)行某段代碼。
有 if…else 和 switch…case兩種分支語(yǔ)句。
if-else語(yǔ)句
例如:
實(shí)現(xiàn):
/*
score>=90 等級(jí)為:A
70<=score<90 等級(jí)為:B
60<=score<70 等級(jí)為C
score<60 等級(jí)為:D
/*
switch-case語(yǔ)句
4.3 循環(huán)結(jié)構(gòu)
根據(jù)循環(huán)條件,重復(fù)性的執(zhí)行某段代碼。
有while、do…while、for三種循環(huán)語(yǔ)句。
注:JDK1.5提供了 foreach 循環(huán),方便的遍歷集合、數(shù)組元素。
①初始化條件 ②循環(huán)條件 ③迭代條件 ④循環(huán)體
for循環(huán)
for(①;②;③){
//④
}
while循環(huán)
格式:
①
while(②){
④
③
}
do-while循環(huán)
格式:
do{
④
③
}while(②)
另:
無(wú)限循環(huán):
for( ; ; ){}
或者
while(true){
}
說(shuō)明:一般情況下,在無(wú)限循環(huán)內(nèi)部要有程序終止的語(yǔ)句,使用break實(shí)現(xiàn),若沒(méi)有,那就是死循環(huán)。
1)嵌套循環(huán)例子,實(shí)現(xiàn)如下圖:
2)實(shí)現(xiàn)九九乘法表
break和continue關(guān)鍵字
break:使用在switch-case中或者循環(huán)中
如果使用在循環(huán)中,表示:結(jié)束“當(dāng)前”循環(huán)
continue:使用在循環(huán)結(jié)構(gòu)中,表示:結(jié)束“當(dāng)次”循環(huán)
關(guān)于break和continue中標(biāo)簽的使用。
public class TestBreakContinue {public static void main(String[] args) {//break和continue中標(biāo)簽的使用label:for (int i = 1; i < 5; i++) {for (int j = 1; j < 10; j++) {if(j % 4 == 0){//break;//continue;continue label;}System.out.print(j);}System.out.println();}} }數(shù)組
數(shù)組:相同數(shù)據(jù)類型的數(shù)據(jù)的組合。
1.一維數(shù)組
如:
int score = 72;
int score = 90;
int score = 58;
使用數(shù)組:
1. 靜態(tài)初始化:在聲明并初始化與給數(shù)組相應(yīng)的元素賦值操作同時(shí)進(jìn)行。
int[] score1 = new int[]{72, 90, 58};//int[] score1 = {72, 90, 58};
2. 動(dòng)態(tài)初始化:在聲明并初始化與給數(shù)組相應(yīng)的元素賦值操作分開(kāi)進(jìn)行。
注:數(shù)組長(zhǎng)度一旦創(chuàng)建后數(shù)組長(zhǎng)度不可變。
聲明數(shù)組的錯(cuò)誤寫(xiě)法:
1)String names = new String[5]{“AA”,”BB”,”CC”};
2)int a[10];
3)int i = new int[];
另外
1. 對(duì)于byte、short、int、long數(shù)組元素值默認(rèn)為0
2. 對(duì)于float、double數(shù)組元素值默認(rèn)為0.0
3. 對(duì)于char數(shù)組元素值默認(rèn)為空格
4. 對(duì)于boolean數(shù)組元素值默認(rèn)為false
5. 對(duì)于引用類型的變量構(gòu)成的數(shù)組而言,默認(rèn)初始化為null,以String為例
2.二維數(shù)組
錯(cuò)誤的初始化:
names = new String[][];
names = new String[][5];
都是未指定第一維長(zhǎng)度。
Q:二維數(shù)組如何遍歷?
for(int m = 0;m < score.length;m++ ){for(int n = 0;n < score[m].length;n++){System.out.println(score[m][n]);}}內(nèi)存結(jié)構(gòu)
舉例:
一維數(shù)組練習(xí):
/*
從鍵盤(pán)讀入學(xué)生成績(jī),找出最高分,并輸出學(xué)生成績(jī)。
成績(jī)>=最高分-10 等級(jí)為A
成績(jī)>=最高分-20 等級(jí)為B
成績(jī)>=最高分-30 等級(jí)為C
其余 等級(jí)為D
提示:先讀入學(xué)生人數(shù),根據(jù)人數(shù)創(chuàng)建int數(shù)組,存放學(xué)生成績(jī)
*/
數(shù)組的常見(jiàn)異常
//1.數(shù)組下標(biāo)越界的異常:java.lang.ArrayIndexOutOfBoundsExceptionint[] i = new int[10]; // i[0] = 90; // i[10] = 99;// for(int m = 0;m <= i.length;m++){ // System.out.println(i[m]); // }//2.空指針的異常:NullPointerException//第一種: // boolean[] b = new boolean[3]; // b = null; // System.out.println(b[0]);//第二種: // String[] str = new String[4]; // //str[3] = new String("AA");//str[3] = "AA"; // System.out.println(str[3].toString());//第三種:int[][] j = new int[3][];j[2][0] = 12; 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的第二章:Java基本语法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Markdown基本语法总结
- 下一篇: Java_输出60的十六进制