Java直接量(字面量)
admin
2024-02-11 03:40:06
0

直接量是指在程序中通过源代码直接给出的值,例如在int a = 5;代码中,为变量 a 所分配的初始值 5 就是一个直接量。

Java入门基础视频教程,java零基础自学就选黑马程序员Java入门教程(含Java项目和Java真题)

直接量的类型

并不是所有的数据类型都可以指定直接量,能指定直接量的通常只有三种类型:基本类型、字符串类型和 null 类型。具体而言,Java 支持如下 8 种类型的直接量。

1)int 类型的直接量

在程序中直接给出的整型数值,可分为二进制、十进制、八进制和十六进制 4 种,其中二进制需要以 0B 或 0b 开头,八进制需要以 0 开头,十六进制需要以 0x 或 0X 开头。例如 123、012(对应十进制的 10)、0x12(对应十进制的 18)等。

2)long 类型的直接量

在整型数值后添加 l 或 L 后就变成了 long 类型的直接量。例如 3L、0x12L(对应十进制的 18L)。

3)float 类型的直接量

在一个浮点数后添加 f 或 F 就变成了 float 类型的直接量,这个浮点数可以是标准小数形式,也可以是科学计数法形式。例如 5.34F、3.14E5f。

4)double 类型的直接量

直接给出一个标准小数形式或者科学计数法形式的浮点数就是 double 类型的直接量。例如 5.34、3.14E5。

5)boolean 类型的直接量

这个类型的直接量只有 true 和 false。

6)char 类型的直接量

char 类型的直接量有三种形式,分别是用单引号括起来的字符、转义字符和 Unicode 值表示的字符。例如‘a’,‘\n’和‘\u0061’。

7)String 类型的直接量

一个用双引号括起来的字符序列就是 String 类型的直接量。

在大多数其他语言中,包括 C/C++,字符串作为字符的数组被实现。然而,在 Java 中并非如此。在 Java 中,字符串实际上是对象类型。在教程后面你将看到,因为 Java 对字符串是作为对象实现的,因此,它有广泛的字符串处理能力,而且功能既强又好用。

8)null 类型的直接量

这个类型的直接量只有一个值,即 null。

在上面的 8 种类型的直接量中,null 类型是一种特殊类型,它只有一个值:null。而且这个直接量可以赋给任何引用类型的变量,用以表示这个引用类型变量中保存的地址为空,即还未指向任何有效对象。

直接量的赋值

通常总是把一个直接量赋值给对应类型的变量,例如下面代码都是合法的。

int a = 5;
char c = 'a';
boolean b = true;
float f = 5.12f;
double d = 4.12;
String name = "CSDN";
String url = "http://www.CSDN.net";

除此之外,Java 还支持数值之间的自动类型转换,因此允许把一个数值直接量直接赋给另一种类型的变量,这种赋值必须是系统所支持的自动类型转换,例如把 int 类型的直接量赋给一个 long 类型的变量。

String 类型的直接量不能赋给其他类型的变量,null 类型的直接量可以直接赋给任何引用类型的变量,包括 String 类型。boolean 类型的直接量只能赋给 boolean 类型的变量,不能赋给其他任何类型的变量。

关于字符串直接量有一点需要指出,当程序第一次使用某个字符串直接量时,Java 会使用常量池(constant pool)来缓存该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,Java 会直接使用常量池(constantpool)中的字符串直接量。

提示:

  • 由于 String 类是一个典型的不可变类,因此 String 对象创建出来的就不可能改变,因此无需担心共享 String 对象会导致混乱。
  • 常量池(constant pool)指的是在编译期被确定,并被保存在已编译的 .class 文件中的一些数据,它包括关于类、方法、接口中的常量,也包括字符串直接量。

看如下程序:

String s0 = "hello";
String s1 = "hello";
String s2 = "he" + "llo";
System.out.println(s0 == s1);
System.out.println(s0 == s2);

运行结果为:

true
true

Java 会确保每个字符串常量只有一个,不会产生多个副本。例子中的 s0 和 s1 中的“hello”都是字符串常量,它们在编译期就被确定了,所以 s0 = s1 返回 true。

