JavaRush /Blog Java /Random-ES /Literales en Java

Literales en Java

Publicado en el grupo Random-ES
En la etapa de creación de una aplicación, el desarrollador, por regla general, solo conoce su estructura y no asume qué datos procesará. Sin embargo, en algunas situaciones, es necesario especificar explícitamente algunos datos en el código del programa (por ejemplo, el número de iteraciones o el mensaje que se generará). En este caso, los literales acuden al rescate. Contenido:

¿Qué son los literales?

Los literales son valores especificados explícitamente en el código del programa: constantes de un determinado tipo que se encuentran en el código en el momento del lanzamiento.
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
En esta clase “¡Hola mundo!” - literalmente. Los literales son de diferentes tipos, determinados por su propósito y cómo se escriben.

Tipos de literales y sus usos

Todos los literales son valores primitivos (cadenas, números, caracteres, booleanos). No se puede crear un objeto literal. El único literal asociado con un objeto es null. Según las primitivas, los literales también se dividen en secciones:
  1. Numérico:
    • Números enteros;
    • Punto flotante;
  2. Cadena;
  3. Personaje;
  4. Rompecabezas.

Literales numéricos

Literales enteros

Este tipo de literal es el más simple. Los números se escriben en su forma estándar sin indicar caracteres ni nada más. Cualquier número entero es un literal entero de forma predeterminada. Es decir, puedes establecer explícitamente el valor de una variable o el número de iteraciones en un bucle. Java admite 4 sistemas numéricos:
  • Binario
  • octal
  • Decimal
  • hexadecimal
JDK 7 introdujo la capacidad de escribir valores binarios . Esto se hace usando el prefijo 0b o 0B . Luego viene la escritura usando 0 y 1. Los números en octal se escriben usando un 0 inicial. Los dígitos válidos son del 0 al 7. Escribir 09 o 08 provocará un error de compilación. No hay problemas con el sistema numérico decimal : los números se indican en la forma que conocemos. La única limitación es que el número no puede empezar por 0, ya que el compilador lo tomará como octal. Los números en hexadecimal se escriben utilizando los prefijos 0x y 0X. Los números válidos son del 0 al 15, donde los números del 10 al 15 se indican mediante símbolos AF respectivamente.
public static void main(String[] args) {
       int a = 0b1101010110;
       int b = 012314;
       int c = 456;
       int d = 0x141D12;
       System.out.println("Число a в двоичной системе: " + a);
       System.out.println("Число b в восьмеричной системе: " + b);
       System.out.println("Число c в десятичной системе: " + c);
       System.out.println("Число d в шестнадцатеричной системе: " + d);
}
Salida: Número a en sistema binario: 854 Número b en sistema octal: 5324 Número c en sistema decimal: 456 Número d en sistema hexadecimal: 1318162 A pesar de que los números se especifican en diferentes sistemas numéricos, en el programa se procesan como decimal números. Exceder los valores resultará en un error de compilación:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
Cuando se ejecuta en la etapa de compilación, obtenemos el siguiente resultado:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
¿Qué pasa con la escritura? Cualquier literal entero tiene un tipo predeterminado de int. Si su valor está fuera de los límites de la variable asignada, se produce un error de compilación. Al utilizar un tipo, longdebes poner un símbolo al final Lindicando este tipo:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
Al intentar compilar se produce el siguiente error:

Error(11, 26) java: integer number too large: 1101010110

Literales de punto flotante

Los números de coma flotante, o números fraccionarios, se pueden escribir de dos maneras. La primera es como fracción decimal clásica: 3,14159 o 2,718281282459045. El segundo está en forma científica, es decir, una fracción decimal ordinaria más un sufijo en forma del símbolo e o E y la potencia de 10 por la cual se debe multiplicar la fracción especificada. Por ejemplo, 4.05E-13, esto significa 4.05 * 10 -13 .
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
Salida: Tipo doble clásico: 2.718281828459045 Tipo doble científico: 4.05E-13 A diferencia de los números enteros y los sistemas numéricos, la notación científica se almacena en una variable y se procesa de la misma manera que la notación clásica. ¿Qué pasa con la escritura? Cualquier número de punto flotante crea un tipo double. Si debes usar el tipo float, debes agregar un fo al final F. En este caso doublese reducirá a tipo float. Esto no sucede automáticamente:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
Al comenzar en la etapa de compilación vemos el siguiente error:

