day02_註釋丶關鍵字和標識符丶常量丶變量丶基本數據類型的轉換

什麼是註釋?

註釋:就是對代碼的解釋和說明。其目的是讓人們能夠更加輕鬆地瞭解代碼。爲代碼添加註釋,是十分必須 要的,它不影響程序的編譯和運行。

Java中的註釋類型:
  • 單行註釋
  • 多行註釋
  • 文檔註釋 (java特有)

註釋的好處:

  • 提高了代碼的閱讀性;調試程序的重要方法。
  • 註釋是一個程序員必須要具有的良好編程習慣。
  • 將自己的思想通過註釋先整理出來,再用代碼去體現

單行註釋

  • 格式: //註釋文字
多行註釋
  • 格式: /* 註釋文字 */

文檔註釋(Java特有)

  • 格式:/**
                @author 指定java程序的作者
                @version 指定源文件的版本
                */

註釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形 式體現的該程序的說明文檔。

操作方式

                      

注意:

  • 對於單行和多行註釋,被註釋的文字,不會被JVMjava虛擬機)解釋執行。
  • 多行註釋裏面不允許有多行註釋嵌套。

舉例:


/*

單行註釋和多行註釋的作用:
① 對所寫的程序進行解釋說明,增強可讀性。方便自己,方便別人
② 調試所寫的代碼

 特點:單行註釋和多行註釋,註釋了的內容不參與編譯。
         換句話說,編譯以後生成的.class結尾的字節碼文件中不包含註釋掉的信息

文檔註釋的使用:
    註釋內容可以被JDK提供的工具 javadoc 所解析,生成一套以網頁文件形式體現的該程序的說明文檔。

多行註釋不可以嵌套使用

*/

/**
 * 文檔註釋
 *
 * @author shkstart
 * @version v1.0
 * 這是我的第一個java程序!非常的開森!
 */
public class HelloJava {
	/*
	多行註釋:
	如下的main方法是程序的入口!
	main的格式是固定的!
	*/

    /**
     * 如下的方式是main(),作用:程序的入口。
     */
    public static void main(String[] args) {
        //單行註釋:如下的語句表示輸出到控制檯
        //System.out.println("Hello World!")
        System.out.println("Hello World!");
    }
}

關鍵字keywords

定義:

  • Java語言賦予了特殊含義,用做專門用途的字符串(單詞)

特點:

  • 關鍵字中所有字母都爲小寫
  • 智能化開發工具中顯示特殊顏色

關鍵字比較多,不能死記硬背,學到哪裏記到哪裏即可。 Java中定義的關鍵字如下圖所示

Java保留字

  • 現有Java版本尚未使用,但以後版本可能會作爲關鍵字使用。自己命名標識符時要避免使用這些保留字 goto 、const

標識符(Identifier)

標識符:
  • Java 對各種變量方法等要素命名時使用的字符序列稱爲標識符 簡單記:凡是自己可以起名字的地方都叫標識符

命名規則: 硬性要求

如果不遵守命名規則,則編譯會報錯。

  • 26個英文字母大小寫,0-9 _$ 組成
  • 數字不可以開頭。
  • 不可以使用關鍵字和保留字,但能包含關鍵字和保留字。
  • Java中嚴格區分大小寫,長度無限制。
  • 標識符不能包含空格。

命名規範: 軟性建議

不遵守命名規範,雖然編譯可以通過但是代碼質量不高。強烈建議遵守

  • 包名:多單詞組成時所有字母都小寫:xxxyyyzzz
  • 類名、接口名:多單詞組成時,所有單詞的首字母大寫:XxxYyyZzz
  • 變量名、方法名:多單詞組成時,第一個單詞首字母小寫,第二個單詞開始每個單詞首字母大寫:xxxYyyZzz
  • 常量名:所有字母都大寫。多單詞時每個單詞用下劃線連接:XXX_YYY_ZZZ

注意1

  • 在起名字時,爲了提高閱讀性,要儘量有意義,“見名知意”。
  • java採用unicode字符集,因此標識符也可以使用漢字聲明,但是不建議使用。

常量

定義:

  • 是指在Java程序中固定不變的數據

常量的分類

  • 如下圖所示

舉例