而“he”和“llo”也都是字符串常量,当一个字符串由多个字符串常量连接而成时,它本身也是字符串常量,s2 同样在编译期就被解析为一个字符串常量,所以 s2 也是常量池中“hello”的引用。

因此,程序输出 s0 == s1 返回 true,s1 == s2 也返回 true。

相关内容

热门资讯

原创 红... 红薯向来以好种植、产量惊人以及适应能力强而闻名。通常情况下,一亩地轻轻松松就能产出五六千斤红薯,在那...
24款家常菜肴推荐:麻酱凤尾、... 曾经看到一篇文章中写道:“美食当前,总能有所思,或馋性千娇,食前观察、吃中思想、品后体煨,食为天性,...
一颗小红果如何成为让年轻人“上... 近年来 越来越多的年轻人爱上了养生 “保温杯里泡枸杞”的热梗 让这颗小红果成为了 让人“上头”的养生...
正在上市!这种瓜一旦发苦,千万... 每到夏天,菜市场就成了瓜类蔬菜的天下:脆生生的黄瓜、清甜的西葫芦、爽口的丝瓜,还有带着独特风味的苦瓜...
旅居云南 | 共赴清凉之约 乐... 这里,山川壮丽、气候宜人、文化多元,是人们眼中的“诗和远方”;这里,时光悠悠,美好生活需要停下来、住...
赶海第一名!每天成团【自驾三门... 自驾三门岛 活动亮点 ★【山海一色】有广东小塞班之称的生态海岛,水清沙幼,岛上的五彩石滩撒满了色彩斑...
三伏天不要太节俭,建议:中老年... 在炎热的三伏天,中老年人的身体面临着诸多挑战。高温容易让人食欲不振,身体能量消耗增加,营养流失加快。...
8月7日立秋,有钱没钱记得“立... 8月7日立秋,有钱没钱记得“立秋尝4样,做1事”安康入秋日子顺遂,传承老传统! 时光如梭,转眼之间,...
广西四天三晚行程,桂林4日跟团... 我一直对广西桂林充满了向往,那如诗如画的山水画卷,仿佛是大自然精心雕琢的艺术品,每一处都散发着独特的...
天热午餐我迷上了它,饭菜一锅出... 进入八月,高温热浪一波接一波席卷各地, 武汉再次发布高温黄色预警,午间气温突破了40℃, 盛夏的大幕...
8月,有钱没钱,也要多吃这八菜... 8月,天气依旧炎热,在这个充满活力与热情的季节里,饮食显得尤为重要。今天就为大家带来八道美味菜肴的详...
三伏天别总熬着!8道“补阳祛暑... 三伏天,骄阳似火,暑气难耐。在这个特殊的时节,人体的阳气浮于体表,脾胃相对虚寒,很容易出现浑身乏力、...
招待亲朋好友餐桌上必备的,八道... 在中国人的生活里,招待亲朋好友,一顿热热闹闹的家常便饭是最真挚的情谊表达。餐桌上摆满精心烹制的菜肴,...
中伏,除了吃面,别忘记吃“中伏... 中伏,这一夏日里最为酷热的时段,仿佛整个世界都被放进了巨大的蒸笼。在这样的时节,除了传统的吃面习俗,...
广西旅游几天能玩好,桂林旅游亲... 我一直对广西桂林充满了向往,那如诗如画的山水风光,宛如一幅天然的水墨画卷,在脑海中勾勒了无数遍。桂林...
广西4日游最佳路线,桂林组团轻... “桂林山水甲天下”,这句流传千古的名句,像一块磁石般吸引着我。一直梦想着能亲身走进那如诗如画的桂林,...
“想把南京推荐给更多人” ▲参赛选手在中华门城堡参观。 ▲▲参赛选手在南京城墙博物馆参观。 金陵晚报/ 紫金山新闻记者 董家训...
“让中国之旅更加丰富、生动、有... 随着中国免签“朋友圈”持续扩容,外籍人员来华便利措施不断增加,越来越多外国游客选择中国作为旅游目的地...
广西6天5晚报团费用多少,超长... 一直听闻“桂林山水甲天下”,那如诗如画的山水画卷,像一块巨大的磁石,深深吸引着我。广西桂林,有奇峰罗...