El compilador de Java utiliza las clases String y StringBuffer detr�s de la escena para manejar las cadenas literales y la concatenaci�n.
�Cadenas Literales
En Java se deben especificar las cadenas literales entre comillas.
"Hola Mundo!"
Se pueden utilizar cadenas literales en cualquier lugar donde se pueda utilizar un objeto String. Por ejemplo, System.out.println() acepta un argumenteo String, por eso se puede utilizar una cadena literal en su lugar.
System.out.println("Hola Mundo!");
Tambi�n se pueden utilizar los m�todos de String directamente desde una cadena literal.
int len = "Adios Mundo Cruel".length();
Como el compilador crea autom�ticamente un nuevo objeto String para cada cadena literal que se encuentra, se puede utilizar una cadena literal para inicializar un String.
String s = "Hola Mundo";
El constructor anterior es equivalente pero mucho m�s eficiente que este otro, que crea dos objetos String en vez de s�lo uno.
String s = new String("Hola Mundo");
El compilador crea la primera cadena cuando encuentra el literal "Hola Mundo!", y la segunda cuando encuentra new String().
�Concatenaci�n y el Operador +
En Java, se puede utilizar el operador + para unir o concatenar cadenas.
String cat = "cat";
System.out.println("con" + cat + "enacion");
Esto decepciona un poco porque, como ya se sabe, los Strings no puden modificarse. Sin embargo detr�s de la escena el compilador utiliza StringBuffer para implementar la concatenaci�n. El ejemplo anterior se compilar�a de la siguiente forma.
String cat = "cat";
System.out.println(new StringBuffer().append("con").append(cat).append("enation"));
Tambi�n se puede utilizar el operador + para a�adir valores a una cadena que no son propiamente cadenas.
System.out.println("Java's Number " + 1);
El compilador convierte el valor no-cadena (el entero 1 en el ejemplo anterior) a un objeto String antes de realizar la concatenaci�n.