Siguiendo con la serie de posts para la certificación de Java SCJP(1.5 o 1.6) hoy escribire acerca de un tema corto pero importante para esta, aunque en realidad todos los temas son importantes debido a que es un examen autogenerado no sabemos que preguntas nos asignaran a la hora del examen.
En esta primera parte hablare de la clase String.
La clase String:
Lo primero que debemos entender de la clase String es que es inmutable.
Que debemos entender por inmutable?
Entendemos por inmutable que al momento de crear un String este puede ser modificado una vez haya sido creado, y esto lo probare en el siguiente ejemplo:
String MiCadena = new String();
MiCadena = "Probando Codigo"; // Se crea una nuevo objeto String
MiCadena = MiCadena.concat("aprendiendo programacion"); // Se crea otro String
Los objetos String se van almacenando en el heap.
En el siguiente código pueden comprobar que un objeto String no cambia:
String MiCadena = new String("Probando Codigo es: ");
MiCadena.concat("Aprendiendo Programacion");
System.out.println("Mi Cadena es " + MiCadena);
Si se compila el codigo de arriba, el resultado seria:
Probando Codigo es:
La unica forma de anadir es creando un nuevo string:
String MiCadena = new String("Probando Codigo es: ");
MiCadena = MiCadena.concat("Aprendiendo Programacion");
System.out.println("Mi Cadena es " + MiCadena);
Algunos puntos importantes para la certificación es también tener en cuenta cuando se crean referencia de variables y cuando se crean objetos String:
Ejemplo 1:
String s = "abc"; // Crea un objeto String y una referencia de variable
Ejemplo 2:
String s = new String("abc"); // se crean dos objetos y una referencia de variable
Lista de métodos importantes en la clase String:
· charAt() Returns the character located at the specified index.
· concat() Appends one String to the end of another ( “+” also works).
·equalsIgnoreCase() Determines the equality of two Strings, ignoring case.
·length() Returns the number of characters in a String.
·replace() Replaces occurrences of a character with a new character.
·substring() Returns a part of a String.
·toLowerCase() Returns a String with uppercase characters converted.
·ofString() Returns the value of a String.
·toUpperCase() Returns a String with lowercase characters converted.
·trim() Removes whitespace from the ends of a String.
En esta primera parte se ha tomado únicamente la clase String, para profundizar más sobre el tema recomiendo leer el capítulo 6 del libro SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055) que pueden encontrarlo en internet.
Fuente: SCJP Sun Certified Programmer for Java 5 Study Guide (Exam 310-055)



Oye disculpa, pero te quedo mal escrito esto
oString() Returns the value of a String.
Deberia ser
ofString() Returns the value of a String.
Greetings to all and Happy BandWidth.
Ok, gracias por la ayuda. lo arreglare lo antes posible.
hola, muy buen post
pero me asalta la duda en la siguiente parte:
“Los objetos String se van almacenando en el heap.”
¿que es el heap?
Heap: Esta es el area en el diagrama identificada con el nombre heap, es asignada por el sistema a un tamaño fijo y la utiliza el mismo conforme sea necesario en una forma aleatoria, esto no significa que exista un cierto desorden en la manera en que la memoria es utilizada, significa que la memoria no se asigna en un orden particular. De hecho, puede ser asignada en bloques conforme sea necesario en cualquier lugar dentro del heap. Cualquier memoria dentro del heap que no esté actualmente asignada para utilizarse por el programa es almacenada en una “lista libre”, esto es, bloques de memoria en espera de asignación.
Puedes encontrar mas info aqui:
http://www.modelo.edu.mx/univ/virtech/prograc/cmemoria.htm
Entonces de ahi no se pueden eliminar, a menos que ejecutes el garbage collector si no me equivoco.