《Java 7程序设计入门经典》一2.3 字面量

2.3 字面量

在Java中,字面量(literal)指人类可以阅读的固定值的表示。例如,数100是字面量。字面量也常常称为常量(constant)。大多数字面量及其用法非常直观,前面的示例程序中已经以各种形式使用过它们。现在正式地解释它们。
Java的字面量可以是任意基本数据类型。每种字面量的表示取决于类型。如前所述,字符常量由单引号包括。例如,'a'和'%'都是字符常量。
整数字面量是没有小数部分的数。例如,10和-10是整数字面量。浮点字面量有小数点,小数点后是小数部分。例如,11.123是浮点字面量。Java也允许使用科学计数法表示浮点数。这种情况下在尾数后使用E或e,然后再跟上指数。指数必须是整数。例如,1.234E2表示值123.4,1.234E-2表示值0.01234。
默认情况下,整数字面量的类型是int。如果需要指定long类型的字面量,需要在常量后加l或L。例如,12是一个int类型的字面量,但是12L是一个long类型的字面量。
默认情况下,浮点字面量是double类型的。要指定一个float类型的字面量,可以在常量后加f或F。例如,10.19F是一个float类型的字面量。
尽管整数字面量默认创建了一个int值,但是只要值可以由目标类型表示,它们仍可以赋给char类型、byte类型或short类型的变量。整数字面量总能赋给long类型的变量。
从JDK 7开始,可以在整数或浮点数中使用一条或多条下划线。这能让含有多个数字的值阅读起来更简单。当字面量在编译时,会丢弃下划线。下面是一个例子:

这指定了值123?451?234。下划线的使用在编码部件号、用户ID、状态编码等一般含有子数据群的数据时特别有用。

2.3.1 十六进制、八进制和二进制字面量

在编程中有时使用八进制或十六进制计数系统会比使用十进制计数系统更加简单。基于8的计数系统称为八进制(octal),它使用0~7的数字。八进制10等于十进制8。基于16的计数系统称为十六进制(hexadecimal),它使用数字0~9和字母A~F(也可以用小写字母a~f)。字母A~F表示10、11、12、13、14和15。例如,十六进制中的10表示十进制的16。因为常常使用这两种计数系统,所以Java不但允许以十进制表示整形字面量,也允许以十六进制或八进制表示整形字面量。十六进制字面量由0x或0X打头(即数字0后跟字母x或X)。八进制字面量以0打头。下面是一些例子:

感兴趣的是,Java也允许十六进制浮点字面量,不过这很少使用。
从JDK 7开始,可以用二进制指定整数字面量。为此,需要在二进制数前加0b或0B。例如,0b1100用二进制指定十进制值12。

2.3.2 转义字符序列

将字符常量包括在单引号内对绝大多数的字符都是可行的。但是对于一些字符(如回车),在使用文本编辑器时就出现特别的困难。另外,某些其他字符,如单引号和双引号,在Java中有特殊的意义,不能直接使用。所以,Java提供了特殊的转义序列(escape sequence),有时又称为反斜线字符常量,如表2-2所示。这些序列用于代替它们表示的字符。

例如,下面把制表符字符赋予变量ch:

下面的例子把单引号赋予ch:

2.3.3 字符串字面量

Java支持另一种字面量类型:字符串。字符串(string)是一系列字符,由双引号包围。例如,

就是一个字符串。在前面示例程序中的许多printf()语句中能看到许多字符串的例子。
除了一般的字符外,字符串字面量也能包括一个或多个刚刚介绍的转义序列。例如,考虑如下程序,它使用转义序列\n和\t。

输出如下所示:

注意如何用转义序列\n来换行。这样就不需要写多个println()语句来获得多行输出。只要在一个长字符串中需要换行的地方包括转义字符\n即可。

时间: 2024-08-04 15:21:37

《Java 7程序设计入门经典》一2.3 字面量的相关文章

《Java 7程序设计入门经典》一导读

前 言 本书通过Java语言来讲解编程的基础知识.该书假设读者之前没有任何编程经验.本书首先介绍最基本的知识,例如,如何编译和运行Java程序:接着,讨论关键字.运算符和一些形成Java语言的构造.本书还会涉及Java的应用编程接口(Application Programming Interface,API)库.其中,包括Swing框架,它可以用来创建具有图形用户界面(Graphical User Interface,GUI)的程序.还包括集合框架,它可以用来存储对象集合.简而言之,本书旨在对J

《Java 7程序设计入门经典》一3.17 习题

3.17 习题 1.写一个程序,从键盘读入字符,直到接收到一个英文句号(.).程序需要计算输入的空格的个数.在程序结束时输出总结果. 2.请写出if-else-if梯队的一般形式. 3.针对下列程序 其中最后的else子句与哪个if配对? 4.写一个for循环语句,从1000计数到0,步进值为-2. 5.下面的代码片段是否有效? 6.请解释break语句的用途(包括其两种形式.) 7.在下面的代码片段中,break语句执行后会显示什么? 8.下面程序片段的输出是什么? 9.for循环中的迭代表达

