Java 學習:數據類型


前言:Java屬於強類型語言
強類型語言:要求變量的使用要嚴格符合規定,所有變量都必須先定義后才能使用
優勢就是安全性高,但劣勢速度慢


數據類型

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

  • 基本類型(primitive type)

  • 引用類型(reference type)

    Java中定義了3類8種基本數據類型

    • 數值型- byte、 short、int、 long、float、 double

    • 字符型- char

    • 布爾型-boolean


基本數據類型字典表:

基本數據類型 占字節數 占位數 最小值 最大值 包裝類型 默認值
boolean 1字節 8位 Boolean false
byte 1字節 8位 -128 127 Byte 0
char 2字節 16位 \u0000 \uffff Character \u0000
short 2字節 16位 -2^15 2^15-1 Short 0
int 4字節 32位 -2^31 2^31-1 Integer 0
float 4字節 32位 Float 0.0f
long 8字節 64位 -2^63 2^63-1 Long 0L
double 8字節 64位 Double 0.0d

示例:


public class Test {  
    public static void main(String[] args) {  
        // byte  
        System.out.println("基本類型:byte 二進制位數:" + Byte.SIZE);  
        System.out.println("包裝類:java.lang.Byte");  
        System.out.println("最小值:Byte.MIN_VALUE=" + Byte.MIN_VALUE);  
        System.out.println("最大值:Byte.MAX_VALUE=" + Byte.MAX_VALUE);  
        System.out.println();  
  
        // short  
        System.out.println("基本類型:short 二進制位數:" + Short.SIZE);  
        System.out.println("包裝類:java.lang.Short");  
        System.out.println("最小值:Short.MIN_VALUE=" + Short.MIN_VALUE);  
        System.out.println("最大值:Short.MAX_VALUE=" + Short.MAX_VALUE);  
        System.out.println();  
  
        // int  
        System.out.println("基本類型:int 二進制位數:" + Integer.SIZE);  
        System.out.println("包裝類:java.lang.Integer");  
        System.out.println("最小值:Integer.MIN_VALUE=" + Integer.MIN_VALUE);  
        System.out.println("最大值:Integer.MAX_VALUE=" + Integer.MAX_VALUE);  
        System.out.println();  
  
        // long  
        System.out.println("基本類型:long 二進制位數:" + Long.SIZE);  
        System.out.println("包裝類:java.lang.Long");  
        System.out.println("最小值:Long.MIN_VALUE=" + Long.MIN_VALUE);  
        System.out.println("最大值:Long.MAX_VALUE=" + Long.MAX_VALUE);  
        System.out.println();  
  
        // float  
        System.out.println("基本類型:float 二進制位數:" + Float.SIZE);  
        System.out.println("包裝類:java.lang.Float");  
        System.out.println("最小值:Float.MIN_VALUE=" + Float.MIN_VALUE);  
        System.out.println("最大值:Float.MAX_VALUE=" + Float.MAX_VALUE);  
        System.out.println();  
  
        // double  
        System.out.println("基本類型:double 二進制位數:" + Double.SIZE);  
        System.out.println("包裝類:java.lang.Double");  
        System.out.println("最小值:Double.MIN_VALUE=" + Double.MIN_VALUE);  
        System.out.println("最大值:Double.MAX_VALUE=" + Double.MAX_VALUE);  
        System.out.println();  
  
        // char  
        System.out.println("基本類型:char 二進制位數:" + Character.SIZE);  
        System.out.println("包裝類:java.lang.Character");  
        // 以數值形式而不是字符形式將Character.MIN_VALUE輸出到控制台  
        System.out.println("最小值:Character.MIN_VALUE="  
                + (int) Character.MIN_VALUE);  
        // 以數值形式而不是字符形式將Character.MAX_VALUE輸出到控制台  
        System.out.println("最大值:Character.MAX_VALUE="  
                + (int) Character.MAX_VALUE);  
    }  
}

編譯以上代碼輸出結果如下:
輸出結果1


備注:

Float和Double的最小值和最大值都是以科學記數法的形式輸出的,結尾的"E+數字"表示E之前的數字要乘以10的多少次方。比如3.14E3就是3.14 × 103 =3140,3.14E-3 就是 3.14 x 10-3 =0.00314。

實際上,JAVA中還存在另外一種基本類型 void,它也有對應的包裝類 java.lang.Void,不過我們無法直接對它們進行操作。




引用數據類型:

  • 在Java中,引用類型的變量非常類似於C/C++的指針。引用類型指向一個對象,指向對象的變量是引用變量。這些變量在聲明時被指定為一個特定的類型。變量一旦聲明后,類型就不能被改變了。

  • 對象、數組都是引用數據類型。

  • 所有引用類型的默認值都是null。

  • 一個引用變量可以用來引用任何與之兼容的類型。


學習筆記:

  1. Java 里使用 long 類型的數據一定要在數值后面加上 L,否則將作為整型解析
  1. 在Java的世界里,如果比int類型小的類型做運算,Java在編譯的時候就會將它們統一強轉成int類型。當是比int類型大的類型做運算,就會自動轉換成它們中最大類型那個。
  1. Java默認有小數部分的數為double類型,所以要將一個有小數部分的常量賦值給float類型的變量時,需要在常量后方寫上“f”、“F”,系統才將之認為是一個float類型的值。
  1. 【內存溢出】:在 Java 中,只有數字類型才能參與運算。但是每個數據類型都有他的取值范圍。
    例如 byte 數據類型,它的取值范圍為 -128 - 127 。
    當我們使用 byte b = 128; 時,肯定會報錯。
    但是使用 byte b = 127+1; 並不會報錯。
    而且運算的結果為 -128。
    我們可以向數據類型的取值范圍看作是一個圓,每多一個數據向前移動一個,當數據達到最大值時,我們再加 1,可以就會變成最小值,這就是數據的溢出。
  1. 【類型轉換】:整型、實型(常量)、字符型數據可以混合運算。運算中,不同類型的數據先轉化為同一類型,然后進行運算。轉換是從低級到高級。
    注意:1.不能對布爾值進行轉換
    2.不能把對象類型轉換為不相干的類型
    3.在把大容量轉換到小容量的時候,要強制轉換
    4.轉換的時候可能存在內存溢出,或者精度問題
  1. byte、int、long、和short都可以用十進制、16進制以及8進制的方式來表示。
    當使用字面量的時候,前綴 0 表示 8 進制,而前綴 0x 代表 16 進制, 而前綴 0b 便是二進制。
    例如:
    int a1 = 10; //十進制 => 輸出結果10
    int a2 = 010; //八進制 => 輸出結果8
    int a3 = 0x10; //十六進制 => 輸出結果16
    int a4 = 0b10; //二進制 => 輸出結果2
 int a1 = 10; //十進制 => 輸出結果10
 int a2 = 010; //八進制 => 輸出結果8
 int a3 = 0x10; //十六進制 => 輸出結果16
 int a4 = 0b10; //二進制 => 輸出結果2

編譯並運行上面代碼,輸出結果如下:
輸出結果





免責聲明!

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



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