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