java-基本數據類型介紹

在寫java代碼的時候,全部的變量都須要聲明一種數據類型,在java的代碼中,數據類型分爲基本數據類型和引用數據類型。下面先介紹基本數據類型java

基本數據類型由8個:spa

一、byte字節數據類型,取值範圍爲-128到127。code

二、short短整數數據類型,取值範圍爲-2^15到2^15-1。blog

三、int整數數據類型,取值範圍爲-2^31到2^31-1。虛擬機

四、long長整數數據類型,取值範圍爲-2^63到2^63-1。編譯

五、float單精度浮點型,取值範圍爲4個字節,當數值範圍過大或者太小的時候,會出現數值精度的問題,所以對數據精度要求較高的,不推薦使用。class

六、double雙精度浮點型,取值範圍爲8個字節,一樣的會發生數據計算事後數值精度的問題。容器

七、char字符數據類型,用單引號括起來的單個字符。變量

八、boolean布爾數據類型,這種數據類型只有兩個值,true和false,true表示真,false表示假。數據類型

 

如下是定義變量,並聲明數據類型的事例代碼:

public void method_1(){
     //byte字節數據類型:byte,取值只能是-128到127
     byte b = 127;
     //short短整形數據類型,不經常使用
     short s = 100;
     //int整形數據類型,經常使用
     int i = 100;
     //long長整形數據類型,不經常使用,定義的值必須在後面加上一個L
     long l = 100L;
     //float單精度數據類型,取值範圍爲4個字節,在定義的值後面加上f
     float f = 100.1f;
     //double雙精度數據類型,取值範圍8個字節,值後面的d能夠省略
     double d = 100.1;
     //char字符數據類型,用單引號括起來的單個字符
     char   c = 'a';
     //boolean布爾數據類型,只有兩個值,true和false
     boolean bool = true;               
}

java一共只有8種基本數據類型,那麼,對於一個變量,怎麼進行數據類型的轉換呢?好比,將int類型轉換成long或者其餘數據類型等。

對於數據類型的轉換分爲兩種:隱式轉換和顯示轉換(強制轉換)。

1)隱式轉換:數據類型自動的轉換,這種方式是用在小範圍的數據向大範圍的數據進行轉換,好比:int類型向long類型進行轉換。

用圖示舉例:

以上圖爲例:好比int數據類型爲一個容器,如今int裏面是裝滿了水的,要將int裏面的水,倒入long數據類型的容器裏面,會發現,long的數據類型容量比int的數據類型容量要大,則能夠將int容器裏面的水裝入long數據類型的水中,這就是long數據類型的取值範圍比int數據類型的取值範圍大,則虛擬機會自動的將int數據類型的變量,自動的轉換成long數據類型。

事例代碼:

public void method_2(){
   //定義一個變量a,數據類型爲int
    int a = 1000;
   //定義一個變量b,數據類型爲long,而且將a的變量賦值給b
   long b = a;  
}

以上代碼中,a的數據類型爲int,b的數據類型爲b,可是卻可以將a的值直接賦值給b變量,這裏面就涉及的是隱式轉換,int b = a,就是將a的int型轉換成long類型,再賦值給b。

2)顯示轉換(強制轉換):

用圖示舉例:

如上圖爲例:仍是將long數據類型和int數據類型分別當作一個容器,如今要將long數據類型裏面的水,裝入int數據類型中,顯而易見,int數據類型可能並裝不下long數據類型的全部水,這個時候就會發生溢出,數據也是同樣,若是將大範圍的數據類型轉換成小範圍的數據類型,就可能形成數據丟失。所以代碼會報錯,錯誤緣由:

可是有多是這種狀況:

如上圖所示,咱們本身明確的知道,long數據類型裏面的水,裝入int數據類型中,也是不會出現溢出的,這個時候,就須要進行強制轉換,將long數據類型的變量,強制轉換成int。

事例代碼:

1 public void method_3(){
2     //定義一個變量a,數據類型爲long
3    long a = 1000;
4    //定義一個變量爲b,數據類型爲int,而且將數據上面的a賦值給b
5    int  b = (int)a;
6 }

如以上代碼,想要將數據類型爲long的變量a賦值賦值給數據類型爲int的變量b,則須要先將a進行強制轉換成int:(int)a,再賦值給b,不然會報錯,致使編譯失敗

相關文章
相關標籤/搜索