Paso detallado de parámetros en Java: llamada por valor (paso por valor) y llamada por referencia (paso por referencia)


Algunos conocimientos sobre el paso de parámetros no son exhaustivos.



llamada por valor: pasar por valor
llamar por referencia: pasar por referencia

Caracteristicas:
Llamada por valor. El valor no cambia, es decir, la operación es una copia del valor, por lo que el valor original no cambia.
la llamada por referencia cambia el valor, pero no cambia la dirección de referencia del parámetro real. Se puede entender que otra referencia también apunta al mismo objeto.

Código:
public  static void  st(String str){
   // System.out.println(str.hashCode());
    str = str.replace("1","2");
   // System.out.println(str.hashCode());
}
public static void st1(StringBuffer stringBuffer){
    stringBuffer.append("S");
    stringBuffer = new StringBuffer("567");
    stringBuffer.append("890");
}
public static void main(String...args){
    String s = "123";
    st(s);
    System.out.println(s);
    System.out.println(s.hashCode(););
    StringBuffer str1 = new StringBuffer("sss");
    System.out.println(str1);
    st1(str1);
    System.out.println(str1);
}


Resultado de salida:
48690
49651
123
48690
sss
sssS
El reemplazo de la clase String devuelve un nuevo objeto String, y luego la referencia de str apunta al nuevo objeto. En el método st1, StringBuffer append (); el método opera sobre el valor del objeto original y devuelve el objeto original.
stringBuffer = new StringBuffer ( "567" ), y esta oración se referirá a stringBuffer que apunta al nuevo objeto.

26 artículos originales publicados · elogiados 0 · visitas 9936

Supongo que te gusta

Origin blog.csdn.net/weixin_38246518/article/details/78714390
Recomendado
Clasificación