Error:(11, 27) java: incompatible types: possible lossy conversion from double to float

Literales de cadena

Los literales de cadena son un conjunto de caracteres entre comillas dobles. Este tipo se utiliza con tanta frecuencia como los literales numéricos. La línea también puede contener caracteres de servicio que deben escaparse (las llamadas secuencias de escape). Ejemplo:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, Cómo и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
Salida: Esta es una cadena normal. Tan estándar y corriente como el resto de nosotros. Y esta es una "línea" inusual. Aunque sólo sea porque algunas de las "palabras" que contiene están entre comillas.

Literales de caracteres

Los caracteres literales en Java están representados por el juego de caracteres Unicode, es decir, cada carácter es un valor de 16 bits. Para indicar un símbolo en el código, se separa entre comillas simples. Según la experiencia, existen dos tipos de símbolos:
  1. Los que se pueden introducir desde el teclado son caracteres comunes;
  2. Símbolos que no se pueden ingresar simplemente desde el teclado (símbolos de varios idiomas, formas, etc.).
Los caracteres regulares se pueden especificar explícitamente: ' ,' o ' @'. Si un carácter es un carácter de servicio (por ejemplo, un salto de línea o tabulación), dicho carácter debe tener como carácter de escape una barra invertida. Los caracteres que no se pueden ingresar simplemente desde la consola se pueden especificar en su formato de 16 bits. Para hacer esto, debe especificar el código de carácter con un prefijo \u, por ejemplo ' \u00F7'. También puede especificar caracteres en estilo octal (número de tres dígitos) simplemente agregando una barra invertida al principio, por ejemplo ' \122'. En mi opinión, es mucho más fácil de usar \u. Ejemplo de uso:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
Salida: ampersand - y símbolo de división - ÷

literales booleanos

El literal más simple es lógico. Sólo hay 2 valores: falsey true, que se especifican explícitamente sin varios símbolos. Dichos literales pueden asignarse a variables de tipo booleano o especificarse en un lugar donde se espera el tipo booleano (por ejemplo, en un bloque if, aunque esta práctica se considera de mala educación, por decirlo suavemente).
boolean flag = false;

if(true) {
    // Действия будут выполняться всегда.
}

Técnica Jedi con literales.

Gracias a los símbolos en Java, puedes hacer muchas cosas interesantes, incluida la gestión de emojis. Por ejemplo, mostremos una cara sonriente:
int smile = 0x1F600; // Здесь шестнадцатеричный código эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
Conclusión: Cara sonriente: 😀 Aunque la visualización de emoji puede ser espeluznante (dependiendo de la implementación), esta solución hace bien su trabajo. Sin embargo, es difícil buscar el emoji deseado en la tabla de codificación estándar; la sección de emoticonos en el sitio web oficial es escasa. Es mucho más fácil utilizar bibliotecas adicionales.

Literales en el curso JavaRush

En el curso JavaRush, los literales se estudian en el nivel 10 en la lección 8 del curso Sintaxis de Java , donde los ejemplos explican qué son los literales y por qué son necesarios. JavaRush es un curso en línea sobre programación Java con énfasis en la práctica: más de 1200 tareas con verificación instantánea, miniproyectos, juegos.

Conclusión

Los literales en Java son algo conveniente en cualquier programa, pero deben usarse en aquellos lugares donde sea apropiado. No debe codificar los parámetros de conexión de la base de datos ni ningún valor que pueda cambiar durante el ciclo de vida del programa en el código fuente.
Comentarios
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION