• Miércoles 16 de Octubre de 2019, 06:27

Autor Tema:  Duda respecto a la gestión de la memoria.  (Leído 951 veces)

DanteInfernum666

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Duda respecto a la gestión de la memoria.
« en: Domingo 14 de Julio de 2013, 23:32 »
0
¿Cambia en algo la forma en que se gestiona la memoria si inicializo los atributos de una clase inmediatemente después de haberlos declarado de que si los inicializo mediante un constructor?

Ejemplo:
Código: [Seleccionar]
class Class
    {
        int[] arreglo = new int[500];

        public Class()
        {
 
        }
    }

Lo mismo, pero inicializando el atributo a través del constructor por defecto:
Código: [Seleccionar]
class Class
    {
        int[] arreglo;

        public Class()
        {
            arreglo = new int[500];
        }
    }

¿Alguna manera es más eficiente que la otra?

DanteInfernum666

  • Nuevo Miembro
  • *
  • Mensajes: 7
    • Ver Perfil
Re:Duda respecto a la gestión de la memoria.
« Respuesta #1 en: Miércoles 17 de Julio de 2013, 18:27 »
0
Estuve investigando un poco, y ya estoy en condiciones de responderme a mí mismo. Pongo acá lo que encontré, capaz que a alguien le sirve...

El compilador primero inicializa los atributos, y luego pasa a los constructores. Por lo que si el valor del atributo en el constructor va a ser el mismo, es conveniente inicializarlo en la misma línea en la que declaro la variable.

Inicializar un atributo en un constructor es inicializarlo dos veces, ya que el compilador primero lo inicializa en su valor por defecto o a un valor dado, y luego el constructor sobreescribe este valor.