Java資料類型,

來源:互聯網
上載者:User

Java資料類型,

一、首先大概瞭解一下關於資料的內容或要點。

  1、程式在執行的過程中,需要對資料進行運算,也需要儲存資料。這些資料可以是由使用者輸入,也可以是從檔案中取得的,也可以是從網路中擷取的。

    在程式啟動並執行過程中,這些資料通過變數儲存在記憶體中,以便程式隨時使用。

  2、若需要找到儲存在記憶體中的資料,就需要將資料指定給變數,並命名,通過變數名(儲存資料的記憶體空間)來找到相關資料。

  3、一個變數代表一個記憶體空間,資料就儲存在這個空間中,然而由於資料在儲存時需要的容量各不相同,不同的資料就必須要分配不同大小的記憶體空間來儲存,因此,對不同的資料用不同的資料類型來區分。

  4、基礎資料型別 (Elementary Data Type)的資料所佔的記憶體空間是固定的,在記憶體儲存的是數值的本身,而引用資料類型存放的是指向該資料指向的地址,往往是由多種基礎資料型別 (Elementary Data Type)組成的,對引用資料類型的資料應用為對象的引用,所以也被稱為複合資料型別。

二、Java的資料類型可以基本地分為8種基礎資料型別 (Elementary Data Type)和引用資料類型。

資料類型 關鍵字 佔用位元組數 預設數值 取值範圍
邏輯型 boolean 1 false true;false
位元組型 byte 1 0 -27~27-1
短整型 short 2 0 -215~215-1
整型 int 4 0 -231~231-1
長整型 long 8 0L -263~263-1
單精確度浮點型 float 4 0.0f

負數範圍:-3.4028235E+38~-1.4E-45

正數範圍:1.4E-45~3.4028235E+38

雙精確度浮點型 double 8 0.0d

負數範圍:-1.7976931348623157E+380~-4.9E-324

正數範圍:4.9E-324~1.7976931348623157E+308

字元型 char 2 '\u0000' '\u0000'~'\uffff'

 

三、討論一下java中資料類型儲存的位置

    基礎資料型別 (Elementary Data Type)儲存位置,取決於基本類型在哪聲明:         1.基礎資料型別 (Elementary Data Type)在方法中聲明時,其變數名和值都是儲存在java棧中的;               在方法中聲明基本類型資料:                    例: int  a = 10                     ①  在棧中聲明一個變數名為a的引用;                     ②  在棧中尋找是否有字面值為10的地址,如果沒有就開闢一個存放字面值是10的地址;                     ③  將變數名為a的引用指向字面值為10的地址;          2.基礎資料型別 (Elementary Data Type)在類中聲明時則是儲存在堆記憶體中的;                     ①  在類中聲明的基礎資料型別 (Elementary Data Type),在類載入時會儲存到方法區中;                     ②  在java堆中從產生代表這個類的java.lang.Class對象,作為方法區這些資料的訪問入口;                     ③  static 關鍵字修飾的資料是屬於類本身的,儲存在方法區中;                     ④  final 關鍵詞修飾的資料表示引用不變的,儲存在常量池中;          3.基礎資料型別 (Elementary Data Type)的封裝類:                     ①  Integer i = 10; 同 i = 10 的聲明過程。                     ②  Integer i = new Integer(10);   資料10 是儲存在堆中的;  引用資料類型一定輸儲存在堆中的嗎?        1. 特殊的String類                   例 : String str = “abc”;                   ①  在棧中聲明一個變數名為str的引用;                   ②  在常量池中尋找是否有“abc”的字串對象,如果沒有就在常量池中建立儲存一個值為“abc”的字串對象;                   ③  將str的引用指向字串對象“abc”;                   ④ 當 再次聲明 String str1 = "abc",常量池中已經有“abc”對象,所以str1直接指向abc的地址;                   ⑤ str = str1,引用資料類型比較,比較的是應用的地址;            註: String str = “abc” 沒有建立或建立一個對象        2.其他參考型別                  Stirng str = new String("abc");                   ① 在棧中聲明一個變數名為str的引用;                   ② 在堆中建立儲存一個字串對象“abc”;                   ③ 檢查常量池中是否有字串對象“abc”,如果沒有就在常量池中建立儲存一個值為“abc”的字串對象;                   ④ 將堆中字串對象“abc”與常量池中字串對象“abc”聯絡起來,可以用intern方法返回常量池中的對象的引用;                   ④ 將str的引用指向堆中 字串對象“abc”;       註: String str = new String ("abc")建立一個或兩個對象;

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.