Java基礎(二)Java的常量與變量

變量與常量

標識符

標識符的命名規則:

1)標識符可以由字母數字下劃線(_)美元符($)組成,不能以數字開頭

2)標識符嚴格區分大小寫

3)標識符不能是Java關鍵字保留字

4)標識符的命名最好能反映出其作用。

例如合法的標識符:

       Hello ,  hello_test ,  _hello ,  Void  ,   abc$123  

非法的標識符:

      class ,  123abc ,   abc 123  ,  void

 

關鍵字

標識符不能爲關鍵字和保留字,那我們來認識一下哪些是Java中的關鍵字:

編程語言學習經驗談

像學習英語、日語等語言一樣,接受語言的語法。

變量

什麼是變量

變量的三個元素:變量類型變量名變量值

我們可以通過一間酒店的房間作爲例子來類比說明:

房間 變量
入住的客人(張三、李四)  變量值(1、Lisi)
房間名字 (101、203) 變量名(name、age、sex)
房間類型(單人間、標準間、商務間) 變量類型(int、float、char)

變量名的命名規則:

1)滿足標識符命名規則;

2)符合駝峯法命名規範。

示例:

        年齡   age

               學生姓名   stuName

要求:

1)簡單,做到見名知意;

2)變量名的長度沒有限制。

 

類的命名規則:

滿足Pascal命名法。

示例:

                HelloWorld

 

數據類型

 

基本數據類型變量的存儲

    數據類型分爲基本數據類型引用數據類型

           引用數據類型包括數組和類等。

                  類定義的變量又叫對象。

    變量按照作用範圍可以分爲:

                  -類級、對象實例級、方法級、塊級。

整型字面值

    Java中有三種表示整數的方法:十進制、八進制、十六進制。

    如:123(十進制),023(八進制), 0x1357(十六進制),  0X3c(十六進制),  0x1abcL(表示長整型的十六進制數)。

 

    進製表示

    八進制:以0開頭,包括0~7的數字。

           如:037  ,  056

    十六進制表示:以0x或0X開頭,包括0~9的數字,及字母a~f,A~F;a/A表示數字10,以此類推。

           如:0x12,0xabcf   ,   0XABCFF

 

    變量聲明

    格式:   數據類型  變量名

    例:

    int n;      //聲明整型變量n

    long count;   //聲明長整型變量count

    賦值

    在Java中使用   "="   運算符進行賦值。

    "="  叫作賦值運算符,將運算符右邊的值賦給左邊的變量。

    例:

int n;   //定義int型變量n

n = 3;   // 將3賦值給n

    我們也可以在定義變量的同時給變量賦值,即變量的初始化。

    例:

int n = 3;    //定義int類型變量存放十進制數據

int octal = 037;  //定義int類型變量存放八進制數據

long longNum = 0xa2cdf3ffL;     //定義long類型變量存放十六進制長整型數據

short shortNum = 123;   //定義變量存放短整型數據

byte b = 10;    //定義變量存放byte類型數據

浮點型字面值

        浮點型字面值默認情況下表示double類型,也可以在值後加d或D。

        如:123.43d或123.43D

               若表示float類型,則需要在字面值後加f或F。

               如:23.4f或23.4F

public class FloatDemo {

    public static void main(String[] args) {

        //定義一個單精度浮點型變量,存放1234.328

        float f = 1234.328f;

        System.out.println("f="+f);





        //定義一個雙精度浮點型變量,存放5623.465

        double d = 5623.465;

        System.out.println("d="+d);





        //double類型變量表示的數據範圍是最大的

        double d1 = 123L;

        System.out.println("d1="+d1);





        //變量間的賦值

        double d2 = d;

        System.out.println("d2="+d2);

    }

}

字符型字面值

 

    字符型字面值用單引號內的單個字符表示。

            如:  'a'           'b'          '$'         單引號中必須只有一個字符。

定義字符型變量

    char a = 'a';

    char ch = 65;

public class CharDemo {

    public static void main(String[] args) {

        //定義一個變量存放字符'a'

        char a = 'a';

        System.out.println("a="+a);

        char ch = 65;

        System.out.println("ch="+ch);

        //char表示的數據範圍是0~65535

        char ch1 = 65535;

        System.out.println("ch1="+ch1);

        //字面值超出表示數據範圍,需要進行強制類型轉換

        char ch2 = (char)65536;

        System.out.println("ch2="+ch2);

    }

}

知識點補充

ASCII碼

ASCII(American Standard Code for Information Interchange,美國標準信息交換代碼)。

