Transferencia de valor Java y transferencia de dirección

Transferencia de valor y transferencia de dirección

Ⅰ. Transferencia de valor

  • Este método utiliza variables, constantes y elementos de matriz como parámetros de función. En realidad, el valor del parámetro real se copia en la unidad de almacenamiento correspondiente del parámetro formal, es decir, el parámetro formal y el parámetro real ocupan diferentes unidades de almacenamiento, este método de transferencia se llama "Transferencia de valor de parámetro" o "transferencia de valor de función".
  • La característica de la transferencia de valor es la transferencia unidireccional, es decir, cuando se llama a la función de llamada, la unidad de almacenamiento se asigna al parámetro formal y el valor del parámetro real se transfiere al parámetro formal. Después de completar la llamada, se libera la unidad de almacenamiento del parámetro formal y se libera el valor del parámetro formal. Cualquier cambio no afectará el valor del parámetro real, la unidad de almacenamiento del parámetro real permanece y mantiene el valor sin cambios.

La transferencia de valor se refiere a copiar los parámetros reales a la función cuando se llama a la función, de modo que si los parámetros se modifican en la función, los parámetros reales no se verán afectados.

public class Test 
{

	public static void main(String[] args) 
	{		
		String name = "FOREVER_GWC";
		test(name);
		System.out.println(name);	 
	}
	public static void test(String identify) 
	{
		identify = "forever_gwc";
	}
}

Resultado de salida:

FOREVER_GWC

Address. Entrega de dirección

  • De esta manera, el nombre o puntero de la matriz se usa como parámetro de función, se pasa la primera dirección o valor de puntero de la matriz y el parámetro formal recibe la dirección, es decir, la unidad de almacenamiento que apunta al parámetro real. El parámetro formal y el parámetro real ocupan el mismo Unidad de almacenamiento, este método de transferencia se denomina "transferencia de dirección de parámetro".
  • La característica de la transferencia de direcciones es que no hay espacio de almacenamiento para los parámetros formales, y el sistema de compilación no asigna memoria para los grupos de parámetros formales. El nombre de matriz o puntero es la primera dirección de un grupo de espacios contiguos. Por lo tanto, la transferencia realizada cuando el nombre de la matriz o el puntero se utiliza como parámetro de función es solo la transferencia de dirección. Después de que el parámetro formal obtiene la primera dirección, comparte un espacio de memoria con el parámetro real. El cambio del parámetro formal es también el cambio del parámetro real.

Passing. Paso de referencia

  • El paso de referencia se refiere a pasar directamente la dirección del parámetro real a la función cuando se llama a la función, luego la modificación del parámetro en la función afectará el parámetro real.
public class Test 
{
	public static void main(String[] args) 
	{
		String name[]= {"FOREVER_GWC"};
		test(name);
		System.out.println(name[0]); 
	}
	public static void test(String identify[]) 
	{
		identify[0] = "GWC";
	}
}

Resultado de salida:

GWC
Publicado 19 artículos originales · elogiado 0 · visitas 1616

Supongo que te gusta

Origin blog.csdn.net/FOREVER_GWC/article/details/104854748
Recomendado
Clasificación