定数は、一度割り当てられると値を変更できない変数です。 Java には定数のサポートが組み込まれていませんが、変数修飾子 static および Final を使用して定数を効率的に作成できます。
定数を使用すると、他の人がプログラムを読みやすく理解しやすくなります。さらに、JVM とアプリケーションの両方が定数をキャッシュするため、定数を使用するとパフォーマンスが向上します。
静的修飾子
これにより、クラスのインスタンスを作成せずに変数を使用できるようになり、静的クラスのメンバーがクラスに関連付けられます。オブジェクトに関連付けられるのではなく、クラス自体の関連付けです。すべてのクラス インスタンスは、変数の同じコピーを共有します。
これは、別のアプリケーションまたは main() がそれを簡単に使用できることを意味します。
たとえば、クラス myClass には静的変数 days_in_week:
public class myClass { static int days_in_week = 7; }
が含まれています。この変数は静的であるため、明示的に myClass オブジェクトを作成しなくても他の場所で使用できます:
public class myOtherClass { static void main(String[] args) { System.out.println(myClass.days_in_week); } }
final 修飾子
final 修飾子は、変数の値を変更できないことを意味します。値が割り当てられると、再割り当てすることはできません。
final 修飾子を使用すると、プリミティブ データ型 (つまり、int、short、long、byte、char、float、double、boolean) を不変/変更不可能にすることができます。
これらの修飾子を組み合わせると、定数変数が作成されます。
static final int DAYS_IN_WEEK = 7;
最終修飾子を追加した後、DAYS_IN_WEEK をすべて大文字で宣言していることに注意してください。 Java プログラマの間では、定数変数を大文字で定義し、単語をアンダースコアで区切るのが長年の習慣となっています。
この形式は Java には必須ではありませんが、コードを読む人が定数をすぐに識別しやすくなります。
定数変数に関する潜在的な問題
Java では、final キーワードが機能するため、変数の値へのポインタは変更できません。繰り返しますが、これはポインタであり、それが指す場所を変更することはできません。
参照されたオブジェクトが変更されないという保証はなく、変数が常に同じオブジェクトへの参照を保持するという保証のみがあります。参照されるオブジェクトが可変である (つまり、変更可能なフィールドがある) 場合、定数変数には、最初に割り当てられた値とは異なる値が含まれる可能性があります。
以上がJava で定数を使用する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。