没看懂字符串可以使用可变大小的内存是什么意思?
是指字符串实例大小有大有小么?
这是因为字符串是不需要运算的啊,字符串只有一个串联的运算,而这个运算在频繁使用的时候性能太差以至于需要StringBuilder的帮忙。
另外这本书的解释也非常匪夷所思,数值分不同类型是为了避免浪费内存?!
哦买噶,内存虽然紧张却不是我们不能把所有的整形都定义成long的根本原因吧。
根本原因是long和int的运算空间大小不同啊!long是64位的,就算32位的加法运算和64位的加法运算所用的CPU的周期是一样的,但是一个64位的数会占据更多的CPU缓存区和寄存器。从而直接影响性能,另外32位的CPU应该没有64位的运算指令吧,这样一个64位的运算要转换成很多个32位的指令来运算,性能更是直线下降啊。
就程序里面能出现的那些需要运算的整型值,能占多少内存啊。
还有,其实也有可变长度的整型,在.NET Framework 4提供了官方的实现,System.Numerics.BigInteger。