當前位置:首頁 » 編程語言 » java中的引用數據類型

java中的引用數據類型

發布時間: 2022-11-29 23:52:35

1. java中的引用數據類型是怎樣的

java中有兩種數據類型:基本類型和引用類型。x0dx0a基本類型有8個:x0dx0a 整數類型 byte、short、int、longx0dx0a 浮點數類型 float、doublex0dx0a 字元型 charx0dx0a 布爾類型 booleanx0dx0a引用類型包括三種:x0dx0a 類 Classx0dx0a 介面 Interfacex0dx0a 數組 Arrayx0dx0a基本類型是通過諸如 int a = 5; long b = 6L;的形式來定義的,稱為自動變數,自動變數存放的是字面值,不是類的實例,它存放在內存的堆棧中,數據大小和生存期必須是確定的,存取速度比較快,在堆棧中的字面值可以共享,也就是說我們定義一個int a = 5;然後又定義了一個int b = 5;這時a與b在內存中指向的是同一個字面常量。x0dx0a引用類型一般是通過new關鍵字來創建,比如Integer num = new Integer(3);它存放在內存的堆中,可以在運行時動態的分配內存大小,生存期也不必事先告訴編譯器,當引用類型變數不被使用時,Java內部的垃圾回收器GC會自動回收走。引用變數中存放的不是變數的內容,而是存放變數內容的地址。x0dx0a在參數傳遞時,基本類型都是傳值,也就是傳遞的都是原變數的值得拷貝,改變這個值不會改變原變數,而引用類型傳遞的是地址,也就是參數與原變數指向的是同一個地址,所以如果改變參數的值,原變數的值也會改變。這點要注意。x0dx0a在java中,8種基本類型在java中都有對應的封裝類型,也就是引用類型:x0dx0a 整數類型 Byte、Short、Integer、Longx0dx0a 浮點數類型 Float、Doublex0dx0a 字元型 Characterx0dx0a 布爾類型 Booleanx0dx0a有時候我們會看到這樣的語句 Integer num = 3;Boolean b = true;這樣定義也能行得通,其實這裡面有一個自動裝箱的問題,即java自動把3這個字面常量封裝成了Integer對象,同理也有自動拆箱。x0dx0a還有些需要注意的比較特殊的地方:x0dx0a1.Integer類型x0dx0aInteger i1 = 3;x0dx0aInteger i2 = 3;x0dx0a此時i1 == i2 返回的是truex0dx0aInteger i1 = 128;x0dx0aInteger i2 = 128;x0dx0a此時i1 == i2返回的是false,x0dx0a這時因為Integer的數值在-128~127之間時,即在int的范圍內,默認是按照基本類型int來存放的,仍舊存在堆棧中,如果超出了int的范圍,就按照對象的方式來存放和比較了。x0dx0a x0dx0a2、String類型x0dx0aString類型我們有時候也會直接這樣定義:x0dx0aString s = "abc";x0dx0a這里的"abc"稱為字元串常量,也是存在堆棧中的,s中存放的就是指向這個堆棧地址的引用,如果再定義一個x0dx0aString s1 = "abc";x0dx0a這時,s與s1存放的是同一個地址的引用,即s與s1指向的是同一個字元串常量,x0dx0as == s1的值是true,x0dx0a但是如果有x0dx0aString s2 = new String("abc");x0dx0a這時s == s2則為false,因為使用new之後,每次生成的對象都不是同一個,即使存儲的內容相同。x0dx0a上面的s == s1,s == s2其實比較的都是地址,並不是裡面的內容。如果要比較內容,可以使用equals()方法。x0dx0ax0dx0a其他的就不多說了,打起來太慢了,可以自己去看一下java編程思想。

2. java中基本數據類型和引用數據類型有哪些

java中有8中基本數據類型和3中引用類型

1、8種基本類型
一)、4種整型
byte 1位元組 -128——127
short 2 位元組 -32,768 —— 32,767
int 4 位元組 -2,147,483,648 ——2,147,483,647(超過20億)
long 8 位元組 -9,223,372,036,854,775,808——9,223,372,036854,775,807
二)、 2種浮點類型
float 4 位元組 32位IEEE 754單精度(有效位數 6 – 7位)
double 8 位元組 64位IEEE 754雙精度(有效位數15位)
三)、1種Unicode編碼的字元單元
char 2 位元組 整個Unicode字元集
四)、1種真值類型
boolean 1 位 True或者false
2、3種引用類型
類class
介面interface
數組array

3. java中引用數據類型有哪些

String StringBuffer 等除了基本類型,枚舉類外的所有的類 都是引用類型。
以及所有的自定義類型。

4. java中的引用數據類型是什麼意思

  1. 引用數據類型為java兩大數據類型之一

  2. 引用數據型在被床架時,首先要在棧上給其引用(句柄)分配一塊內存,而對象的具體信息都存儲在堆內存上,然後由棧上面的引用指向堆中對象的地址。

  3. 引用數據類型包括:類、介面類型、數組類型、枚舉類型、註解類型,字元串型;

  • java另一大數據類型為基本數據類型,其包括包括數值型,字元型和布爾型。

  • 基本數據類型在被創建時,在棧上給其劃分一塊內存,將數值直接存儲在棧上;

5. java中值類型和引用類型的區別

1:Java 提供兩種不同的類型:引用類型和原始類型(或內置類型)。Int是java的原始數據類型,Integer是java為int提供的封裝類。Java為每個原始類型提供了封裝類。 原始類型封裝類 booleanBoolean charCharacter byteByte shortShort intInteger longLong floatFloat doubleDouble 引用類型和原始類型的行為完全不同,並且它們具有不同的語義。引用類型和原始類型具有不同的特徵和用法,它們包括:大小和速度問題,這種類型以哪種類型的數據結構存儲,當引用類型和原始類型用作某個類的實例數據時所指定的預設值。對象引用實例變數的預設值為 null,而原始類型實例變數的預設值與它們的類型有關。
2:使用場合,例如說
往ArrayList裡面add,必須add的是Object
而int不是對象,就只能把Integer添加進去
3:int是基本類型,
Integer是int對應的封裝類,
聲明int a; a自動賦值0;
聲明Integer a; a自動賦值為null
4:int是基本的數據類型
integer是類
int的初始值為0,不能為null,如果需要為null的時候,需要用integer

熱點內容
2021款es升級了哪些配置 發布:2024-03-28 21:26:44 瀏覽:384
下述調度演算法 發布:2024-03-28 21:22:24 瀏覽:616
捷達哪個配置裝有esp 發布:2024-03-28 21:17:41 瀏覽:196
天氣源碼 發布:2024-03-28 21:14:11 瀏覽:428
使命召喚紅魔浪潮如何配置 發布:2024-03-28 21:13:08 瀏覽:546
nginx安裝php 發布:2024-03-28 21:09:47 瀏覽:667
利用python進行數據分析pdf 發布:2024-03-28 20:33:36 瀏覽:560
php模擬post提交 發布:2024-03-28 20:23:14 瀏覽:542
phptxt下載 發布:2024-03-28 20:12:37 瀏覽:476
如何更衣櫃密碼鎖密碼設置 發布:2024-03-28 19:42:09 瀏覽:484