Avatar ·

Java transmet-il les paramètres par valeur ou par référence ? Démystifions un mythe populaire

Bonjour à tous ! Je suis un développeur Java débutant, et une question fondamentale me trouble constamment. Beaucoup disent que Java transmet les objets par référence et les primitifs par valeur. Mais j'ai lu qu'en réalité, Java transmet toujours les paramètres par valeur. J'ai essayé d'écrire un petit code pour comprendre, mais cela m'a encore plus embrouillé. Voici un exemple : ```java public class Main { public static void main(String[] args) { int x = 5; changePrimitive(x); System.out.println("After changePrimitive: " + x); // Output: 5 StringBuilder sb = new StringBuilder("Hello"); changeObject(sb); System.out.println("After changeObject: " + sb); // Output: Hello World } public static void changePrimitive(int value) { value = 10; } public static void changeObject(StringBuilder builder) { builder.append(" World"); } } ``` Dans le premier cas, le primitif `int` n'a pas changé — c'est compréhensible, passage par valeur.