Question du test Java - Les bases

Tester la fonctionnalité d'autoboxing en Java.

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: Joffrey BonifayStatut : PubliéeQuestion passée 182 fois
Modifier
3
Évaluations de la communauté
developer avatar
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
developer avatar
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
developer avatar
Marco
11/03/2024
ahh c'est vicieux, il ne faut pas mettre ce genre de question dans un tests de recrutement :)
developer avatar
Auteur anonyme
15/03/2024
Faut aussi des questions pour différencier les casus des nerds !
developer avatar
Marco
15/03/2024
C'est clair, au moins on rigole un peu 😄