日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > java >内容正文

java

第二章:Java基本语法

發(fā)布時(shí)間:2023/12/20 java 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 第二章:Java基本语法 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

目錄:

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
    /*

    import java.util.Scanner; public class TestScore {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("請(qǐng)輸入學(xué)生成績(jī):");int score = s.nextInt();char level;if (score >= 90) {level = 'A';System.out.println("等級(jí)為:"+level);}if (score >= 70 && score < 90) {level = 'B';System.out.println("等級(jí)為:"+level);}if (score >= 60 && score < 70) {level = 'C';System.out.println("等級(jí)為:"+level);}if (score < 60) {level = 'D';System.out.println("等級(jí)為:"+level);}} } import java.util.Scanner; public class TestScore {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("請(qǐng)輸入學(xué)生成績(jī):");int score = s.nextInt();char level;if (score > 90) {level = 'A';} else if (score >= 70) {level = 'B';} else if (score >= 60) {level = 'C';} else {level = 'D';}System.out.println("等級(jí)為:" + level);} }

    switch-case語(yǔ)句

  • 沒(méi)有寫(xiě) break; 語(yǔ)句,則在找到對(duì)應(yīng)case語(yǔ)句后,還會(huì)繼續(xù)向下執(zhí)行。
  • 其中變量可以是哪些類型? 可以是char,byte,short,int,枚舉,String(jdk1.7),double、float等不可以。
  • case 條件:其中條件只能是值,不能是取值范圍。
  • 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(①;②;③){
    //④
    }
  • 執(zhí)行過(guò)程:①-②-④-③-②-④-③-….-④-③-②
  • 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)如下圖:

    public class TestFor {public static void main(String[] args) {//上半部分for(int i = 0;i < 5; i++){for(int k = 0; k < 4-i; k++){System.out.print(" ");}for(int j = 0;j < i+1; j++){System.out.print("* ");}System.out.println();}//下半部分for(int i = 0; i < 4; i++){for(int k =0;k < i+1; k++){System.out.print(" ");}for(int j = 0; j < 4-i; j++){System.out.print("* ");}System.out.println();}} }

    2)實(shí)現(xiàn)九九乘法表

    public class TestJiuJiu {public static void main(String[] args) {for(int i = 1;i <= 9; i++){//一共有九行for(int j = 1;j <= i; j++){//每行有 i 個(gè)等式System.out.print(i + "*" + j + "=" + i*j + "\t");}System.out.println();}} }

    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)行。

    int score2 = new int[3]; score[0] = 72; score[1] = 90; score[2] = 58;

    注:數(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ù)組

  • 靜態(tài)初始化:
  • int[][] scores; scores = new int[][]{{1, 2,3},{3, 4, 5},{6}};
  • 動(dòng)態(tài)初始化:
  • String[][] names; names = new String[3][2];//動(dòng)態(tài)初始化之一 或者 names = new String[4][];//動(dòng)態(tài)初始化之二(不指定二維的長(zhǎng)度) names[0] = new String[5]; names[1] = new String[4]; namse[2] = new String[7];

    錯(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ī)
    */

    public class TestStudentScore {public static void main(String[] args) {// 1,創(chuàng)建Scanner的對(duì)象,并從鍵盤(pán)獲取學(xué)生的個(gè)數(shù)nScanner s = new Scanner(System.in);System.out.println("請(qǐng)輸入學(xué)生的個(gè)數(shù):");int count = s.nextInt();// count記錄學(xué)生的個(gè)數(shù)// 2,根據(jù)輸入的學(xué)生個(gè)數(shù)n,創(chuàng)建一個(gè)長(zhǎng)度為n的int型數(shù)組int[] scores = new int[count];int maxScore = 0;// 3,依次從鍵盤(pán)獲取n個(gè)學(xué)生的成績(jī),并賦給相應(yīng)的的數(shù)組元素,并獲取n個(gè)學(xué)生中的最高分System.out.println("請(qǐng)輸入" + count + "個(gè)數(shù)學(xué)生成績(jī):");for (int i = 0; i < scores.length; i++) {int score = s.nextInt();// 依次從鍵盤(pán)獲取學(xué)生的成績(jī)scores[i] = score;if (scores[i] > maxScore) {maxScore = scores[i];}}System.out.println("最高分為:" + maxScore);// 4,遍歷學(xué)生成績(jī)的數(shù)組,并根據(jù)學(xué)生成績(jī)與最高分的差值,賦予相應(yīng)的等級(jí),并輸出for (int i = 0; i < scores.length; i++) {char level;if (scores[i] >= maxScore - 10) {level = 'A';} else if (scores[i] >= maxScore - 20) {level = 'B';} else if (scores[i] >= maxScore - 30) {level = 'C';} else {level = 'D';}System.out.println("Student " + (i + 1) + " score is " + scores[i]+ " level is " + level);}} }

    數(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)題。

    如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。