Literales en Java

Literal: Cualquier valor constante que se le pueda asignar a la variable se denomina literal/constante. 

En palabras simples, Literals en Java es una representación sintética de datos booleanos, numéricos, de caracteres o de strings. Es un medio para expresar valores particulares en el programa, como una variable entera llamada »/count se le asigna un valor entero en la siguiente instrucción.

// Here 100 is a constant/literal.
int x = 100; 

Literales integrales

Para los tipos de datos integrales (byte, short, int, long), podemos especificar literales de 4 formas:- 

Literales decimales (Base 10): En este formulario, los dígitos permitidos son 0-9.

int x = 101;

Literales octales (Base 8): En esta forma, los dígitos permitidos son 0-7.

// The octal number should be prefix with 0.
int x = 0146; 

Literales hexadecimales (base 16): en esta forma, los dígitos permitidos son 0-9 y los caracteres son af. Podemos usar caracteres en mayúsculas y minúsculas, ya que sabemos que Java es un lenguaje de programación que distingue entre mayúsculas y minúsculas, pero aquí Java no distingue entre mayúsculas y minúsculas.

// The hexa-decimal number should be prefix
// with 0X or 0x.
int x = 0X123Face; 

Literales binarios: desde 1.7 en adelante, podemos especificar el valor literal incluso en forma binaria también, los dígitos permitidos son 0 y 1. El valor de los literales debe tener el prefijo 0b o 0B.

int x = 0b1111;

Ejemplo: 

Java

// Java program to illustrate the
// application of Integer literals
 
public class Test {
    public static void main(String[] args)
    {
          // decimal-form literal
        int a = 101;
          // octal-form literal
        int b = 0100;
        // Hexa-decimal form literal
        int c = 0xFace;
          // Binary literal
        int d = 0b1111;
       
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}
Producción

101
64
64206
15

Nota: De forma predeterminada, cada literal es de tipo int, podemos especificar explícitamente como tipo largo con el sufijo l o L. No hay forma de especificar bytes y literales cortos explícitamente, pero indirectamente podemos especificar. Cada vez que asignamos un literal integral a la variable de bytes y si el valor está dentro del rango de bytes, el compilador lo trata automáticamente como literales de bytes.

Literal de coma flotante

Para los tipos de datos de coma flotante, podemos especificar literales solo en formato decimal, y no podemos especificar en formato octal y hexadecimal. 

Literales decimales (Base 10): En este formulario, los dígitos permitidos son 0-9. 

double d = 123.456;

Java

// Java program to illustrate the 
// application of floating-point literals
 
public class Test {
    public static void main(String[] args)
    {
          // decimal-form literal
        float a = 101.230;
          // It also acts as decimal literal
        float b = 0123.222;
          // Hexa-decimal form (error)
        float c = 0x123.222;
       
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
    }
}

Producción

101.230
123.222
Error: malformed floating point literal

Nota: De forma predeterminada, cada literal de punto flotante es de tipo doble y, por lo tanto, no podemos asignarlo directamente a la variable flotante. Pero podemos especificar el literal de punto flotante como tipo flotante con el sufijo f o F. Podemos especificar explícitamente el literal de punto flotante como tipo doble con el sufijo d o D. Por supuesto, esta convención no es necesaria.
 

Literales de caracteres

Para los tipos de datos char, podemos especificar literales de 4 formas: 

Comillas simples: Podemos especificar literal a un tipo de datos char como un solo carácter dentro de las comillas simples.

char ch = 'a';

Char literal como integral literal: podemos especificar char literal como integral literal, que representa el valor Unicode del carácter, y ese integral integral se puede especificar en formas decimales, octales y hexadecimales. Pero el rango permitido es de 0 a 65535.

char ch = 062;

Representación Unicode: Podemos especificar caracteres literales en la representación Unicode ‘\uxxxx’. Aquí xxxx representa 4 números hexadecimales.

char ch = '\u0061';// Here /u0061 represent a.

Secuencia de escape: cada carácter de escape se puede especificar como caracteres literales.

char ch = '\n';

Ejemplo:

Java

// Java program to illustrate the
// application of char literals
 
public class Test {
    public static void main(String[] args)
    {
          // single character literal within single quote
        char ch = 'a';
          // It is an Integer literal with octal form
        char b = 0789;
          // Unicode representation
        char c = '\u0061';
       
        System.out.println(ch);
        System.out.println(b);
        System.out.println(c);
       
        // Escape character literal
        System.out.println("\"  is a symbol");
    }
}

Producción

a
error:Integer number too large
a
"  is a symbol

Literales de string

Cualquier secuencia de caracteres entre comillas dobles se trata como literales de string. 

String s = "Hello";

Los literales de string no pueden contener caracteres de nueva línea o salto de línea sin escape. Sin embargo, el compilador de Java evaluará las expresiones en tiempo de compilación, por lo que la siguiente expresión de string da como resultado una string con tres líneas de texto: 

Example:
String text = "This is a String literal\n"
            + "which spans not one and not two\n"
            + "but three lines of text.\n";

Java

// Java program to illustrate the
// application of String literals
 
public class Test {
    public static void main(String[] args)
    {
        String s = "Hello";
 
        // If we assign without "" then it treats
        // as a variable and causes compiler error
        String s1 = Hello;
 
        System.out.println(s);
        System.out.println(s1);
    }
}

Producción

Hello
error: cannot find symbol
symbol:   variable Hello
location: class Test

literales booleanos

Solo se permiten dos valores para los literales booleanos, es decir, verdadero y falso. 

boolean b = true;

Java

// Java program to illustrate the
// application of boolean literals
 
public class Test {
    public static void main(String[] args)
    {
        boolean b = true;
        boolean c = false;
        boolean d = 0;
        boolean b = 1;
 
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
        System.out.println(e);
    }
}

Producción

true
false
error: incompatible types: int cannot be converted to boolean
error: incompatible types: int cannot be converted to boolean

Nota: Cuando realizamos operaciones de concatenación, los valores entre paréntesis se concatenan primero. Luego los valores se concatenan de izquierda a derecha. Debemos tener cuidado cuando mezclamos caracteres literales y enteros en las operaciones de concatenación de strings y este tipo de operación se conoce como operación de modo mixto .

Java

// Java program to illustrate the behaviour of
// char literals and integer literals when
// we are performing addition
 
public class Test {
    public static void main(String[] args)
    {
        // ASCII value of 0 is 48
        int first = '0';
 
        // ASCII value of 7 is 55
        int second = '7';
        System.out.println("Geeks!" + first +
                                '2' + second);
    }
}
Producción

Geeks!48255

Explicación: Cada vez que realizamos una suma entre una string y un número entero, el resultado general se convierte en una string. La evaluación del programa anterior se realiza de la siguiente manera:  

"Geeks!" + first + '2' + second
"Geeks! " + 48 + '2' + 55
"Geeks!48" + '2' + 55
"Geeks!482" + 55
"Geeks!48255"

Este artículo es una contribución de Bishal Kumar Dubey . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks. Escriba comentarios si encuentra algo incorrecto o si desea compartir más información sobre el tema tratado anteriormente.

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

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