/*
常量:在程序運行期間,固定不變的量。

常量的分類:
1. 字符串常量:凡是用雙引號引起來的部分,叫做字符串常量。例如:"abc"、"Hello"、"123"
2. 整數常量:直接寫上的數字,沒有小數點。例如:100、200、0、-250
3. 浮點數常量:直接寫上的數字,有小數點。例如:2.5、-3.14、0.0
4. 字符常量:凡是用單引號引起來的單個字符,就做字符常量。例如:'A'、'b'、'9'、'中'
5. 布爾常量:只有量中取值。true、false。
6. 空常量:null。代表沒有任何數據。
*/
public class Demo01Const {
    public static void main(String[] args) {
        // 字符串常量
        System.out.println("張三");
        // 字符串兩個雙引號中間的內容爲空
        System.out.println("");
        System.out.println("A");

        // 整數常量
        System.out.println(1);
        System.out.println(-1);
        System.out.println(0);

        // 浮點數常量(小數)
        System.out.println(3.14);
        System.out.println(-2.5);

        // 字符常量
        System.out.println('c');
        // System.out.println(''); 錯誤 ,兩個單引號中間必須有且僅有一個字符,沒有不行。
        // System.out.println('asd'); 錯誤 ,兩個單引號中間必須有且僅有一個字符,有兩個不行。

        // 布爾常量
        System.out.println(false);
        System.out.println(true);

        //    System.out.println(null); 錯誤 空常量。空常量不能直接用來打印輸出。

    }
}

變量

變量概述:

  • 常量是固定不變的數據,那麼在程序中可以變化的量稱爲變量。 程序中,可以使用字母保存數字的方式進行運算,提高計算能力,可以解決更多的問題。比如x保存5x也可以保存6,這樣x保存的數據是可以改變的,也就是我們所講解的變量。Java中要求一個變量每次只能保存一個數據,必須要明確保存的數據類型。

概念

  • 內存中的一個存儲區域
  • 該區域的數據可以在同一類型範圍內不斷變化
  • 變量是程序中最基本的存儲單元。包含變量類型、變量名和存儲的值

變量的作用:

  • 用於在內存中保存數據

變量的定義 

變量定義的格式包括三個要素: 數據類型 、 變量名 、 數據值 。 

格式1:

  • 數據類型 變量名稱;      含義: 創建了一個變量
  • 變量名稱 = 數據值;      含義:將右邊的數據值,賦值交給左邊的變量

舉例:

public class Demo {
    public static void main(String[] args) {
        // 創建一個變量age 格式:數據類型 變量名稱;
        int age;
        // 向變量age當中存入一個數據 格式:變量名稱 = 數據值;
        age = 10;
        // 當打印輸出變量名稱的時候,顯示出來的是變量的內容
        System.out.println(age); // 10

        // 改變變量當中本來的數字,變成新的數字
        age = 20;
        System.out.println(age); // 20
    }
}


格式2:

  • 數據類型 變量名稱 = 數據值;     含義:在創建一個變量的同時,立刻放入指定的數據值

舉例

public class Demo {
    public static void main(String[] args) {

        // 創建一個變量age,並且向它裏面存儲數據 格式:數據類型 變量名稱 = 數據值;
        int age = 25;
        // 當打印輸出變量名稱的時候,顯示出來的是變量的內容
        System.out.println(age); // 25

        // 改變變量當中本來的數字,變成新的數字
        age = 20;
        System.out.println(age); // 20
    }
}



使用變量的注意事項:

  • 如果創建多個變量,那麼在同一個大括號範圍內,變量的名字不可以相同。
  • 變量必須先聲明,後使用
  • 對於float和long類型來說,字母后綴F和L不要丟掉。
  • 變量右側的數據值不能超過左側類型的範圍。
  • 沒有進行賦值的變量,不能直接使用;一定要賦值之後,才能使用。
  • 變量使用不能超過作用域的範圍。【作用域】:從定義變量的一行開始,一直到直接所屬的大括號結束爲止。
  • 同一個作用域內,不可以聲明兩個同名的變量
  • 可以通過一個語句來創建多個變量,但是一般情況不推薦這麼寫。

代碼演示,變量的注意事項:

