対応する変数に正しいデータ型を使用することが不可欠です。
もちろん。Java は厳密に型指定された言語です。あなたのポイント?
数値 1 をバイトとして表すには、8 分の 1 のメモリが必要です (ただし、間違っている場合は修正してください)。
あなたが間違っている。隣接して宣言されている他の変数と型に応じて、JVM で使用されるパディングに応じて、4 バイトまたは 8 バイトかかる場合もあります。
私の質問は、変数の型または初期化を定義するときにメモリの割り当て/控除が行われるかどうかです。
ない。new
たとえば、コンストラクター中ではなく、割り当て時、つまり時間に発生します。
奇妙に思えるかもしれませんが、デフォルトがあるため初期化する必要がないグローバル変数に関して質問します
すべての変数を初期化する必要があります。静的変数またはインスタンス変数の場合、初期化コードを記述する必要はありません。Java に関する「グローバル」という言葉には意味がありません。
ローカル変数とは対照的です。
それが何であるかに違いはありません。変数には、静的、インスタンス、またはメソッドローカルのいずれであっても、それに割り当てられたスペースと値が格納されている必要があります。
また、オブジェクト データ型の既定のサイズがあるかどうかも知りたいです。これは JVM (32 ビットと 64 ビット) に基づいていると思いますか?
質問は無意味です。クラスのインスタンスObject
は常に同じサイズであり、慎重に文書化または指定されていないため、JVM によって自由に変更できます。他のクラスのインスタンスも同様です。私が見ることができる有用な意味で「デフォルト」はどこにもありません。