1樓:網友
引數a會被**,託管資源object 在託管棧的引數a會在作用域test結束後**,物件值的作用域沒有結束,因為例項_instance不為空,所以建立object a在託管堆的物件值沒有被**。
會被**。這和單例沒關係,單例是設計模式,你這裡充其量概念就是乙個靜態物件中的test函式中a的區域性變數在執行了test函式後 a是否還存在。答案是**的,因為 a的作用域在test函式體內,當執行完後,引數a會被銷燬,注意是引數a。
因為你這邊是引用型別,他的值不會馬上被銷燬,什麼時候被銷燬不是我們來定,由gc來定。這個建立的流程是:執行test函式,在託管棧分配引數a所指向託管堆得記憶體位址,然後建立託管堆的記憶體位址所對應的值也就是一張**。
當執行完test函式後,a在託管棧中將銷燬,但是託管堆中的值依舊存在。你可以去看下區域性變數的作用域,gc機制中對於引用型別的相關描述。
2樓:網友
a會被銷燬,一種理解方法 : 沒有任何能指向a這個例項的指標存在,所以a會被銷燬,這也是垃圾**機制的解釋。
當然,改一下的話,就不一樣了:
class myclass
static myclass _instance = null;
public static myclass instancegetif (_instance ==null)instance = new myclass();
return _instance;
private anotherclass a;
public void test()
a =new anotherclass();
這時候,a這個指標一直伴隨著而存在,所以a就不會銷燬。
3樓:仰星睿
a 會被**。
a出來了test 方法體就被銷燬了 .
static myclass _instance = null;
instance 是個靜態變數 只要應用程式在執行。
就不會被垃圾**器**。
所以_instance 是單例。
4樓:網友
你的單例寫的有問題,呼叫也有問題。
構造方法要私有,你用屬性來初始化的,就該這樣呼叫 object a = ;
另外a**不**是有垃圾**機制決定的,和是否單例無關。
b2b模式b2c模式c2c模式分別是什麼含義
大家經常聽說b2b b2c c2c等,那麼到底b2b b2c c2c市場是什麼意思啊?可能很多朋友並不是很瞭解,下面我們就分別介紹一下。1 b2b 也有寫成 btb,是business to business的縮寫 是指企業與企業之間通過專用網路或inter 進行資料資訊的交換 傳遞,開展交易活動的...
c中的工廠模式的好處,工廠模式有什麼優點
優點 隔離了具體類的生成,客戶不需要知道怎樣生成了每一個具體產品,什麼時間生版成的。它 權將客戶與具體的類分離,依賴於抽象類,耦合性低。一個產品族中的多個物件被設計成一起工作,它能夠保證客戶端始終只使用一個產品族中的物件。這對一些需要根據當前環境來決定其行為的軟體系統來說,是非常實用的一種設計模式。...
本人在威海,想買件西服(上衣),單件500左右的
一定要本市麼,我們的西服倒是又好又便宜,可是不在威海呢但是聽起來真的蠻適合你姐夫的,年齡也好,版型也好,我們就是修身版的,款式也比較時髦 如果到店裡買,這個 估計買不到什麼好的,zara的單西服上衣,就是tr的也要699 799,我們店裡一套才298那種一樣的料子 你要是買我們的698一套的羊毛西服...