Java變量(標識符;數據類型;變量分類)


 
 
 

Java變量

一、變量的命名

——標識符

  • 標識符由數字、字母、下划線_、美元符$組成,但不能以數字開頭。
  • 標識符對字母大小寫敏感。
  • 標識符無長度限制。
  • 不能以關鍵字作為標識符。
/* 合法的標識符: */
int amount = 17;
int $apple = 8;
int _index = 3;
int 身高 = 180;
/* 不合法的標識符: */
int float = 3.14;  // 不能使用關鍵字
int #Index = 2;    // 不能使用#
int 3a = 9;        // 不能以數字開頭

二、變量的分類

——局部變量、成員變量、靜態變量

(一)局部變量:在方法內或語句塊中定義,生命周期從聲明處開始到方法或語句塊結束處。

★ 使用局部變量前必須先聲明和初始化。

public class TestVarible {
    public static void main(String args[]) {
        {
            int age;    // age是局部變量,只屬於本語句塊
            System.out.printf("age = %d", age); // 編譯出錯, age沒有初始化
        }
        age = 18;       // 編譯出錯, age沒定義
    }
}

 

(二)成員變量:在方法外部、類的內部定義的變量,生命周期伴隨對象始終。

★ 聲明成員變量時會自動初始化,默認初始值見下表:

默認初始值
數據類型 初始值
int 0
char '\u0000'
double 0.0
boolean false
public class TestVarible {
    int testValue;  // 成員變量, 初始值為0
}

 

(三)靜態變量:使用static定義的變量,生命周期伴隨類始終。

★ 聲明靜態變量時會自動初始化,默認初始值與成員變量相同。

public class TestVarible {
    static double score;    // 靜態變量, score屬於類, 初始值為0.0
    boolean flag;           // 成員變量, flag屬於對象, 初始值為false
    public static void main(String args[]) {
        {
            int age;        // 局部變量, age只屬於本語句塊
            age = 17;
        }
        int fighting = 88;  // 局部變量,fighting屬於方法
    }
}

三、變量、常變量

——聲明、初始化

★ 常變量與變量的唯一區別是:常變量初始化后不可再改變。

數據類型  變量名;           // 變量聲明
final 數據類型  變量名;     // 常變量聲明
變量名 = 值;               // 變量初始化

★ 初始化變量時,整數默認為int類型,浮點數默認為double類型。

四、變量的數據類型

    ——基本數據類型、引用類型

變量的數據類型

五、基本數據類型

——boolean、byte、short、char、int、long、float、double

★ 低范圍變量可賦值給高范圍變量,超出范圍時需加轉換!

(一)整型:byte、short、int、long

1. 基本信息

數據類型 占用內存 表示范圍 定義
byte 1字節 -128~127 -
short 2字節 -32768~32767 -
int 4字節 約21億 -
long 8字節 約9.22E18 在末尾增加'L'或'l'

2. 表示形式

  • 10進制:-
  • 16進制:以0x或0X開頭
  •   8進制:以0開頭
  •   2進制:以0b或0B開頭
public class TestVarible {
    public static void main(String args[]) {
        /* 正確的聲明和初始化 */
        int a = 320000;
        int b = '對';
        long c = a;
        long d = 3200000000L;  // 數值超出21億, 需要增加轉換:在末尾加上"L"或"l"

        /* 非法的初始化 */
        byte e = 128;           // 超出范圍
        unsigned int f = 200;   // 不存在unsigned
    }
}

 

(二)浮點型:float、double

1. 基本信息

數據類型 占用內存 表示范圍 定義
float 4字節 -3.403E38~3.403E38 在末尾增加'F'或'f'
double 8字節 -1.798E308~1.798E308 在末尾增加'D'或'd'

2. 表示形式

  • 10進制:-
  • 科學計數法:aEb或aeb (a為實數,b為整數)
public class TestVarible {
    public static void main(String args[]) {
        /* 正確的聲明和初始化 */
        float a = 3.14F;
        float b = (int)6.89;
        float c = 0x0123;           // 0x0123=291, 在21億范圍內

        /* 非法的初始化 */
        float d = 1e4;              // 編譯錯誤, 1e4為double型
        float e = 3.03d;            // 編譯錯誤, 3.03d為double型

        /* float型與double型最好不要進行比較 */
        float m = 0.1f;
        double n = 0.1;
        System.out.println(m==n);   // 輸出為false
    }
}

 

(三)字符型:char

1. 基本信息

char類型占2字節,使用Unicode編碼形式,其表示范圍是0~65535。

2. 表示形式

  • 字符常量:'x'
  • 16進制:'\uxxxx' (x在0~f范圍內)
  • 轉義字符:'\x' (x有不同含義)
public class TestVarible {
    public static void main(String args[]) {
        /* 正確的聲明和初始化 */
        char a = '步';
        char b = 24179;
        char c = '\u51e1';
        System.out.printf("%c%c%c", a, b, c);

        /* 非法的初始化 */
        char d = '\uabcg';  // g超出0~f范圍
        int e = 'a';
        char f = e;         // e為int型, 高於char類型
    }
}

 

(四)布爾型:boolean

boolean類型占1位(1bit),只有true和false兩個值。

 

 【參考資料】:

變量的數據類型圖片:速學堂

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM