Java的基本數據類型


變量就是申請內存來存儲值。也就是說,當創建變量的時候,需要在內存中申請空間。

內存管理系統根據變量的類型為變量分配存儲空間,分配的空間只能用來儲存該類型數據。

因此,通過定義不同類型的變量,可以在內存中儲存整數、小數或者字符。

Java的兩大數據類型:

  • 內置數據類型
  • 引用數據類型

內置數據類型

Java語言提供了八種基本類型。六種數字類型(四個整數型(默認是int 型),兩個浮點型(默認是double 型)),一種字符類型,還有一種布爾型。

byte:

  • byte數據類型是8位、有符號的,以二進制補碼表示的整數;(256個數字),占1字節
  • 最小值是-128(-2^7);
  • 最大值是127(2^7-1);
  • 默認值是0;
  • byte類型用在大型數組中節約空間,主要代替整數,因為byte變量占用的空間只有int類型的四分之一;
  • 例子:byte a = 100,byte b = -50。

short:

  • short數據類型是16位、有符號的以二進制補碼表示的整數,占2字節
  • 最小值是-32768(-2^15);
  • 最大值是32767(2^15 - 1);
  • Short數據類型也可以像byte那樣節省空間。一個short變量是int型變量所占空間的二分之一;
  • 默認值是0;
  • 例子:short s = 1000,short r = -20000。

int:

  • int數據類型是32位、有符號的以二進制補碼表示的整數;占3字節
  • 最小值是-2,147,483,648(-2^31);
  • 最大值是2,147,485,647(2^31 - 1);
  • 一般地整型變量默認為int類型;
  • 默認值是0;
  • 例子:int a = 100000, int b = -200000。

long:

  • long數據類型是64位、有符號的以二進制補碼表示的整數;占4字節
  • 最小值是-9,223,372,036,854,775,808(-2^63);
  • 最大值是9,223,372,036,854,775,807(2^63 -1);
  • 這種類型主要使用在需要比較大整數的系統上;
  • 默認值是0L;
  • 例子: long a = 100000L,int b = -200000L。

long a=111111111111111111111111(錯誤,整數型變量默認是int型)

long a=111111111111111111111111L(正確,強制轉換)

float:

  • float數據類型是單精度、32位、符合IEEE 754標准的浮點數;占4字節    -3.4*E38- 3.4*E38。。。浮點數是有舍入誤差的
  • float在儲存大型浮點數組的時候可節省內存空間;
  • 默認值是0.0f;
  • 浮點數不能用來表示精確的值,如貨幣;
  • 例子:float f1 = 234.5f。
  • float f=6.26(錯誤  浮點數默認類型是double類型)
  • float f=6.26F(轉換正確,強制)
  • double d=4.55(正確)

double:

  • double數據類型是雙精度、64位、符合IEEE 754標准的浮點數;
  • 浮點數的默認類型為double類型;
  • double類型同樣不能表示精確的值,如貨幣;
  • 默認值是0.0d;
  • 例子:double d1 = 123.4。

boolean:

  • boolean數據類型表示一位的信息;
  • 只有兩個取值:true和false;
  • 這種類型只作為一種標志來記錄true/false情況;
  • 默認值是false;
  • 例子:boolean one = true。

char:

  • char類型是一個單一的16位Unicode字符;用 ‘’表示一個字符。。java 內部使用Unicode字符集。。他有一些轉義字符  ,2字節
  • 最小值是’\u0000’(即為0);
  • 最大值是’\uffff’(即為65,535);可以當整數來用,它的每一個字符都對應一個數字
  • package com.bjsxt.basic;

    public class TestChar {

    public static void main(String[] args) {
    // TODO 自動生成的方法存根
    char c1 = 'a';
    char c2 = '上';
    System.out.println(c1);
    System.out.println(c2);
    System.out.println(c1 + c2);
    }

    }

  • 輸出是:

    a

    20075

  • char數據類型可以儲存任何字符;
  • 例子:char letter = ‘A’。

