爲什麼此代碼在i = 690864192上拋出OutOfMemoryException?StringBuilder的最大容量
StringBuilder sb = new StringBuilder();
for (int i = 0; i < Int32.MaxValue; i++)
{
sb.Append("s");
}
Console.WriteLine(sb.ToString());
Console.Read();
默認容量爲16個字符,但這種增長在它需要到最高是int.MaxValue = 2,147,483,647。那麼,爲什麼當字符數是690,864,192,這比最大容量小得多,是否會拋出異常?
'OutOfMemoryException'是自描述。 – Paulpro
所以基本上我沒有足夠的內存來存儲StringBuilder實例和那麼多字符? –
那時你分配了1.29GB的內存。這是一個巨大的塊! – Harrison