Avatar ·

¿Java pasa parámetros por valor o por referencia? Analizando un mito popular

¡Hola a todos! Soy un desarrollador Java principiante y me confunde constantemente una pregunta fundamental. Muchos dicen que Java pasa objetos por referencia y primitivos por valor. Pero he leído que en realidad Java siempre pasa parámetros por valor. Intenté escribir un pequeño código para entenderlo, pero me confundió aún más. Aquí está el ejemplo: ```java public class Main { public static void main(String[] args) { int x = 5; changePrimitive(x); System.out.println("After changePrimitive: " + x); // Salida: 5 StringBuilder sb = new StringBuilder("Hello"); changeObject(sb); System.out.println("After changeObject: " + sb); // Salida: Hello World } public static void changePrimitive(int value) { value = 10; } public static void changeObject(StringBuilder builder) { builder.append(" World"); } } ``` En el primer caso, el primitivo `int` no cambió — eso es comprensible, paso por valor.