Literales en Java

Un literal es un valor de tipo entero, real, lógico, carácter, cadena de caracteres o un valor nulo (null) que puede aparecer dentro de un programa. Ejemplos de literales en Java pueden ser:

150 12.4 “ANA” null ‘t’

Los literales suelen aparecer en la asignación de valores a las variables o formando parte de expresiones aritméticas o lógicas. Por ejemplo:

x = 25;

precio = 120.99;

mes = "enero";

descuento = precio – (precio * 5 / 100);

if(a > 3 && a < 5

Cuando se utilizan literales, es muy importante tener en cuenta que Java es un lenguaje fuertemente tipado,  esto quiere decir que realiza un control estricto de los tipos de datos que pueden contener las variables.

Por ejemplo, si una variable se ha declarado cono int no podremos asignarle un valor de tipo double.

int n = 2.5; //Esta asignación no es correcta y provocará un error.

Esta asignación provocaría un error ya que estamos asignando un valor no entero (2.5) a una variable declarada como int. Por lo tanto es muy importante saber de qué tipo es un literal para trabajar de forma correcta con ellos y no obtener resultados inesperados.

Los literales en Java pueden ser:

  • Literales de tipo entero
    • Literales enteros en base decimal
    • Literales enteros en binario
    • Literales enteros en base octal
    • Literales enteros en base hexadecimal
  • Literales de tipo real
  • Literales de tipo carácter
  • Literales de cadenas de caracteres

Literales Java de tipo entero

Son valores numéricos que no contienen decimales.

El tipo de los literales enteros es siempre int a no ser que ocurra lo siguiente:

  • Que se incluya la letra ele mayúscula o minúscula al final del número en cuyo caso el literal será de tipo long.
  • Que su valor absoluto supere el rango de valores del tipo int. En ese caso también será de tipo long.

El signo + al principio del número es opcional y el signo – será obligatorio si el número es negativo.

Los literales de tipo entero en Java puede expresarse de cuatro formas distintas: base decimal (base 10), binario (base 2), octal (base 8) y hexadecimal (base 16).

Literales Java de tipo entero en base decimal

Está formado por 1 o más dígitos del 0 al 9.

El primer dígito debe ser distinto de cero.

Por ejemplo:

982literal entero de tipo int
-25literal entero de tipo int
+1200 literal entero de tipo int. El signo + es opcional.
1234literal entero de tipo int
1234Lliteral entero de tipo long. El tipo long lo indica la L final. El carácter ele puede aparecer en mayúscula o minúscula.
123400000000literal entero de tipo long. El valor del número supera el rango de un tipo int

Literales Java de tipo entero expresados en binario

Los literales expresados en binario están formados por uno o más dígitos del 0 al 1.

Deben comenzar por 0b o 0B

Por ejemplo:

0b00100001literal entero de tipo int expresado en binario
0B0010000101000101literal entero de tipo int expresado en binario
0b1010000101000101L literal entero de tipo long expresado en binario.

Literales Java de tipo entero expresados en base octal

Los literales Java expresados en octal están formados por uno o más dígitos del 0 al 7.

El primer dígito debe ser cero.

Por ejemplo:

01234literal entero de tipo int expresado en octal
025literal entero de tipo int expresado en octal
0345Lliteral entero de tipo long expresado en octal.

Literales Java de tipo entero expresados en base hexadecimal

Están formados por 1 o más dígitos del 0 al 9 y letras de la A a la F (mayúsculas o minúsculas).

Deben comenzar por 0x o 0X.

Por ejemplo:

0X1A2literal entero de tipo int expresado en hexadecimal
0x23F5literal entero de tipo int expresado en hexadecimal
0XaBcdliteral entero de tipo int expresado en hexadecimal
0X12ADLliteral entero de tipo long expresado en hexadecimal

Literales Java de tipo real

Son valores numéricos que deben llevar un parte entera, un punto decimal y una parte fraccionaria. Si la parte entera es cero, puede omitirse pero el punto decimal debe aparecer.

El tipo de estos literales es siempre double, a no ser que se añada el sufijo F o f para indicar que el literal es de tipo float.

Los literales de tipo real solamente se pueden expresar en base decimal.

El signo + al principio es opcional y el signo – será obligatorio si el número es negativo.

Por ejemplo:

12.2303literal de tipo double
-3.44literal de tipo double
+10.33literal de tipo double
0.456literal de tipo double
.96literal de tipo double. Si la parte entera es 0 se puede omitir.
2.15Fliteral de tipo float. Lo indica la F final. La letra efe puede ser mayúscula o minúscula.

Los literales en Java de tipo real también pueden representarse utilizando la notación científica.

Para expresar un literal Java en notación científica se utiliza una E (mayúscula o minúscula) seguida del exponente (positivo o negativo). El exponente está formado por dígitos del 0 al 9 y debe ser un valor entero.

Por ejemplo, el número 14 * 10-3 en notación científica se escribe 14E-3

Más ejemplos de literales de tipo real expresados en notación científica:

2.15E2Literal de tipo double. Representa el valor 2.15 * 102
2.15E+2Literal de tipo double. Representa el valor 2.15 * 102 El signo + en el exponente es opcional.
.0007E4Literal de tipo double. Representa el valor 0.0007 * 104
-50.445e-10Literal de tipo double. Representa el valor -50.445 * 10-10
+74.336E-2FLiteral de tipo float. Representa el valor 74.336 * 10-2

También de forma opcional se pueden utilizar los sufijos d ó D para indicar que el literal es de tipo double:

12.002DLiteral de tipo double. La D final es opcional ya que por defecto los literales reales son de tipo double a no ser que finalicen con la letra efe.

Uso del carácter separador _ en literales Java

Los literales de tipo entero escritos en cualquier base y los literales de tipo real, pueden contener el carácter _ para facilitar la lectura del número.

Por ejemplo:

2_014_1201234_5678_9012L999_99_9999L
0xFF_EC_DE_5E0xCAFE_BABE 0xffff_ffffL
0B1101_1001_100128_00003_423_210
3.14_15F0b0010_0101.234_299

En general este carácter separador solo puede aparecer entre dígitos. En concreto no puede aparecer en los siguientes lugares:

  • Al principio o final de un número.
  • Junto a un punto decimal en un número de tipo real.
  • Antes de los sufijos F ó L.
  • Entre el 0X hexadecimal o el 0B binario

Ejemplos de literales válidos y no válidos que contienen el carácter separador _

3_.1415FLiteral no válido. El separador debe ir entre dígitos.
3._1415FLiteral no válido. El separador debe ir entre dígitos.
999_99_9999_LLiteral no válido. El separador debe ir entre dígitos.
_52Literal no válido. El separador no puede aparecer al principio del número.
5_2Literal válido.
52_Literal no válido. El separador no puede aparecer al final del número.
5_______2Literal válido.
0_x52Literal no válido. El separador no puede aparecer entre los caracteres 0 y X.
0x_52Literal no válido. El separador debe ir entre dígitos.
0x5_2Literal válido.
0x52_Literal no válido. El separador no puede aparecer al final del número.
0_52Literal válido.
05_2Literal válido.
052_Literal no válido. El separador no puede aparecer al final del número.

Literales Java de tipo carácter

Los literales Java de tipo carácter contienen un solo carácter encerrado entre comillas simples.

Son de tipo char.

Las secuencias de escape, aunque contienen más de un carácter, se consideran literales de tipo carácter.

Ejemplos de literales de tipo carácter:

'a' '4' '\n' '\u0061'

Literales Java de tipo String

Están formados por 0 ó más caracteres encerrados entre comillas dobles.

Pueden incluir secuencias de escape.

Ejemplos de literales en Java de tipo String:

"Esto es una cadena de caracteres"

"Pulsa \"C\" para continuar"

"" Representa una cadena de caracteres vacía

"T" Cadena de un solo carácter.

Las cadenas de caracteres en Java son objetos de tipo String. Se estudian a fondo en el tema Strings.

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Scroll al inicio