亚洲高清vr播放在线观看,欧美亚洲精品免费,欧美日韩天堂在线视频,午夜福利小视频

      學習啦>知識大全>知識百科>百科知識>

      值類型和引用類型的區(qū)別是什么

      時間: 映芳735 分享

        值類型和引用類型經(jīng)常出現(xiàn)在JAVA等編程語言的書籍中,一些學習java的新手不是很懂這兩者的區(qū)別,下面小編為大家介紹值類型和引用類型的區(qū)別,感興趣的朋友們一起來看看吧!

        值類型和引用類型的區(qū)別一、定義

        值類型表示復制一個當前變量傳給方法,當你在這個方法中改變這個變量的值時,最初生命的變量的值不會變。

        引用類型表示你操作的數(shù)據(jù)是同一個,也就是說當你傳一個參數(shù)給另一個方法時,你在另一個方法中改變這個變量的值,那么調用這個方法是傳入的變量的值也將改變。

        通俗說法: 值類型就是現(xiàn)金,要用直接用;引用類型是存折,要用還得先去銀行取現(xiàn)。----(摘自網(wǎng)上)

        值類型和引用類型的區(qū)別二、基本數(shù)據(jù)類型

        值類型有四類八種

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

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

        2,浮點型2種 float,double

        3,字符型1種 char

        4,邏輯型1種 boolean

        引用類型除了四類八種基本類型外,所有的類型都稱為引用類型。

        值類型和引用類型的區(qū)別三、值傳遞和引用傳遞

        值傳遞

        基本數(shù)據(jù)類型賦值都屬于值傳遞,值傳遞傳遞的是實實在在的變量值,是傳遞原參數(shù)的拷貝,值傳遞后,實參傳遞給形參的值,形參發(fā)生改變而不影響實參。

        引用傳遞

        引用類型之間賦值屬于引用傳遞。引用傳遞傳遞的是對象的引用地址,也就是它的本身(自己最通俗的理解)。引用傳遞:傳的是地址,就是將實參的地址傳遞給形參,形參改變了,實參當然被改變了,因為他們指向相同的地址。

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

        值類型和引用類型的區(qū)別四、內存分配

        一個具有值類型(value type)的數(shù)據(jù)存放在棧內的一個變量中。即是在棧中分配內存空間,直接存儲所包含的值,其值就代表數(shù)據(jù)本身。值類型的數(shù)據(jù)具有較快的存取速度。

        一個具有引用類型(reference type)的數(shù)據(jù)并不駐留在棧中,而是存儲于堆中。即是在堆中分配內存空間,不直接存儲所包含的值,而是指向所要存儲的值,其值代表的是所指向的地址。當訪問一個具有引用類型的數(shù)據(jù)時,需要到棧中檢查變量的內容,該變量引用堆中的一個實際數(shù)據(jù)。引用類型的數(shù)據(jù)比值類型的數(shù)據(jù)具有更大的存儲規(guī)模和較低的訪問速度。

        值類型和引用類型的區(qū)別五、裝箱與拆箱

        其實裝箱就是值類型到引用類型的轉化過程。將一個值類型變量裝箱成一個引用類型變量,首先會在托管堆上為新的引用類型變量分配內存空間,然后將值類型變量拷貝到托管堆上新分配的對象內存中,最后返回新分配的對象內存地址。裝箱操作是可逆的,所以還有拆箱操作。拆箱操作獲取只想對象中包含值類型部分的指針,然后由程序員手動將其對應的值拷貝給值類型變量。


      猜你感興趣:

      1.財務管理專業(yè)怎樣

      2..Net基礎知識點解答

      3.面試官如何面試程序員

      4.最新的java面試題目及參考答案

      5.java實習生面試自我介紹

      6.參數(shù)和變量的區(qū)別是什么

      值類型和引用類型的區(qū)別是什么

      值類型和引用類型經(jīng)常出現(xiàn)在JAVA等編程語言的書籍中,一些學習java的新手不是很懂這兩者的區(qū)別,下面小編為大家介紹值類型和引用類型的區(qū)別,感興趣的朋友們一起來看看吧! 值類型和引用類型的區(qū)別 一、定義 值類型表示復制一個當前變量
      推薦度:
      點擊下載文檔文檔為doc格式

      精選文章

      • 堆和棧的區(qū)別
        堆和棧的區(qū)別

        Java把內存分成兩種,一種叫做棧內存,一種叫做堆內存。棧和堆有什么區(qū)別呢?下面小編帶你了解一下。 在函數(shù)中定義的一些基本類型的變量和對象的引用

      • Java和PHP的區(qū)別
        Java和PHP的區(qū)別

        眾所周知,靜態(tài)語言和動態(tài)語言是不一樣的,那么,它們具體有哪些不同呢?就這個問題,小編以Java代表靜態(tài)語言,以PHP代表動態(tài)語言,來跟大家分享兩者

      • Java和PHP的區(qū)別_JAVA和PHP的比較
        Java和PHP的區(qū)別_JAVA和PHP的比較

        Java和PHP都是編程語言,大家知道它們最大的區(qū)別就是一個是靜態(tài)語言,一個是動態(tài)語言。下面,學習啦小編再詳細的解釋一下這兩者的具體區(qū)別和比,希望

      • Java SE和Java EE的區(qū)別
        Java SE和Java EE的區(qū)別

        Java是目前所有編程語言中最流行、發(fā)展最快的語言之一。Java SE和Java EE都是Java里面的一個方向,這兩者具體有哪些區(qū)別呢?下面小編帶你去了解一下。 1、

      537020