《Java 7程序设计入门经典》一2.15 表达式

2.15 表达式 运算符.变量和字面量都是表达式(expression)的组成部分.当在程序中遇到表达式时,会计算该表达式.因为它在前面的程序中已经用过,所以读者可能对表达式已有相当的直观理解.另外,Java的表达式也与代数中的表达式类似.但是,现在还是要讨论表达式的一些方面. 2.15.1 表达式中的类型转换 在表达式中,可能将两种或多种不同类型但互相兼容的数据混合.例如,因为short类型和long类型都是数值类型,所以在表达式中将它们混合使用.当一个表达式中混合不同种类的数据,它们会转换为

《Java 7程序设计入门经典》一2.2 Java的基本数据类型

2.2 Java的基本数据类型 Java包括两大类内置的数据类型:面向对象的数据类型和非面向对象的数据类型.Java中面向对象的数据类型由类定义,在后面会有类的介绍.但是,Java的核心是8种基本数据类型(也称元素数据类型或简单数据类型),如表2-1所示.这里使用"基本"(primitive)这个词来表示,从面向对象的角度看,这些类型不是对象,而是普通的二进制值.出于有效性,这些基本数据类型不是对象. Java为每个基本数据类型严格指定范围和行为.所有Java虚拟机都必须支持这些.因为

《Java 7程序设计入门经典》一2.4 深入解析变量

2.4 深入解析变量 第1章介绍了变量.现在,我们来更详细地考查它们.如前所述,变量可以用以下形式声明: type var-name; 其中type变量的数据类型,var-name是变量名.可以声明任意有效类型的变量,包括之前描述的所有基本类型.在声明变量时,创建这种类型的一个实例.于是,变量的能力由类型决定.例如,boolean类型的变量可以用来存储真值或假值,但不能存储浮点值.另外,变量的类型在其生命周期内不能改变.例如,一个int变量不能变成char变量. Java中的所有变量必须先声明后

《Java 7程序设计入门经典》一第2章 数据类型和运算符

第2章 数据类型和运算符 本章要点 了解Java的基本数据类型: 使用字面量: 初始化变量: 了解方法中变量作用域的规则: 使用算术运算符: 使用关系运算符和逻辑运算符: 理解赋值运算符: 理解速记赋值: 理解赋值语句中的类型转换: 使用强制类型转换: 理解表达式中的类型转换. 对任意一种编程语言而言,其基础都是数据类型和运算符.Java也不例外.这些元素定义语言的限制,决定它能够用于哪些类型的任务.幸运的是,Java支持一系列丰富的数据类型和运算符,使其适合于几乎所有类型的编程. 数据类型和运

《Java 7程序设计入门经典》一2.12 赋值中的类型转换

2.12 赋值中的类型转换 在编程中,常常需要将一种类型的变量赋值给另一种类型的变量.例如,要把int值赋给float变量,如: 当在一个赋值语句中有兼容的类型时,运算符右边的值自动转换为左边的类型.于是,在上面的代码片段中,变量i的值转换为float类型,然后赋给变量f.但是,由于Java有严格的类型检查,不是所有的类型都互相兼容,因此,不是所有的隐式转换都允许发生.例如,boolean类型与int类型就不兼容. 当把一种类型的数据赋给另一种类型的变量时,在以下情况下会发生自动类型转换(aut

《Java 7程序设计入门经典》一3.5 switch语句

3.5 switch语句 Java的第二个选择语句是switch语句.switch语句提供了多个分支.于是,它使程序可以在多个选项中做出选择.尽管一系列嵌套的if语句可以执行多路测试,在许多情况下,switch语句是更有效的方法.它像这样工作:表达式的值与一系列的常数比较.当找到一个选项时,执行与这个匹配项相关的语句序列.switch语句的一般形式为: 对于JDK 7以前的Java版本,控制switch的表达式expression必须是byte.short.int.char或枚举类型.(枚举类型

《Java 7程序设计入门经典》一1.4 Java语言

1.4 Java语言 本书使用Java语言来讲解编程的基础知识.虽然其他编程语言也可以用来达到此目的,但是由于以下两个原因,本书选择了Java:首先,它是世界上使用最广泛的计算机语言之一.所以从实际的观点看,它是绝佳的学习语言.其次,它设计和实现了一些特性,这些特性使得对编程基础知识的介绍变得简单. 但是还有第三个原因.Java展现了现代编程的许多特点.对Java的理解可以使你像专业程序员一样看待和思考编程工作.它是这个时代定义的语言之一. 计算机语言演进是一个正在进行的历史过程,而Java是其