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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

第二章:Java基本语法

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

目錄:

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

    import java.util.Scanner; public class TestScore {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("請輸入學生成績:");int score = s.nextInt();char level;if (score >= 90) {level = 'A';System.out.println("等級為:"+level);}if (score >= 70 && score < 90) {level = 'B';System.out.println("等級為:"+level);}if (score >= 60 && score < 70) {level = 'C';System.out.println("等級為:"+level);}if (score < 60) {level = 'D';System.out.println("等級為:"+level);}} } import java.util.Scanner; public class TestScore {public static void main(String[] args) {Scanner s = new Scanner(System.in);System.out.println("請輸入學生成績:");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("等級為:" + level);} }

    switch-case語句

  • 沒有寫 break; 語句,則在找到對應case語句后,還會繼續(xù)向下執(zhí)行。
  • 其中變量可以是哪些類型? 可以是char,byte,short,int,枚舉,String(jdk1.7),double、float等不可以。
  • 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(①;②;③){
    //④
    }
  • 執(zhí)行過程:①-②-④-③-②-④-③-….-④-③-②
  • 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)如下圖:

    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)實現(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 個等式System.out.print(i + "*" + j + "=" + i*j + "\t");}System.out.println();}} }

    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ù)組相應的元素賦值操作分開進行。

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

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

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

    錯誤的初始化:

    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ù)組,存放學生成績
    */

    public class TestStudentScore {public static void main(String[] args) {// 1,創(chuàng)建Scanner的對象,并從鍵盤獲取學生的個數(shù)nScanner s = new Scanner(System.in);System.out.println("請輸入學生的個數(shù):");int count = s.nextInt();// count記錄學生的個數(shù)// 2,根據(jù)輸入的學生個數(shù)n,創(chuàng)建一個長度為n的int型數(shù)組int[] scores = new int[count];int maxScore = 0;// 3,依次從鍵盤獲取n個學生的成績,并賦給相應的的數(shù)組元素,并獲取n個學生中的最高分System.out.println("請輸入" + count + "個數(shù)學生成績:");for (int i = 0; i < scores.length; i++) {int score = s.nextInt();// 依次從鍵盤獲取學生的成績scores[i] = score;if (scores[i] > maxScore) {maxScore = scores[i];}}System.out.println("最高分為:" + maxScore);// 4,遍歷學生成績的數(shù)組,并根據(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ù)組的常見異常

    //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基本语法的全部內容,希望文章能夠幫你解決所遇到的問題。

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