• <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>

    java 如何進行內存分配和管理

    當我們利用編程說話進行編程時,一個必需要考慮的問題就是內存的分派和辦理,只有為特心猿意馬的對象分派新的存儲空間,才能把新的數據添加進去,因為計較機的內存是有限的,所以需要在利用完響應的資本后將對應的空間進行釋放,才能使得系統的內存讓我們的Java虛擬機輪回利用

    東西/原料

    • Java IDE(Eclipse)
    • JDK
    • 不變的互聯網毗連

    方式/步調

    1. 1

      我們起首啟動Java的IDE,這里以常用的Eclipse軟件為例,在一個建立好了的Java工程中,點擊File-New-Class,即可新建一個通俗類

    2. 2

      在彈出來的“New Class”中,可以對欲添加的通俗類的類名和實現的接口進行界說,注重要合適Java標識符的定名法則,可以就定名為“MemoryTest”,可以選擇勾選上本家兒方式“public static void main(String[] args)”

    3. 3

      點擊“Finish”按鈕后,可以看到我們已經建立了一個空白的內存辦理測試類,只包含了包名和類名,還包含了主動生當作的本家兒方式,具體的實現過程還要我們添加具體內容

    4. 4

      不異內容的對象在Java里是否指標的目的統一份內存空間呢?我們用new語句建立兩個字符串對象別離為s1和s2,并賦以不異的初值“abc”,此中變量名和初始值可以自行界說

    5. 5

      在泛泛環境下,我們可以挪用Object類的Hashcode()方式來獲取對象的散列碼來區分在內存中的存儲位置,可是對于字符串對象而言不成以,因為計較方式是按照字符進行計較的

    6. 6

      所以需要挪用System.identityHashCode()這個當地方式,可以返回無不同的內存空間,這里可以看到打印出來的兩個地址值是分歧的,表白此時Java已經為這兩個同名的字符串對象分派了分歧的內存空間

    7. 7

      當要釋放內存的空間時,只需要將當前對象的值賦值為null(空),即可將它的引用從內存中刪除,可以再次挪用散列碼方式來獲得它在內存中的地址,可以發現此時地址已經為0了,表白此時已經被垃圾收集器gc給清理了

    注重事項

    • 一般環境下在PC機的運行情況下,內存的需求一般都是足夠的
    • 在嵌入式設備中往往需要考慮到內存分派與辦理的環境
    • 發表于 2018-08-30 00:00
    • 閱讀 ( 854 )
    • 分類:其他類型

    你可能感興趣的文章

    相關問題

    0 條評論

    請先 登錄 后評論
    admin
    admin

    0 篇文章

    作家榜 ?

    1. xiaonan123 189 文章
    2. 湯依妹兒 97 文章
    3. luogf229 46 文章
    4. jy02406749 45 文章
    5. 小凡 34 文章
    6. Daisy萌 32 文章
    7. 我的QQ3117863681 24 文章
    8. 華志健 23 文章

    聯系我們:uytrv@hotmail.com 問答工具
  • <noscript id="ecgc0"><kbd id="ecgc0"></kbd></noscript>
    <menu id="ecgc0"></menu>
  • <tt id="ecgc0"></tt>
    久久久久精品国产麻豆