Una de las operaciones que más coste
tienen a la hora de consumir memoria en los desarrollos Java, son las
instanciaciones de objetos, estas deben realizarse solo en los casos que sea
necesario, evitando de esta manera consumir memoria que no es necesaria. Para
ello, existen técnicas que evitan la instanciación de objetos que no sean
necesarios.
Vamos a ver ejemplos para los casos de
objetos de tipo String, Boolean o Integer. Aunque los casos que más memoria
consumen son los objetos personalizados, que estarán formados por más de un
atributo de estos tipos, o listas y mapas de variables, pero de esta forma,
podemos evitar algunos de esos casos si
lo extrapolamos a nuestros objetos.
Deben evitarse instanciaciones de objetos
de tipo String como la siguiente: String a = new String(“Hola”), para lo que
podemos usar String a = “Hola” evitando la llamada a new, que consume espacio
en memoria, o también String.valueOf(“Hola”).
Para las Boolean, además de la factoría
estática (Boolean.valueOf(true)), tenemos la posibilidad, de indicar el valor
de la siguiente manera Boolean b = Boolean.TRUE, que tampoco realizaría una
instanciación de Boolean.
Citando a los propios creadores de la
clase Boolean:
“It is rarely appropriate to use
this constructor. Unless a new instance is required, the static factory valueOf(boolean)
is generally a better choice. It is likely to yield significantly better space
and time performance.”
Solo hay un caso en el que crear una
instancia nueva de un Boolean, tiene sentido, y es cuando se quiera hacer una
comparación por referencia y no por el valor.
No hay comentarios:
Publicar un comentario