Java 基礎資料型別 (Elementary Data Type)

來源:互聯網
上載者:User

標籤:方法   單個字元   區別   資料類型   java   div   body   分配   強制類型轉換   

 

  Java資料類型分為基礎資料型別 (Elementary Data Type)與引用資料類型。

  

  1 基礎資料型別 (Elementary Data Type)

byte:Java中最小的資料類型,在記憶體中佔1個位元組(8 bit),取值範圍-128~127,預設值0

short:短整型,2個位元組(16 bit),取值範圍-32768~32717,預設值0

int:整型,用於儲存整數,在記憶體中佔4個位元組,取值範圍-2147483648~2147483647,預設值0

long:長整型,在記憶體中佔8個位元組-2^63~2^63-1,預設值0L

 

float:浮點型,在記憶體中佔4個位元組,用於儲存帶小數點的數字(與double的區別在於float類型有效小數點只有6~7位),預設值0

double:雙精確度浮點型,用於儲存帶有小數點的數字,在記憶體中佔8個位元組,預設值0

 

char:字元型,用於儲存單個字元,記憶體中佔2個位元組,取值範圍0~65535,預設值為空白

boolean:布爾類型,佔1個位元組,用於判斷真或假(僅有兩個值,即true、false),預設值false

 

2 參考型別

Java語言本身不支援C++中的結構(struct)或聯合(union)資料類型,它的複合資料型別一般都是通過類或介面進行構造,類提供了捆綁資料和方法的方式,同時可以針對程式外部進行資訊隱藏。參考型別分3種:類,介面,數組;

類(Class):所有的類,無論是Java自身已經存在的,還是使用者後來建立的;

Objec類:它是所有類的父類,每個類都實現這個類的方法;用Object 可以定義所有的類;

String:String類代表字串,Java

介面(interface): 系統內建或者使用者建立的

數組(array): 系統內建或者使用者建立的

 

3 Java中的資料類型在記憶體的儲存原理

(1) 基礎資料型別 (Elementary Data Type)的儲存原理:所有的單一資料型別不存在“引用”的概念,基礎資料型別 (Elementary Data Type)都是直接儲存在記憶體中的記憶體棧上的,資料本身的值就是儲存在棧空間裡面,Java語言裡面八種資料類型是這種儲存模型;

(2) 參考型別的儲存原理:參考型別繼承於Object類(也是參考型別)都是按照Java裡面儲存物件的記憶體模型來進行資料存放區的,使用Java記憶體堆和記憶體棧來進行這種類型的資料存放區,簡單地講,“引用”(儲存物件在記憶體堆上的地址)是儲存在有序的記憶體棧上的,而對象本身的值儲存在記憶體堆上的;

基礎資料型別 (Elementary Data Type)和參考型別的區別主要在於基礎資料型別 (Elementary Data Type)是分配在棧上的,而參考型別是分配在堆上的

舉例說明

我們分析一下 == 和equals()的區別

首先,定義兩個String 數組對象

String[] a={"latiny1","latiny2"};
String[] b={"latiny1","latiny2"};

然後比較
if(a==b)
{
System.out.println("a==b");
}
else
{
System.out.println("a!=b");
}

程式輸出a!=b

原因:a和b的地址是不相同的,a==b比較的是兩個變數的地址,資料a與b的地址不一樣

 

不論是基礎資料型別 (Elementary Data Type)還是參考型別,他們都會先在棧中分配一塊記憶體,對於基本類型來說,這塊地區包含的是基本類型的內容;而對於參考型別來說,這塊地區包含的是指向真正內容的指標,真正的內容被手動的分配在堆上。

 

4 基本類型轉換

(1)自動類型轉換

Java所有的數實值型別變數都可以互相轉換,如果系統把某種基本類型的值直接賦給另一種基本類型的變數,則這種方式被稱為自動類型轉換。

int e = 1;

double d =e;

以上代碼不會報錯,系統會自動轉換。

(2) 強制類型轉換

當把一個範圍大的數值或變數賦給另一個範圍小的變數時,需要進行強制轉換。

  double d =1.5;

  int e = d;

  以上代碼會報錯,把大範圍的數值賦給小範圍的變數,需要強制轉換,這樣才能通過編譯,且大範圍的數值會丟失精度。

  int e = (int) d;

 

Java 基礎資料型別 (Elementary Data Type)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.