0

我读过 const 字符串对象存储为值并在编译时分配它们的值。这是否意味着即使未实例化封装类也会分配内存,即如果过度使用 const 关键字(太多 const 字符串)会浪费堆空间?

编辑:一些上下文...

我需要很多常量值string对象,其中一些肯定会被使用,而另一些将根据用户的交互来使用(即仅用于特定用例)。我知道将使用的第一组字符串已在static类中声明为const对象。其余的字符串,是否也应该声明它们,const或者如果从未触发这些特定用例,这是否会占用不必要的堆空间?

4

1 回答 1

2

如果您的字符串是您的类的静态属性,则它们将被分配,否则它们将不会被分配,直到它们被实例化

字符串实习是一个用于改善内存和堆使用并允许更有效的字符串比较的过程

http://en.wikipedia.org/wiki/String_interning

http://broadcast.oreilly.com/2010/08/understanding-c-stringintern-m.html

于 2013-09-03T15:02:21.380 回答