Pasar por valor y pasar por referencia en Java



Este blog le ayuda a comprender Pasar por valor y Pasar por referencia en Java. También explica por qué Java se conoce como Pass by Value con example.

Java es uno de los lenguajes de programación más fundamentales que cualquiera puede aprender. Es tan simple al mismo tiempo, ¡la posibilidad de lo que puedes desarrollar usando Java, es infinita!Esto es lo que convierte a Java en el lenguaje más utilizado en la industria en la actualidad.Este blog lo ayudará a comprender el paso por valor y el paso por referencia en Java en la siguiente secuencia:

Pasar por valor y pasar por referencia en Java

Pasar por valor y Pasar por referencia son las dos formas en que podemos pasar un valor a la variable en una función.





patrón de diseño de mvc en java
  • Pasar por valor: Es un proceso en el que los valores de los parámetros de la función se copian a otra variable y en su lugar se pasa este objeto copiado. Esto se conoce como llamada por valor.

  • Pasar por referencia: Es un proceso en el que la copia real de la referencia se pasa a la función. Esto se llama por referencia.



Hablando de Java, podemos decir que Java se pasa por valor y no pasa por referencia.

Ilustraremos la declaración citada por programación.

Ilustración con programa

Digamos que tenemos una clase Coche como abajo.



public class Car {private String color public Car () {} public Car (String a) {this.color = a} public String getColor () {return color public void setColor (String color) {this.color = color}

A continuación, tenemos un programa que intercambia dos objetos.

public class Disp {public static void main (String [] args) {Car red = new Car ('Red') Balloon yellow = new Balloon ('Yellow') swap (red, yellow) System.out.println ('color rojo = '+ red.getColor ()) System.out.println (' color amarillo = '+ yellow.getColor ()) desc (amarillo) System.out.println (' color amarillo = '+ yellow.getColor ())} private static void desc (Car car) {// car = 100 balloon.setColor ('Red') // car = 100 car = new car ('Green') // car = 200 car.setColor ('Yellow') / / car = 200} // método de intercambio public static void swap (Object o1, Object o2) {Object temp = o1 o1 = o2 o2 = temp}}

Salida

Color rojo = rojo

Color amarillo = amarillo

Color amarillo = rojo

Explicación:

def __init __ (yo)

Entonces, como dije anteriormente, JAVA se pasa por Value, por lo tanto, podemos ver que las dos primeras líneas en la salida del método swap () no funcionó. Hagamos una explicación detallada del código.

Pasar por valor y pasar por referencia en Java

Primero, creamos una instancia de una clase usando el nuevo operador. Se crea y el valor se almacena en la ubicación de la memoria. Por lo tanto, esta instancia apunta a la ubicación de la memoria de los objetos que es 'rojo' y 'amarillo'. Ahora, cuando llamamos a los valores con nuevos objetos o1 y o2, entonces apunta a la ubicación de memoria de los dos objetos que es 'rojo' y 'amarillo'. Entonces, cuando el método de intercambio se invoca al principio, apunta a la ubicación de memoria de 'Red'. En la siguiente línea, la referencia de automóvil se cambia a la siguiente dirección y se apunta a la ubicación de memoria de 'amarillo'. Por lo tanto, se intercambian en el segundo paso, no en el primer paso. Es por eso que JAVA se conoce como Pasar por valor y no como referencia.

Ahora que ha entendido Pasar por valor y Pasar por referencia en Java, consulte el por Edureka, una empresa de aprendizaje en línea de confianza con una red de más de 250.000 alumnos satisfechos repartidos por todo el mundo. El curso de formación y certificación Java J2EE y SOA de Edureka está diseñado para estudiantes y profesionales que desean ser desarrolladores de Java. El curso está diseñado para darle una ventaja en la programación de Java y capacitarlo para los conceptos básicos y avanzados de Java junto con varios marcos de Java como Hibernate y Spring.

Tienes una pregunta para nosotros? Menciónelo en la sección de comentarios de este artículo 'Pasar por valor y pasar por referencia en Java' y nos comunicaremos con usted lo antes posible.