public class VariableNotice {
    public static void main(String[] args) {
        int num1 = 10; // 創建了一個新的變量,名叫num1
        // int num1 = 20; 又創建了另一個新的變量,名字也叫num1,錯誤 同一個作用域裏變量名稱不能重複!

        int num2; // 定義了一個變量,但是沒有進行賦值
        // System.out.println(num2); // 使用沒有進行賦值的變量就是錯誤的

        // System.out.println(num3); //錯誤, 在創建變量之前,不能使用這個變量
        int num3 = 500;

        {
            int num4 = 60;
            System.out.println(num4); // 60
        }
        // System.out.println(num4); // 已經超出了大括號的範圍,超出了作用域,變量不能再使用了。我們可以重新定義num4變量

        // 同時創建了三個全都是int類型的變量
        int a, b, c;
        // 各自分別賦值
        a = 10;
        b = 20;
        c = 30;
        System.out.println(a); // 10
        System.out.println(b); // 20
        System.out.println(c); // 30

        // 同時創建三個int變量,並且同時各自賦值
        int x = 100, y = 200, z = 300;
        System.out.println(x); // 100
        System.out.println(y); // 200
        System.out.println(z); // 300
    }
}

數據類型 

Java的數據類型分爲兩大類:

  • 基本數據類型:包括 整數 、 浮點數 、 字符 、 布爾 。
  • 引用數據類型:包括 類 、 數組 、 接口等等 。 

基本數據類型

四類八種基本數據類型如下圖所示: 

整數類型:byte、short、int、long

  • Java各整數類型有固定的表數範圍和字段長度,不受具體OS的影響,以保證java程序的可移植性。
  • java的整型常量默認爲 int 型,聲明long型常量須後加‘l’或‘L’
  • java程序中變量通常聲明爲int型,除非不足以表示較大的數,才使用long

浮點類型:float、double

  • 與整數類型類似,Java 浮點類型也有固定的表數範圍和字段長度,不受具體操作 系統的影響。
  • 浮點型常量有兩種表示形式:十進制數形式:如:5.12 512.0f .512 (必須有小數點)科學計數法形式:如:5.12e2 512E2 100E-2
  • float:單精度,尾數可以精確到7位有效數字。很多情況下,精度很難滿足需求。
  • double:雙精度,精度是float的兩倍。通常採用此類型。
  • Java 的浮點型常量默認爲double聲明float型常量,須後加‘f’或‘F’

字符類型:char

  • char 型數據用來表示通常意義上字符”(2字節)
  • Java中的所有字符都使用Unicode編碼,故一個字符可以存儲一個字母,一個漢字,或其他書面語的一個字符。

字符型變量的三種表現形式:

  • 字符常量是用單引號(‘ ’)括起來的單個字符。例如:char c1 = 'a'; char c2 = '中'; char c3 = '9';
  • Java中還允許使用轉義字符‘\’來將其後的字符轉變爲特殊字符型常量。 例如:char c3 = ‘\n’;  // '\n'表示換行符
  • 直接使用 Unicode 值來表示字符型常量:‘\uXXXX’。其中,XXXX代表一個十六進制整數。如:\u000a 表示 \n

char類型是可以進行運算的。因爲它都對應有Unicode碼。

布爾類型:boolean

boolean 類型用來判斷邏輯條件,一般用於程序流程控制:

  • if條件控制語句;
  • while循環控制語句;
  • do-while循環控制語句;
  • for循環控制語句;

boolean類型數據只允許取值truefalse,無null不可以使用0或非 0 的整數替代falsetrue,這點和C語言不同。Java虛擬機中沒有任何供boolean值專用的字節碼指令,Java語言表達所操作的 boolean值,在編譯之後都使用java虛擬機中的int數據類型來代替:true1表示,false 用0表示。

舉例:

/*
變量:程序運行期間,內容可以發生改變的量。

創建一個變量並且使用的格式:

數據類型 變量名稱; // 創建了一個變量
變量名稱 = 數據值; // 賦值,將右邊的數據值,賦值交給左邊的變量

一步到位的格式:

數據類型 變量名稱 = 數據值; // 在創建一個變量的同時,立刻放入指定的數據值
*/
public class Demo02Variable {
    public static void main(String[] args) {
        //定義字節型變量
        byte b = 100;
        System.out.println(b);

        //定義短整型變量
        short s = 1000;
        System.out.println(s);

        //定義整型變量
        int i = 123456;
        System.out.println(i);

        //定義長整型變量
        long l = 12345678900L;
        System.out.println(l);

        //定義單精度浮點型變量
        float f = 5.5F;
        System.out.println(f);
        
        //定義雙精度浮點型變量
        double d = 8.5;
        System.out.println(d);

        //定義布爾型變量
        boolean bool = false;
        System.out.println(bool);

        //定義字符型變量
        char c = 'A';
        System.out.println(c);
    }
}

