直接量

来源:互联网 发布:淘宝联盟 退运费 福袋 编辑:程序博客网 时间:2024/04/24 00:58

直接量是指在程序中通过源代码直接给出的值,代码如下:

public static void main(String[] args){// 在这行代码中,为变量a所分配的初始值5就是一个直接量int a = 5;}


直接量的类型

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

1),int类型的直接量:在程序中直接给出的整数数值

2),long类型的直接量:在整形数值后添加l或者L就变成了long类型的直接量

3),float类型的直接量:在一个浮点数后增加f或F就变成了float类型的直接量,这个浮点数可以是标准的小数形式,也可以是科学计数法形式

4),double类型的直接量:直接给出一个标准小数形式或者科学计数法形式的浮点数就是double类型的直接量

5),double类型的直接量:这个类型的直接量只有true和false

6),char类型的直接量:char类型的直接量有三种形式,分别是用单引号括起来的字符,转义字符和Unicode值表示的字符

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

8),null类型的直接量:这个类型的直接量只有一个值,即null

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

还未指向任何有效对象。


直接量的赋值

通常总是把一个直接量赋值给对应类型的变量,除此之外,还有两点需要注意:

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

比如把int类型的直接量赋给一个long类型的变量。

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

boolean类型的直接量只能赋给boolean类型的变量,不能赋给其他任何类型的变量。


关于字符串补充

先补充一个概念,什么是常量池?常量池(constant pool)值的是在编译期被确定,并被保存在已编译的.class文件中的一些数据,常量池包括了一些类,方法,接口中的常量

也包括字符串直接量

当程序第一次使用某个字符串直接量时,Java会使用常量池来缓存该字符串直接量,如果程序后面的部分需要用到该字符串直接量时,Java会直接使用常量池中的字符串直接量。

String类是一个典型的不可变类,因此String对象创建出来就不可能被改变,所以无须担心共享String对象会导致混乱

Java会确保每个字符串常量只有一个,不会产生多个副本。代码中使用一个字符串,他们在编译期就被确定下来了,在使用的时候,直接从该常量池中拿出来就好了。

public static void main(String[] args){String name1 = "LinkinPark";String name2 = "LinkinPark";String name3 = "Linkin" + "Park";// 下面2行代码输出都为trueSystem.out.println(name1 == name2);System.out.println(name1 == name3);}



0 0
原创粉丝点击