d******i 发帖数: 7160 | 1 代码类似于;
class LoadBalanceServer
{
private const int SERVER_COUNT = 3;
private List serverList = new List();
private static volatile LoadBalanceServer lbs;
private static object syncLock = new object();
...
}
注意 这个 List serverList 不是静态的。
首先,这个new 何时发生的?
那么他的这个"new"是
定义这个类的时候就发生了,
还是被client 构造 LoadBalanceServer 的 instance时才发生的呢?
还有如题,in either case,new之后serverList占据了谁的内存块?作为instance
object的
一部分挤在heap上,还是...
请指教。
谢谢! |
j***e 发帖数: 2428 | 2 happenens when new LoadbalanceServer
it's on heap
【在 d******i 的大作中提到】 : 代码类似于; : class LoadBalanceServer : { : private const int SERVER_COUNT = 3; : private List serverList = new List(); : private static volatile LoadBalanceServer lbs; : private static object syncLock = new object(); : ... : } : 注意 这个 List serverList 不是静态的。
|
d******i 发帖数: 7160 | 3 谢谢。
因为new 出来的 LoadbalanceServer object 也在 heap上,
那么这个list成员new出来的内存块 会被包含在 LoadbalanceServer object 的内存块
里面吗?还是单独的另外一块内存?
还有,list成员被new出来 发生在 LoadbalanceServer 的构造函数 之前 还是 之后?
谢谢!
【在 j***e 的大作中提到】 : happenens when new LoadbalanceServer : it's on heap
|
k****i 发帖数: 1072 | 4 static member is on high frequency heap, it's a different heap.
【在 d******i 的大作中提到】 : 代码类似于; : class LoadBalanceServer : { : private const int SERVER_COUNT = 3; : private List serverList = new List(); : private static volatile LoadBalanceServer lbs; : private static object syncLock = new object(); : ... : } : 注意 这个 List serverList 不是静态的。
|
j***e 发帖数: 2428 | 5
单独的
之前。你debug through 一下就知道这个顺序了
【在 d******i 的大作中提到】 : 谢谢。 : 因为new 出来的 LoadbalanceServer object 也在 heap上, : 那么这个list成员new出来的内存块 会被包含在 LoadbalanceServer object 的内存块 : 里面吗?还是单独的另外一块内存? : 还有,list成员被new出来 发生在 LoadbalanceServer 的构造函数 之前 还是 之后? : 谢谢!
|