ボックス化されたプリミティブIntegerを次のような定数と比較すると、 Integer a = 4; if (a < 5) a 自動的に開梱され、比較が機能します。 ただし、2つのボックス化さIntegersれたものを比較していて、等しいかより小さいかより大きいかを比較したい場合はどうなりますか? Integer a = 4; Integer b = 5; if (a == b) 上記のコードは、それらが同じオブジェクトであるかどうかを確認する結果になりますか、それとも、その場合は自動ボックス化解除されますか? 何について: Integer a = 4; Integer b = 5; if (a < b) ?
次のスニペットの簡単なJavaコードを見てみましょう。 public class Main { private int temp() { return true ? null : 0; // No compiler error - the compiler allows a return value of null // in a method signature that returns an int. } private int same() { if (true) { return null; // The same …
条件を使用して2つのLongオブジェクトの値を比較したいif。これらの値が128未満の場合、if条件は適切に機能しますが、128以上の場合、比較は失敗します。 例: Long num1 = 127; Long num2 = 127; if (num1 == num2) { // Works ok } 上記のコードの比較は正しく機能しますが、以下のコードでは失敗します。 Long num1 = 128; Long num2 = 128; if (num1 == num2) { // Does NOT work } Long変数と127より大きい値の比較に問題があるのはなぜですか?変数のデータ型が長いプリミティブに変更された場合、比較はすべてのケースで機能します。