您的位置:首页 > 编程语言 > Java开发

JAVA 直接量

2016-06-08 15:47 239 查看
本页面更新日期: 2016年06月08日

前言

直接量 是指 在程序中通过源代码直接给出的值.

例如在 int a = 5; 这行代码中, 为变量 a 所分配的初始值 5 就是一个直接量.

直接量的类型

并不是所有的数据类型都可以指定直接量.

能指定直接量的通常只有三种类型

基本类型

int 类型直接量: 整型数值, 可以 二进制, 十进制, 八进制 和 十六进制来表示. 例如十进制的: 5

long 类型直接量: 在整型数值后面添加 L , 例如 3L

float 类型直接量: 在一个浮点数后面添加 F. 例如 5.34F

double 类型直接量: 一个浮点数, 例如 5.34

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

char 类型直接量: 三种形式, 单引号括起来的字符, 转义字符, 和 Unicode值. 例如 ‘a’ ‘\n’ ‘\u0061’

字符串类型

一个用双引号括起来的字符就是String类型的直接量, 例如 “哈哈哈”

null 类型

null类型是一种特殊类型, 它只有一个值: null. 而且它可以赋值给任何引用类型的变量.用以表示这个引用类型变量中保存的地址为空, 也就是没有指向任何有效对象.

关于引用类型, 以后的以后 会讲到.

直接量的赋值

以下代码都是OK的

int a = 5;
char c = 'a';
boolean b = true;
float f = 5.12F;
double d = 4.12;
String myself = "我是一个欢乐的小逗比";


关于字符串直接量需要注意, 当程序第一次使用字符串直接量时, JAVA会使用 常量池来缓存该字符串直接量, 如果程序后面的部分需要用到该字符串直接量时, JAVA会直接使用常量池中的字符串直接量.

常量池 这个名词看起来高大上, 其实就是将一个字符串保存在了内存当中, 谁想用直接拿去用, JAVA就不用重新生成这个字符串直接量了. 看到没, 其实就是 JAVA在偷懒!

常量池指的是在编译期被确定, 并且保存在已编译的 .class 文件 中的一些数据. 它包括关于类, 方法, 接口中的常量, 也包括字符串直接量.

让我们写段代码试试看.

public class VariablesDirectly
{
public static void main(String[] args)
{
String s0 = "hello";
String s1 = "hello";
String s2 = "he" + "llo";

//让我们做个比较 看看他们相同么?
System.out.println( s0 == s1 );
//下面这个有意思
System.out.println( s0 == s2 );
}
}


运行的结果是两个 ture.

是不是很有意思呢? s0 是原装的 s2 是拼接的 这都能相同?

因为 JAVA会确保每个字符串常量只有一个, 不会产生多个副本. 这么做是为了节省内存空间, 提升程序运行效率.

he 和 llo 拼接之后就是 hello , 所以 s0 == s2 ,返回 true

结尾

如果你想学习更多JAVA知识, 可以 点我进入目录页
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息