char 類型可以參與整型計算嗎,然后轉換成字符型

package com.bjsxt.basic;

public class TestChar {

public static void main(String[] args) {
// TODO 自動生成的方法存根
char c1 = 'a';
char c2 = '上';
System.out.println(c1);
System.out.println(c2);
System.out.println(c1 + c2);
int i=c1 + c2;
char dd=(char) (i);
System.out.println(dd);
}

}

 

 

輸出

 

 

a

20075

實例

對於數值類型的基本類型的取值范圍,我們無需強制去記憶,因為它們的值都已經以常量的形式定義在對應的包裝類中了。請看下面的例子:

public class PrimitiveTypeTest { 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); } } 

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

基本類型:byte 二進制位數:8 包裝類:java.lang.Byte 最小值:Byte.MIN_VALUE=-128 最大值:Byte.MAX_VALUE=127 基本類型:short 二進制位數:16 包裝類:java.lang.Short 最小值:Short.MIN_VALUE=-32768 最大值:Short.MAX_VALUE=32767 基本類型:int 二進制位數:32 包裝類:java.lang.Integer 最小值:Integer.MIN_VALUE=-2147483648 最大值:Integer.MAX_VALUE=2147483647 基本類型:long 二進制位數:64 包裝類:java.lang.Long 最小值:Long.MIN_VALUE=-9223372036854775808 最大值:Long.MAX_VALUE=9223372036854775807 基本類型:float 二進制位數:32 包裝類:java.lang.Float 最小值:Float.MIN_VALUE=1.4E-45 最大值:Float.MAX_VALUE=3.4028235E38 基本類型:double 二進制位數:64 包裝類:java.lang.Double 最小值:Double.MIN_VALUE=4.9E-324 最大值:Double.MAX_VALUE=1.7976931348623157E308 基本類型:char 二進制位數:16 包裝類:java.lang.Character 最小值:Character.MIN_VALUE=0 最大值:Character.MAX_VALUE=65535

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

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


引用類型

  • 引用類型變量由類的構造函數創建,可以使用它們訪問所引用的對象。這些變量在聲明時被指定為一個特定的類型,比如Employee、Pubby等。變量一旦聲明后,類型就不能被改變了。
  • 對象、數組都是引用數據類型。
  • 所有引用類型的默認值都是null。
  • 一個引用變量可以用來引用與任何與之兼容的類型。
  • 例子:Animal animal = new Animal(“giraffe”)。

Java常量

常量就是一個固定值。它們不需要計算,直接代表相應的值。

常量指不能改變的量。 在Java中用final標志,聲明方式和變量類似:

final double PI = 3.1415927;

雖然常量名也可以用小寫,但為了便於識別,通常使用大寫字母表示常量。

字面量可以賦給任何內置類型的變量。例如:

byte a = 68; char a = 'A'

byte、int、long、和short都可以用十進制、16進制以及8進制的方式來表示。

當使用常量的時候,前綴0表示8進制,而前綴0x代表16進制。例如:

int decimal = 100; int octal = 0144; int hexa = 0x64;

和其他語言一樣,Java的字符串常量也是包含在兩個引號之間的字符序列。下面是字符串型字面量的例子:

"Hello World" "two\nlines" "\"This is in quotes\""

字符串常量和字符常量都可以包含任何Unicode字符。例如:

char a = '\u0001'; String a = "\u0001";

Java語言支持一些特殊的轉義字符序列。

符號 字符含義
\n 換行 (0x0a)
\r 回車 (0x0d)
\f 換頁符(0x0c)
\b 退格 (0x08)
\s 空格 (0x20)
\t 制表符
\" 雙引號
\' 單引號
\\ 反斜杠
\ddd 八進制字符 (ddd)
\uxxxx 16進制Unicode字符 (xxxx)

 

這一節講解了Java的基本數據類型。下一節將探討不同的變量類型以及它們的用法。

 


免責聲明!

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



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