-1
私はアンドロイドの世界では新しいです。私はいくつかの静的フィールドといくつかの最終的な静的フィールドを使用する必要があるアンドロイドアプリケーションを開発しています。それはapplication.iのパフォーマンスに懸念は、このトピックに関する検索を行ってきたようにpermormanceに静的変数または最終静的varibaleを使用することの効果
1.whatは、静的または、最終的な静的フィールドを処理中のメモリとパフォーマンスへの影響
2.Howガベージコレクションの仕事になります。
- ガベージコレクションに使用できるフィールド。
すべての静的最終変数が定数であるわけではありません。それらは、JLSごとに、定数であるために定数式で初期化する必要があります。つまり、それらはプリミティブまたは 'String'でなければなりません。それらはリテラルとしてコードにコンパイルされます。定数ではない静的final finalをすべて定数として扱うことはできません。彼らは変更可能性があります。非静的変数は、メンバであってもローカルであっても定数である可能性があります。不変オブジェクトの定数と 'final'変数だけが定数として扱われなければなりません。すべての名前をアンダースコアで大文字にします。 –
可変であるということは、それらが定数ではないことを意味するわけではありません。REFERENCESは定数です。もちろん、クラスが許可している場合は、参照するデータを変更することができます。全く異なるコンセプト。ちょうどC++のconstポインタのように、typenameのconst * const –
@LewBlochを除いて、データが変更されたままにすることができます。これは私はすべての静的なfinalフィールドを保持し、定数式で初期化する別のクラスを作っていましたpublic static final String CUSTOMER_EDIT_USER_ID = "CUSTOMER_EDIT_USER_ID"; 。私の質問は、それがメモリー内でどのように影響し、アプリケーションのパフォーマンスに対応し、ガーベジコレクションのために静的な最終フィールドまたは静的フィールドが利用可能な場合です。 –