JavaRush /Java 博客 /Random-ZH /Java 中的文字

Java 中的文字

已在 Random-ZH 群组中发布
在创建应用程序的阶段,开发人员通常只知道其结构,并不假设它将处理哪些数据。然而,在某些情况下,您需要在程序代码中显式指定一些数据(例如迭代次数或要输出的消息)。在这种情况下,文字就可以派上用场。 内容:

什么是文字?

文字是程序代码中显式指定的值 - 启动时代码中的某种类型的常量。
class Test {
   public static void main(String[] args) {
       System.out.println("Hello world!");
   }
}
在本课程中“Hello world!” - 字面意思。文字有不同的类型,由它们的目的和编写方式决定。

文字的类型及其用途

所有文字都是原始值(字符串、数字、字符、布尔值)。您无法创建文字对象。与对象关联的唯一文字是null。根据原语,文字也分为几个部分:
  1. 数字:
    • 整数;
    • 浮点;
  2. 细绳;
  3. 特点;
  4. 脑筋急转弯。

数字文字

整数文字

这种类型的文字是最简单的。数字以其标准形式书写,不指示字符或其他任何内容。默认情况下,任何整数都是整数文字。也就是说,您可以显式设置变量的值或循环中的迭代次数。Java 支持 4 种数字系统:
  • 二进制
  • 八进制
  • 十进制
  • 十六进制
JDK 7 引入了写入二进制值的功能。这是使用前缀0b0B完成的。接下来是使用 0 和 1 进行写入。进制数字使用前导 0 进行写入。有效数字是 0 到 7。写入 09 或 08 将导致编译错误。十进制数字系统没有问题:数字以我们熟悉的形式表示。唯一的限制是数字不能以 0 开头,因为编译器会将其视为八进制。十六进制数字使用前缀 0x 和 0X 书写。有效数字为 0 至 15,其中数字 10-15 分别由 AF 符号表示。
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);
}
输出: 二进制数 a:854 八进制数 b:5324 十进制数 c:456 十六进制数 d:1318162 尽管数字在不同的数制中指定,但在程序中它们都按十进制处理数字。超过该值将导致编译错误:
int b = 012914; // Ошибка
int d = 0x141Z12; // Ошибка
当在编译阶段运行时,我们得到以下结果:

Error:(13, 25) java: integer number too large: 012914
Error:(14,30) java: ';' expected
打字呢?任何整数文字都有默认类型int. 如果其值超出指定变量的范围,则会发生编译错误。使用类型时,long必须在末尾添加一个符号L来指示该类型:
long x = 0x1101010110; // Ошибка
long b = 1342352352351351353L; // Все в порядке
尝试编译会出现以下错误:

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

浮点文字

浮点数或小数可以用两种方式编写。 第一个是经典的小数:3.14159 或 2.718281282459045。 第二种是科学形式,即普通小数加上符号 e 或 E 形式的后缀以及指定分数必须乘以的 10 次方。例如,4.05E-13,这意味着 4.05 * 10 -13
double a = 2.718281828459045;
double d = 4.05E-13;
System.out.println("Тип double в классическом виде: " + a);
System.out.println("Тип double в научном виде: " + d);
输出: 经典双精度类型:2.718281828459045 科学双精度类型:4.05E-13 与整数和数字系统不同,科学记数法存储在变量中,并以与经典记数法相同的方式进行处理。打字呢?任何浮点数都会创建一个类型double。如果需要使用类型float,则必须在末尾添加for F。在这种情况下,double它将被简化为类型float。这不会自动发生:
float a = 2.718281828459045; // Ошибка
float d = 4.05E-13F; // Все в порядке
当从编译阶段开始时,我们看到以下错误:

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

字符串文字

字符串文字是用双引号括起来的一组字符。这种类型的使用频率与数字文字一样。该行还可能包含需要转义的服务字符(所谓的转义序列)。例子:
String simpleString = "Это обычная строка. Такая же стандартная и непримечательная, How и все мы.";
String uniqueString = "А это необычная \"строка\". Хотя бы потому, что часть \"слов\" в ней в \"кавычках\".";
System.out.println(simpleString);
System.out.println(uniqueString);
输出: 这是一个正常的字符串。和我们其他人一样标准且不起眼。这是一条不寻常的“线”。如果只是因为其中的一些“单词”在“引号”中。

字符文字

Java中的字符字面量是用Unicode字符集表示的,即每个字符都是一个16位的值。为了在代码中指示符号,它用单引号分隔。根据经验,有两种类型的符号:
  1. 可以从键盘输入的都是普通字符;
  2. 无法简单地从键盘输入的符号(各种语言、形状等的符号)。
可以显式指定常规字符:“ ,”或“ @”。如果字符是服务字符(例如换行符或制表符),则必须使用反斜杠转义此类字符。不能简单地从控制台输入的字符可以以其 16 位形式指定。为此,您必须指定带有前缀的字符代码\u,例如“ \u00F7”。您还可以通过在开头添加反斜杠来指定八进制样式(三位数)的字符,例如“ ” \122。在我看来,它更容易使用\u。使用示例:
System.out.println("Амперсанд - " + '&');
System.out.println("Символ деления - " + '\u00F7');
输出: & 符号 - & 除号 - ÷

布尔文字

最简单的文字是逻辑文字。只有 2 个值:falsetrue,它们是明确指定的,没有各种符号。这些文字可以分配给 boolean 类型的变量,或者在需要 boolean 类型的地方指定(例如,在 if 块中,虽然这种做法被认为是不好的举止,但温和地说)。
boolean flag = false;

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

绝地武士技术与文字

借助 Java 中的符号,您可以做许多有趣的事情,包括管理表情符号。例如,让我们显示一张笑脸:
int smile = 0x1F600; // Здесь шестнадцатеричный code эмоджи
StringBuilder sb = new StringBuilder();
sb.append(Character.toChars(smile)); // Собираем в StringBuilder
System.out.println("Улыбающееся лицо: " + sb.toString()); // Выводим
结论: 笑脸: 😀 虽然表情符号的显示可能令人毛骨悚然(取决于实现),但这个解决方案做得很好。然而,在标准编码表中很难搜索到所需的表情符号;官网的表情符号部分也稀疏。使用附加库要容易得多。

JavaRush 课程中的文字

在 JavaRush 课程中,在Java 语法课程第 8 课的第 10 级学习了文字,其中示例解释了什么是文字以及为什么需要它们。JavaRush 是一门关于 Java 编程的在线课程,重点是实践:1200 多个带有即时验证的任务、迷你项目、游戏。

结论

Java 中的文字在任何程序中都很方便,但必须在合适的地方使用它们。您不应该在源代码中硬编码数据库连接参数或在程序生命周期期间可能更改的任何值。
评论
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION