Java中引用類型變量,對象,值類型,值傳遞,引用傳遞 區別與定義


一.Java中什么叫做引用類型變量?

引用:就是按內存地址查詢
   
    比如:String s = new String();這個其實是在棧內存里分配一塊內存空間為s,在堆內存里

new了一個String類型的空間,在運行時是 棧內存里的 s 指向堆內存里的那一塊存儲空間


    基本數據類類型存的是數值本身,而引用類型變量在內存放的是數據的引用,並不是數據的本身,

引用類型變量是以間接方式去獲取數據。

    引用類型變量都屬於對象類型,如:數組、類、字符串等都屬於引用類型變量。所以,引用類型

變量里面存放的是數據的地址。

    說白了基本數據類型變量就像是直接放在櫃子里的東西,而引用數據類型變量就是這個櫃子對應編碼

的鑰匙。鑰匙號和櫃子對應。





二.java中引用類型的變量和對象的區別?

對象:是按照“類”這個模板建立的,建立的位置則是內存

例如A是一個類。A X則是創建一個引用變量,X=NEW A()則是在內存中建立一個對象(開辟了1片空間)

,對象的模板就是A(可以理解為在空間里復制了A類里的變量到空間里去)。此時就可以使用引用變量X

去引用對象中的變量了



三.值類型和引用類型的區別?

[定義]

引用類型表示你操作的數據是同一個,也就是說當你傳一個參數給另一個方法時,你在另一個方法中改變

這個變量的值,那么調用這個方法是傳入的變量的值也將改變.值類型表示復制一個當前變量傳給方法,


[值類型]

也就是基本數據類型 基本數據類型常被稱為四類八種

四類:  

 1,整型 2,浮點型 3,字符型4,邏輯型

八種:   

         1,整型3種 byte,short,int,long

         2,浮點型2種 float,double

         3,字符型1種 char

         4,邏輯型1種 boolean


[引用類型]

除了四類八種基本類型外,所有的類型都稱為引用類型(數組,類,接口,字符串)



[值傳遞]    

基本數據類型賦值都屬於值傳遞,值傳遞傳遞的是實實在在的變量值,是傳遞原參數的拷貝,值傳遞后,實參

傳遞給形參的值,形參發生改變而不影響實參。


[引用傳遞]

引用類型之間賦值屬於引用傳遞。引用傳遞傳遞的是對象的引用地址,也就是它的本身(自己最通俗的理解)。

引用傳遞:傳的是地址,就是將實參的地址傳遞給形參,形參改變了,實參當然被改變了,因為他們指向相同的地址。

引用和我們的指針差不多,但是它不又不需要我們去具體的操作


 [內存分配]

一個具有值類型(value type)的數據存放在棧內的一個變量中。即是在棧中分配內存空間,直接存儲所包

含的值,其值就代表數據本身。

值類型的數據具有較快的存取速度。

一個具有引用類型(reference type)的數據並不駐留在棧中,而是存儲於堆中。即是在堆中分配內存空間,

不直接存儲所包含的值,而是指向所要存儲的值,其值代表的是所指向的地址。當訪問一個具有引用類型的

數據時,需要到棧中檢查變量的內容,該變量引用堆中的一個實際數據。引用類型的數據比值類型的數據具

有更大的存儲規模和較低的訪問速度。



Java中有垃圾回收機制,棧內存中的變量隨着方法的結束內存自然銷毀了,而用引用類型的時候,當方法結,

束的時候,這個對象可能被另一個引用類型所應用,不會銷毀,只有當一個對象



免責聲明!

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



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