为什么此代码在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