直接量
来源:互联网 发布:淘宝联盟 退运费 福袋 编辑:程序博客网 时间: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);}
- 直接量
- js----对象直接量
- MySQL日期直接量
- JAVA 直接量
- 字符串直接量
- Javascript 数据直接量
- Function Literals 函数直接量
- javascript开发系列(直接量)
- javascript函数直接量(function(){})()
- Java——直接量
- js对象直接量,数组直接量和函数直接量(转)
- js 多种变量定义(对象直接量,数组直接量和函数直接量)
- js 多种变量定义(对象直接量,数组直接量和函数直接量)
- Java字面量(Java直接量)和符号引用
- 二进制直接量(binary number format)
- IE javascript 数组直接量bug
- 【js学习笔记-013】--字符串直接量
- javascript学习笔记:对象直接量
- 内部类访问外部类的属性的原理
- 获得当前选择的控制器
- 求mat的连通域,并只显示最大轮廓的连通域
- Android 定义全局LOG打印日志,并显示调用者相关信息
- uva191 Intersection(线段之间相交)
- 直接量
- 监听通知,在程序退出前要移除
- 字符串排序 nyoj 1149
- BZOJ4386: [POI2015]Wycieczki
- SDWebImage的细节问题
- 讲一个数组内的对象属性保存到另一个数组
- myeclipse中Could not find the main class: org.apache.catalina.startup.Boostrap. Program will exit
- Js apply call方法
- 2016-05-09 随感,生活还是眼前的苟且