它是基於拉丁字母的一套電腦編碼系統,主要用於顯示現代英語和其他西歐語言。

 

ASCII碼錶示

使用7位或8位二進制數組合來表示128或256種可能的字符。

-7位二進制數組合——標準ASCII碼,用於表示大小寫字母、標點符號、美式英語中的控制字符等。

-8位二進制數組合(後128位)——擴展ASCII碼,用於表示特殊符號,外來語言的字母等。

 

Unicode編碼

Unicode編碼的目標是支持世界上所有的字符集

char c = '\u005d';

Unicode表示法,在值前加前綴\u

布爾類型字面值

    布爾值只能定義爲true和false。

    例:

boolean b = true;
boolean flag = false;

 

字符串字面值

    字符串不屬於基本數據類型,它是類!

    雙引號引起來的0個或多個字符。

    例:

String s = "";

    

public class StringDemo {

    public static void main(String[] args) {

        //定義一個空字符串

        String s1 = "";

        System.out.println("s1="+s1);

        //定義一個字符串,內容時Hello

        String s2 = "Hello";

        System.out.println("s2="+s2);

        //定義一個包含unicode字符的字符串

        String s3 = "A\u005d\u005fBCD";

        System.out.println("s3="+s3);

        //定義一個包含空格的字符串,空格也會佔字符

        String s4 = "Hello    World";

        System.out.println("s4="+s4);

    }

}

 

 

轉義字符

字母前面加上捺斜線"\"來表示那些常見的不能顯示的ASCII字符。我們把這些字符稱爲轉義字符,如\t,\n等,因爲後面的字符,都不是它本來的ASCII字符意思了。

 

 

綜合案例

public class VarDemo {

    public static void main(String[] args) {

        //定義兩個整型變量x,y

        //第一種方式,聲明變量的同時賦值——變量的初始化

        //int x = 3,y = 5;

        //先聲明變量,再賦值

        int x,y;

        x=3;

        y=5;

        System.out.println("x="+x);

        System.out.println("y="+y);

        //關於換行的問題

        //函數換行

        System.out.println();

        //轉義字符換行

        System.out.println(x+y+'\n');

        //關於轉義字符

        System.out.println(x+'\t'+y+'\n');     //輸出爲   27    原因 字符本身就是一個整型,此處相當於把字符轉換成整數,然後求和輸出了

        //解決方法

        //第一種,最左側加上  ""  ,變成字符串的連接

        System.out.println(""+x+'\t'+y+'\n');

        //第二種,把單引號改爲雙引號

        System.out.println(x+"\t"+y+'\n');    //輸出爲    3   5

        System.out.println("\n\'"+x+"\'");   // 輸出  '3'

        //定義一個漢字的字符

        char ch = '愛';

        System.out.println(ch);

        char 中文 = '中';     //不建議中文作爲變量名

        System.out.println(中文);

        //用科學計數法表示浮點型數據

        double d = 1.23E5;

        float f = 1.23e5f;

        double d1 = .2;

        System.out.println("d="+d);

        System.out.println("f="+f);

        System.out.println("d1="+d1);

    }

}

 

類型轉換

    類型轉換分爲自動類型轉換和強制類型轉換。

    

自動類型轉換順序(又叫隱式類型轉換)

我們可以通過下圖,總結出自動類型轉換的規律:低級類型到高級類型的自動類型提升。

 

 

強制類型轉換

如果A類型的數據表示範圍比B類型大,則將A類型的值賦值給B類型,需要強制類型轉換。

如:

double d = 123.4;

float f = (float)d;

強制數據類型轉換的格式:(數據類型)數值  

public class TypeExchange {

    public static void main(String[] args) {

        //char類型和int類型之間的轉換

        char c = (char)65536;

        int n;

        n = c;    //隱式類型轉換

        c = (char)n;   //強制類型轉換


        //整型和浮點型的類型轉換問題

        int x = 100;

        long y = x;

        x = (int)y;


        float f = 1000000000000L;

        System.out.println("f="+f);    //  f=1.0E12


        //long 類型  轉換成  float/double  會出現丟失精度問題

        float f1 = 142152563462345231L;

        System.out.println("f1="+f1);    //  f1=1.4215256E17

    }

}

    

常量

    常量可以理解成一種特殊的變量,它的值被設定後,在程序運行過程中不允許被改變。

    格式:final int n = 5;

public class FinalDemo {

    public static void main(String[] args) {

        int m = 5;

        final int N = 5;

        m = 10;

        // N  = 11;   編譯器報錯,不允許修改

        final double PI = 3.14;

        final double MIN_VALUE = 0;

    }

}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章