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?
- Tipos de literales y sus usos
- Literales numéricos
- Literales de cadena
- Literales de caracteres
- literales booleanos
- Técnica Jedi con literales.
- Literales en el curso JavaRush
- Conclusión
¿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 esnull
. Según las primitivas, los literales también se dividen en secciones:
- Numérico:
- Números enteros;
- Punto flotante;
- Cadena;
- Personaje;
- 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
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, long
debes poner un símbolo al final L
indicando 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 f
o al final F
. En este caso double
se 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:- Los que se pueden introducir desde el teclado son caracteres comunes;
- Símbolos que no se pueden ingresar simplemente desde el teclado (símbolos de varios idiomas, formas, etc.).
,
' 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:false
y 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.
GO TO FULL VERSION