1. Literales enteros

Y ahora un tema nuevo e interesante: los literales. Los datos escritos directamente en el código del programa se denominan literales . No estamos hablando de ningún dato antiguo, sino de los valores de los tipos primitivos y el Stringtipo.

Por ejemplo, suponga que tiene el siguiente código:

Código literales
int a = 5;
int b = a + 10;
String s = "Sum=" + (a + b);
5
10
"Sum="

Los literales en este código son el número 5, el número 10y la cadena ' Sum = '.

En Java, todo, incluidos los literales, tiene un tipo. De forma predeterminada, todos los literales enteros (números enteros) en el código son ints. El tipo int es el tipo entero estándar de Java.

Además, si decide asignar un literal entero a una variable de byte o una variable corta en su código, no habrá problemas. Solo debe asegurarse de que el valor literal se encuentre dentro del rango de valores que puede almacenar el tipo de variable.

El compilador de Java es lo suficientemente inteligente como para comprender que a una bytevariable se le puede asignar el literal entero 100 sin crear problemas.

Ejemplos:

Código Descripción
int a = 300;
Esto se compilará muy bien.
byte a = 100; 
Esto se compilará muy bien.
byte a = 300; 
Habrá un error de compilación, porque el valor máximo de bytes es 127.

También puede escribir longliterales en su código. Para hacer esto, agregue la letra latina 'L' o 'l' al final del número entero.

Ejemplos:

Código Descripción
long a = 3000000000L; 
Esto se compilará muy bien.
long a = 3000000000; 
Error de compilación: 3 mil millones es demasiado grande para un literal int.
int a = 3000000000L; 
Error de compilación: el literal es largo, pero la variable es un int. Además, 3 mil millones es más que el int máximo.

¿Te diste cuenta de lo difícil que es leer números grandes de 10 o más dígitos? No se puede saber de inmediato si el código dice 3 mil millones o 30 mil millones. Para hacer que el código sea más legible (¡y esto es importante!), Java permite que se inserten guiones bajos en literales numéricos (no afectan el valor del número).

El ejemplo anterior se puede reescribir con guiones bajos para que quede un poco más claro:

Código Descripción
long a = 3_000_000_000L; 
Esto se compilará muy bien.
long a = 3_000_000_000; 
Error de compilación: 3 mil millones es demasiado grande para un literal int.
int a = 3_000_000_000L; 
Error de compilación: el literal es largo, pero la variable es un int. Además, 3 mil millones es más que el int máximo.

Pero no podemos usar comas en literales numéricos porque ya se usan para otro propósito. Por ejemplo, para separar argumentos entre sí al llamar a un método.



2. Literales de números reales

En su código, puede especificar no solo números enteros, sino también literales de coma flotante (números reales).

En realidad, la regla es bastante simple: si un número en el código tiene un punto decimal, entonces el número es un literal de punto flotante. Y no cualquier literal, sino un doubleliteral.

Puede crear un literal flotante, pero debe colocar la letra 'F' (o 'f') al final del número para hacerlo .

Ejemplos:

Código Descripción
double a = 100.0; 
Esto se compilará muy bien.
double a = 100.;
Esto se compilará muy bien.
double a = .0;
Esto se compilará muy bien.
float a = 100.0f; 
Esto se compilará muy bien.
float a = 100.0; 
Habrá un error de compilación: la variable es un flotante, pero el literal es un doble.

Por cierto, puede convertir explícitamente un literal entero en un literal flotante o doble con solo. Ejemplos: appending the suffix 'F' (for float) or D (for double)

Código Descripción
double a = 100D; 
Esto se compilará muy bien.
float a = 100F; 
Esto se compilará muy bien.
int a = 300D; 
Habrá un error de compilación: la variable es un int, pero el literal es un double.

Los literales de coma flotante pueden usar notación científica : además de la parte firmada del número, también puede especificar una potencia de diez. Ejemplo:

Literal notación matemática Valor final
1.23E2
1.23 * 102
123.0
1.23E3
1.23 * 103
1230.0
1.23E-6
1.23 * 10-6
0.00000123
1E6
1.0 * 106
1000000.0
1E-10
1.0 * 10-10
0.0000000001


3. Literales de cadena

También puede especificar líneas enteras de texto en su código. Para indicarle al compilador que trate una cadena como datos (un literal) y no como parte del código, la cadena completa está entre comillas dobles en ambos lados.

Si una sola línea de código tiene varias comillas dobles, se dividen en pares. La primera comilla doble indica el comienzo de un literal. El siguiente indica el final del literal. El siguiente después de eso, una vez más marca el comienzo de un nuevo literal. Y el siguiente marca el final del segundo literal. Etcétera.

Cada uno de estos literales es un String.

Ejemplos

Código Explicación
"+" + "+" + "+" + "+" + "+"
Hay 5 literales en una línea. Cada uno de ellos consta de un solo  +personaje .
""
Este literal es una cadena vacía. Una cadena sin caracteres.
"2+3" + "-5"
Hay dos literales aquí. El resultado será la cadena ' 2+3-5', no un número
"return" + ";"
También hay dos literales aquí. Aquí no hay declaración de devolución.

Si un literal de cadena es demasiado largo, puede dividirse en varias líneas y pegarse con el 'operador más':

Código Explicación
String s = "I hold it true, whate'er befall, "
         + "I feel it when I sorrow most; "
         + "'Tis better to have loved and lost "
         + "Than never to have loved at all.";
Si envía esta línea a la pantalla, ¡todo el texto se mostrará en una sola línea!


4. Literales de caracteres

Puede especificar no solo literales de cadena en su código, sino también literales compuestos por caracteres individuales. Tenga en cuenta que no estamos hablando de una cadena que consta de un solo carácter, sino de literales cuyo tipo es char.

A diferencia de una cadena, un carácter literal está entre comillas simples . Dentro de las comillas simples debe haber un carácter y solo un carácter. No puede utilizar comillas simples vacías.

Ejemplos:

Código Explicación
'A'
Un literal cuyo tipo es char. Contiene la letra latina 'A'.
'@' 
Un literal cuyo tipo es char. Contiene el símbolo '@'
'' 
Un literal cuyo tipo es char. Contiene un carácter japonés. Y esto también es posible.
'\u1f3a'
Un literal cuyo tipo es char. Contiene un carácter Unicode especificado por su número.

El último ejemplo asigna un carácter Unicode usando una notación especial: primero tenemos el prefijo \u, seguido de 4 caracteres hexadecimales. Las próximas lecciones incluyen información detallada sobre esto.