日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

new与垃圾回收

發(fā)布時間:2023/12/31 编程问答 30 豆豆
生活随笔 收集整理的這篇文章主要介紹了 new与垃圾回收 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

new

  new關鍵字返回的是一個指向堆上對象的引用,而不是真正的對象本身。這個引用變量保存在棧內,以供應用程序以后使用。

  1、使用new關鍵字將一個對象分配在托管堆上,然后不用再管:當對象從代碼庫的任何部分都不可達時,垃圾回收器就會從堆中刪除它。

  2、托管堆不只是一個由CLR訪問的隨機內存塊。.NET垃圾回收器是堆的“清潔工”,它會壓縮空的內存塊來實現(xiàn)優(yōu)化(必要的時候)。

?

newobj指令通知CLR執(zhí)行下面的核心任務

  1、計算分配對象所需要的總內存數(shù)(包含類型的成員變量和類型的基類所需的必要內存)

  2、檢查托管堆,確保有足夠的空間來放置要分配的對象。

  3、在將引用返回給調用者之前,移動下一個對象的指針,指向托管堆上的下一個可用的位置。

  當處理newobj指令時,如果CLR判定托管堆沒有足夠的空間來分配所請求的類型,它會執(zhí)行一次垃圾回收來嘗試釋放內存。

  如果托管堆沒有足夠的內存來分配所請求,就會進行垃圾回收。當確實發(fā)生垃圾回收時,垃圾回收器暫時掛起所有在當前進程(process)中所有的活動的線程(thread)以保證應用程序在回收過程中不會訪問堆。

  

?

?

轉載于:https://www.cnblogs.com/76674718/archive/2009/11/01/1594223.html

總結

以上是生活随笔為你收集整理的new与垃圾回收的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。