Ausgabe sind: true, true *, false * Was passiert bei case = 1 und case = 2 wenn case: 1 ist wahr als warum? Wert 5 hat unterschiedliche Speicherbelegung? wir wissen, dass '==' Operator auf Speicher oder refrenceWie Gleichheitsoperator funktioniert, wenn ich eqality mit primitiven überprüfte?
Integer a=new Integer(5);
Integer b=a;
System.out.println(a==b); //true i know
/*case:1 */System.out.println(a==5); //true? why
/*case :2 */ System.out.println(a==new Integer(5)); // false ? why
Interessanter Hinweis ist, dass die Integer-Klasse einen Cache der Ganzzahl zwischen -128 und 127 behält. Wenn Sie also Sachen wie Ganzzahl a = 5; oder Integer.valueOf (5), Sie haben tatsächlich die gleiche Ganzzahl aus diesem Cache. In Ihrem Fall haben Sie den Konstruktor verwendet und dieser Cache wird nicht verwendet. Also, verschiedene Referenzen. – Thomas