Difficile
Que va donner le code suivant :
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);
}
}
Auteur: JoffreyStatut : PubliéeQuestion passée 239 fois
Modifier
4
Évaluations de la communauté
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
13
Quelle est la différence entre une interface et une classe abstraite en Java ?8
Ajouter des éléments à une ArrayList en Java7
Les tableaux sont-ils des types primitifs en Java?24
Écrire un programme Java qui affiche 'welovedev'.11
Comment nommer un package en Java?10
Comment concaténer deux chaînes de caractères en Java?5
Comparer deux strings en Java