En Java, el paso de parámetros es por valor.

28 06 2007

Juan Pablo Angamarca.

Existe comúnmente la creencia errónea de que en Java es posible pasar parámetros por referencia, y no es así. Java siempre pasa los parámetros por valor. Esta confusión se da debido a que todas las variables de objeto son referencias a objetos [1]. En el libro “The Java Programming Language” de Ken Arnold y James Gosling (autores de Java), sección 2.6.1., tenemos la siguiente cita: “There is exactly one parameter passing mode in Java – pass by value – and that helps keep things simple.” [2] (Existe un solo modo de paso de parámetros en Java – paso por valor – y eso ayuda a mantener las cosas simples.).

Antes de continuar, vamos a recordar cuáles son las definiciones de paso por valor y paso por referencia: [3]:

Paso por valor
significa que cuando un argumento se pasa a una función, la función recibe una copia del valor original. Por lo tanto, si la función modifica el parámetro, sólo la copia cambia y el valor original permanece intacto.

Paso por referencia
significa que cuando un argumento se pasa a una función, la función recibe la dirección de memoria del valor original, no la copia del valor. Por lo tanto, si la función modifica el parámetro, el valor original en el código que llamó a la función cambia.

Vamos a valernos de ejemplos para explicar el mecanismo con el que Java pasa parámetros a los métodos.

[leer más…]





The Beatles – And I Love Her

20 06 2007

Esta canción es genial, espero que a los que no la conocen les guste.

“And I Love Her” – The Beatles

I give her all my love, that’s all I do.
And if you saw my love, you’d love her too.
I love her.

She gives me everything, and tenderly
The kiss my lover brings, she brings to me.
And I love her

A love like ours could never die
As long as I have you near me.

Bright are the stars that shine, dark is the sky.
I know this love of mine will never die.
And I love her. (bis)