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 に答える