public class program1{
public static void main(String args[]){
java.util.Vector vc=new java.util.Vector();
vc.add("111");
vc.add("222");
functioncall(vc);
vc.add("333");
System.out.println(vc);
}
public static void functioncall(java.util.Vector vc){
vc=null;
}
}
La salida del programa anterior es [111,222,333]. pero, cuando ejecuto el siguiente programa, la salida es [333]. ¿Confundido cuando pasamos una referencia, cómo funciona si es llamada por valor o llamada por referencia? y por quéConfundido, si Java usa la llamada por valor o llama por referencia cuando se pasa una referencia de objeto?
public class program1{
public static void main(String args[]){
java.util.Vector vc=new java.util.Vector();
vc.add("111");
vc.add("222");
functioncall(vc);
vc.add("333");
System.out.println(vc);
}
public static void functioncall(java.util.Vector vc){
vc.removeAllElements();
}
}
¿por qué voto negativo? no entiendo ... – user617597
Estuve tentado a votar por ese "desayuno de perros" de sangría con código, pero lo dejé pasar. Sospecho ** que fue rechazado por alguien que siente que hay muchos duplicados. Compruebe los hilos 'Relacionados' que se muestran en la columna de la derecha para obtener mejores resultados ahora que se han agregado las etiquetas [etiqueta: pase por referencia] y [etiqueta: pase por valor]. –
Porque ya se le ha preguntado un millón de veces, lo que un motor de búsqueda mostraría rápidamente. Ahora habrá debates interminables nuevamente, porque la mayoría de la gente está equivocadamente convencida de que es llamada por referencia. Si fuera llamada por referencia, entonces su primer ejemplo arrojaría NullPointerException. –