注意事項:

  • 字符串不是基本類型,而是引用類型。
  • 浮點型可能只是一個近似值,並非精確的值。
  • 數據範圍與字節數不一定相關,例如float數據範圍比long更加廣泛,但是float是4字節,long是8字節。
  • 浮點數當中默認類型是double。如果一定要使用float類型,需要加上一個後綴F。如果是整數,默認爲int類型,如果一定要使用long類型,需要加上一個後綴L。推薦使用大寫字母后綴。

基本數據類型轉換

Java程序中要求參與的計算的數據,必須要保證數據類型的一致性,如果數據類型不一致將發生類型的轉換。java中數據類型轉換分爲自動類型轉換和強制類型轉換。

自動轉換

一個 int 類型變量和一個 byte 類型變量進行加法運算, 結果會是什麼數據類型?

public class Demo {
    public static void main(String[] args) {
        int a = 41;
        byte b = 66;
        // byte result = a + b; 錯誤,不能使用byte類型的數據接收結果
        int result = a + b;

    }
}

運算結果,變量的類型將是 int 類型,這就是出現了數據類型的自動類型轉換現象。byte 類型內存佔有1個字節,在和 int 類型運算時會提升爲 int 類型 ,自動補充3個字節,因此計算後的結果還是 int 類。同樣道理,當一個 int 類型變量和一個 double 變量運算時, int 類型將會自動提升爲 double 類型進行運算。 

  • 概念:容量小的類型自動轉換爲容量大的數據類型就是自動類型轉換
  • 轉換規則:有多種類型的數據混合運算時,系統首先自動將所有數據轉換成容量最大的那種數據類型,然後再進行計算。
  • 數據類型按容 量大小排序爲:

                 

  • 特點:代碼不需要進行特殊處理,自動完成。

注意事項:

  • byte,short,char之間不會相互轉換,他們三者在計算時首先轉換爲int類型。
  • boolean類型不能與其它數據類型運算。
  • 當把任何基本數據類型的值和字符串(String)進行連接運算時(+),基本數據類型的值將自動轉化爲字符串(String)類型。

舉例:



/*

自動類型轉換(隱式)
    1. 特點:代碼不需要進行特殊處理,自動完成。
    2. 規則:數據範圍從小到大。

說明:此時的容量大小指的是,表示數的範圍的大和小。比如:float容量要大於long的容量
*/
public class Demo01DataType {
    public static void main(String[] args) {
        // 直接寫上的整數,默認就是int類型
        System.out.println(1024);//1024
        // 直接寫上的浮點數,默認就是double類型
        System.out.println(3.14);//3.14
        
        /*
        左邊是long類型,右邊是默認的int類型,左右不一樣
        一個等號代表賦值,將右側的int常量,交給左側的long變量進行存儲
        int類型賦值給long類型存儲,符合了數據範圍從小提升到大規則
        這一行代碼發生了自動類型轉換。
         */
        long num1 = 100;
        System.out.println(num1); // 100

        /*
        左邊是double類型,右邊是float類型,左右不一樣
        float類型 賦值給 double類型存儲,符合了數據範圍從小提升到大規則
         也發生了自動類型轉換
         */
        double num2 = 2.5F;
        System.out.println(num2); // 2.5

        /*
        左邊是float類型,右邊是long類型,左右不一樣
        long類型賦值給float類型存儲,範圍是float更大一些,符合從小到大的規則
        也發生了自動類型轉換
         */
        float num3 = 30L;
        System.out.println(num3); // 30.0
    }
}

強制轉換 

將 1.5 賦值到 int 類型變量會發生什麼?產生編譯失敗,肯定無法賦值

int i = 1.5; // 錯誤 

double 類型內存8個字節, int 類型內存4個字節。 1.5 是 double 類型,取值範圍大於 int 。可以理解爲 double 是8升的水壺, int 是4升的水壺,不能把大水壺中的水直接放進小水壺去。想要賦值成功,只有通過強制類型轉換,將 double 類型強制轉換成 int 類型才能賦值。強制類型轉換,使用時要加上強制轉換符:(),但可能造成精度降低或溢出,格外要注意。

  • 概念:將 取值範圍大的類型 強制轉換成 取值範圍小的類型 。
  • 格式:數據類型 變量名=(數據類型)被轉數據值; 
  • 特點:代碼需要進行特殊的格式處理,不能自動完成。

