您的当前位置:首页正文

Java基础之字面值

来源:华佗健康网
123

概要:什么是字⾯值

Java基础之字⾯值

4

字⾯值是指在程序中⽆需变量保存,可直接表⽰为⼀个具体的数字或字符串的值。⽐如5在a = b * 2这个语句中,2就是⼀个字⾯值,它本⾝就是⼀个具体的值。6

7

在Java源代码中,字⾯值⽤于表⽰固定的值(fixed value)。数值型的字⾯值是最常见的,字符串字⾯值可以算是⼀种,当然也可以把特殊

8当做字⾯值。字⾯值⼤体上可以分为整型字⾯值、浮点字⾯值、字符和字符串字⾯值、特殊字⾯值。的null9101. 整型字⾯值11

从形式上看是整数的字⾯值归类为整型字⾯值。例如:12 10, 100000L, 'B'、0XFF这些都可以称为整型字⾯值。整型字⾯值可以⽤⼗进制、⼗六、⼋、⼆进制来表⽰。⼗进制很简单,⼆、⼋、⼗六进制的表⽰分别在最前⾯加上0B(0b)、0、0X(0x)即可,⼀般情况下,字⾯值创13建的是14int类型,但是int字⾯值可以赋值给byte, short ,char ,long ,int,只要字⾯值在⽬标范围以内,Java会⾃动完成转换,如果试图将超出范围的字⾯值赋给某⼀类型(⽐如把128赋给byte类型),编译通不过。⽽如果想创建⼀个int类型⽆法表⽰的long类型,则需要在字⾯值最后⾯加上L或者l。通常建议使⽤容易区分的L。所以整型字⾯值包括int字⾯值和long字⾯值两种。

2. 浮点字⾯值

浮点字⾯值简单的理解可以理解为⼩数。分为float字⾯值和double字⾯值,如果在⼩数后⾯加上F或者f,则表⽰这是个float字⾯值,如1.8F。如果⼩数后⾯不加F(f),如10.4。或者⼩数后⾯加上D(d),则表⽰这是个double字⾯值。另外,浮点字⾯值⽀持科学技术法表⽰。

float f1 = 1.23e-4F; float f2 = 1.23E0F;

3 .字符及字符串字⾯值

Java中字符字⾯值⽤单引号括起来,如‘@’‘1’。所有的UTF-16字符集都包含在字符字⾯值中。不能直接输⼊的字符,可以使⽤转义字符,如‘\\n’为换⾏字符。也可以使⽤⼋进制或者⼗六进制表⽰字符,⼋进制使⽤反斜杠加3位数字表⽰,例如'\\141'表⽰字母a。⼗六进制使⽤\":{"h":13.169,"w":10.561,"x":816.451,"y":575.221,"z":393},"ps":null,"t":"word加上4为⼗六进制的数表⽰,如'\a'表⽰字符a。也就是说,通过使⽤转义字符,可以表⽰键盘上的有的或者没有的所有字符。常见的转义字符序列有:

\\ddd(⼋进制) 、 \(⼗六进制Unicode字符)、\\'(单引号)、\\\"(双引号)、\\\\ (反斜杠)\\r(回车符) \\n(换⾏符) \\f(换页符) \(制表符) \\b(回格符)

字符串字⾯值则使⽤双引号,字符串字⾯值中同样可以包含字符字⾯值中的转义字符序列。字符串必须位于同⼀⾏或者使⽤+运算符,因为java没有续⾏转义序列。

4 特殊字⾯值

null是⼀种特殊的类型(type),可以将它赋给任何引⽤类型变量,表⽰这个变量不引⽤任何东西。如果⼀个引⽤类型变量为null,表⽰这个变量不可⽤。

还有⼀种特殊的class literal,⽤type name加上.class表⽰,例如String.class。⾸先,String是类Class(java.lang.Class)的⼀个实例(对

象),⽽\"This is a string\"是类String的⼀个对象。然后,class literal⽤于表⽰类Class的⼀个对象,⽐如String.class⽤于表⽰类Class的对象String。简单地说,class literal就是诸如String.class 、Integer.class这样的字⾯值,它所表⽰的就是类String、类Integer。如果输出Integer.class,你会得到class java.lang.Integer。List.class的输出为interface java.util.List。总之,class literal⽤于表⽰类型本⾝!

5 在数值型字⾯值中使⽤下划线。

JDK7开始,可以在数值型字⾯值(包括整型字⾯值和浮点字⾯值)插⼊⼀个或者多个下划线。但是下划线只能⽤于分隔数字,不能分隔字符与字符,也不能分隔字符与数字。规则如下:

1. 仅限单条下划线 ,不能多条相连。2. 数值开头和结尾不能出现下划线。3. F、D 和 L的前后不能出现下划线。4. ⼆进制前导 b 和 ⼗六进制 x 前后不能出现下划线。public class Underline {

public static void main(String[] args) { double d = 123_456_789.123_345; System.out.println(d);

int i = 0b1111_1010_1111_1010_1111_1010_1111; System.out.println(Integer.toBinaryString(i)); System.out.printf(\"%x%n\ long l = 0xfa_fa_fa_f;

System.out.printf(\"%x%n\ }}

注意: Java 中 System.out.printf() 或 System.out.format() 中可以使⽤ %n 实现忽略平台间差异的换⾏符。对于System.out.println(),仍然必须使⽤ \\n。

参考:Java完全参考⼿册第⼋版

因篇幅问题不能全部显示,请点此查看更多更全内容