Comparar cadenas de carácteres
Artículo por Club Developers · 18 mayo 2006
3177 vistas
Antes de intentar comparar dos cadenas de carácteres, tenemos que entender que el operador '==' permite comparar los tipos primitivos entre ellos (int, float, boolean, etc. ), pero en el caso de los objetos, este operador compara los emplazamientos en memoria de los objetos y, hay que entender que, dos objetos inicializados con los mismos parámetros ocupan dos espacios de memoria diferentes, por lo que serán diferentes desde el punto de vista del operador '=='.
La operación que permite comparar objetos entre ellos es el método equals() de java.lang.Object.
JDK 1.4, método 'intern()'
El JDK 1.4 complica algo las cosas al consercar una lista privada de instancias de String. Inicialmente, la lista está vacÃa. La llamada del método intern() busca en la lista si una instancia es igual como lo harÃa 'equals()'. Si la encuentra, devuelve esta instancia, sino, se adjunta la cadena a la lista.
La operación que permite comparar objetos entre ellos es el método equals() de java.lang.Object.
java
a==b; /** FALSE, a y b son instancias diferentes de String. * Este resultado es teórico ya que algunos compiladores pueden optimizar el código para * crear una sola instancia en memoria */ a.equals(b); // TRUE, equals() compara las cadenas carácter a carácter c==d; // TRUE, c y d representan la misma instancia de memória de String
JDK 1.4, método 'intern()'
El JDK 1.4 complica algo las cosas al consercar una lista privada de instancias de String. Inicialmente, la lista está vacÃa. La llamada del método intern() busca en la lista si una instancia es igual como lo harÃa 'equals()'. Si la encuentra, devuelve esta instancia, sino, se adjunta la cadena a la lista.
java