將 1.5 賦值到 int 類型要想成功就必須使用強制類型轉換,代碼修改爲: 

// double類型數據強制轉成int類型,直接去掉小數點。
 int i = (int)1.5;

同樣道理,當一個 short 類型與 1 相加,我們知道會類型提升,但是還想給結果賦值給short類型變量,就需要強制轉換。

public class Demo {

    public static void main(String[] args) {
        //short類型變量,內存中2個字節
        short s = 1;
        /* 
        s和1做運算的時候,1是int類型,s會被提升爲int類型 s+1後的結果是int類型,
        將結果在賦值會short類型時發生錯誤 short內存2個字節,int類型4個字節
        必須將int強制轉成short才能完成賦值 
        s = s + 1;編譯失敗 
        */
        s = (short) (s + 1);//編譯成功 
    }
}

注意事項:

  • 強制類型轉換一般不推薦使用,因爲有可能發生精度損失、數據溢出。
  • byte/short/char這三種類型都可以發生數學運算,例如加法“+”.

代碼舉例:

/*
Java程序中要求參與的計算的數據,必須要保證數據類型的一致性,如果數據類型不一致將發生類型的轉換。
強制類型轉換
    1. 特點:代碼需要進行特殊的格式處理,不能自動完成。
    2. 格式:範圍小的類型 範圍小的變量名 = (範圍小的類型) 原本範圍大的數據;

*/
public class Demo02DataType {
    public static void main(String[] args) {
        /* 左邊是int類型,右邊是long類型,不一樣
         long 類型交給 int類型存儲,不是符合知道類型轉換的規則
        不能發生自動類型轉換!要想編譯成功就必須使用強制類型轉換
        格式:範圍小的類型 範圍小的變量名 = (範圍小的類型) 原本範圍大的數據;
        */
        int num = (int) 100L;
        System.out.println(num);//100

        // long強制轉換成爲int類型,可能發生數據溢出。
        int num2 = (int) 6000000000L;
        System.out.println(num2); // 1705032704

        // double 強制類型轉成爲 int,會發生精度損失。這並不是四捨五入,所有的小數位都會被捨棄掉
        int num3 = (int) 3.99;
        System.out.println(num3); // 3

        /*
        這是一個字符型變量,裏面是大寫字母A
        計算機的底層會用一個數字(二進制)來代表字符A,就是65
        一旦char類型進行了數學運算,那麼字符就會按照一定的規則翻譯成爲一個數字
         */
        char c = 'A';
        System.out.println(c + 1);//66

        byte b1 = 40;
        byte b2 = 50;
        // byte + byte --> int + int --> int
        int i = b1 + b2;
        System.out.println(i); // 90

        short s = 60;
        /*
         byte + short --> int + int --> int
         數據範圍大的類型強制轉換爲數據範圍小的類型:
         注意必須保證邏輯上真實大小本來就沒有超過short範圍,否則會發生數據溢出
          */
        short result = (short) (b1 + s);
        System.out.println(result); // 100
    }
}

ASCII編碼表

在計算機的內部都是二進制的0、1數據,如何讓計算機可以直接識別人類文字的問題呢?就產生出了編碼表的概念。編碼表就是將人類的文字和一個十進制數進行對應起來組成一張表格。將所有的英文字母,數字,符號都和十進制進行了對應,因此產生了世界上第一張編碼表ASCII(American Standard Code for Information Interchange 美國標準信息交換碼)。常見的字符和十進制數的對照關係如下圖所示

查看下列代碼,請解釋出爲什麼結果是98

public class Demo {

    public static void main(String[] args) {
        //字符類型變量
        char c = 'a';
        int i = 1;
        //字符類型和int類型計算
        System.out.println(c + i);//98
    }
}

在char類型和int類型計算的過程中,char類型的字符先查詢編碼表,得到97,再和1求和,結果爲98。char類型提升爲了int類型。char類型內存2個字節,int類型內存4個字節。

 

 

發佈了0 篇原創文章 · 獲贊 7 · 訪問量 5994
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章