class Program
{
User u1 = new User();
static User u2 = new User();
int lenght1 = 2;
static int length2 = 2;
static void Main(string[] args)
{
}
}
?
對 對象的內存分配還是有一些疑問,先不管它的先后順序。
1. u1分配:先在堆棧上分配一個變量u1,再在托管堆中分配一內存new User(),再將u1指向new User(); 是不是這樣的?
?
2. u2的分配和u1的一樣嗎,也是u2在堆棧,new User()在托管堆嗎?static 變量會被分配到加載堆中Loader Heap,是 指等號右邊的分配到加載堆中還是 連左邊的一起分配到加載堆中。
?
3.引用對象Class中的 值類型也是分配在托管堆中,是指 值分配在托管堆中嗎?
如 length1, 是值2 分配在托管堆中,length1這個變量是分配在 堆棧嗎?
?
4.如果以上是這樣分配的,那就是 等號 左邊的變量分配在 堆棧,右邊的值分配在托管堆中,是不是這樣?
各位解釋一下,謝謝!
20 回答

溫溫醬
TA貢獻1752條經驗 獲得超4個贊
@Qlin:?
1. u1分配:先在堆棧上分配一個變量u1,再在托管堆中分配一內存new User(),再將u1指向new User(); 是不是這樣的?
這個理解是對的
- 20 回答
- 0 關注
- 400 瀏覽
添加回答
舉報
0/150
提交
取消