Hard
What will be the output of the following code :
class AutoboxingQuestion {
public static void main(String[] args) {
Integer a = 10;
Integer b = 10;
Integer c = 200;
Integer d = 200;
System.out.println(a == b);
System.out.println(c == d);
}
}
Author: Joffrey BonifayStatus: PublishedQuestion passed 189 times
Edit
3
Community Evaluations
Selim Hoummadi
30/05/2024
J'ai Ă©tĂ© surpris, je pensais qu'avec l'autoboxing et unboxing, le compilateur aurait gĂ©nĂ©rĂ© des instructions lors de la comparaison. Et j'imagine que ça peut facilement ĂȘtre la source de bug dans des programmes
Du coup +1 pour cette question, difficile mais intéressante et pertinente dans le développement Java de tous les jours
Mohamed
15/06/2024
Le piÚge des valeurs possibles des entiers "entre -128 et 127" les Integer sont mis dans un cache donc l'opérateur == compare les références des objets, par contre pour la valeur 200 qui est en dehors de l'intervalle, l'opérateur == considÚre que ce sont deux objets avec des références différentes