Java千百问_06数据结构(004)_java数据类型的字面值是什么
来源:互联网 发布:java中的设计模式 编辑:程序博客网 时间:2024/05/16 08:56
点击进入_更多_Java千百问
1、java数据类型的字面值是什么
了解8种基本数据类型看这里:java有哪8种基本数据类型
首先看一个问题,我们知道byte是一个8位整数的基本类型,范围-128到127,我们可以这样说使用:
byte a = 127;byte a = 0;
但是,当我们定这样一个方法:
public static void a(byte a) { System.out.println("byte:" + a); }; public static void main(String[] args) throws Exception { Test.a(0); }
竟然会报编译错误,我们感觉到很奇怪,为什么会出现这样的情况?
其实,这样的问题就是java字面值导致的。
字面值,顾名思义就是表面上的值,例如整型字面值在源代码中就是诸如5,0,-200这样的。
java字面值的规则:
- 如果整型字面值后面加上L或者l,则这个字面值就是long类型,比如:1000L代表一个long类型的值。
- 如果整型字面值不加L或者l,则为默认int类型,比如:1000代表一个int类型的值。
- 如果浮点字面值后面加上F或者f,则这个字面值就是float类型,比如:0.1f代表一个float类型的值。
- 如果浮点字面值不加F或者f,或者加上D或者d,则为doublie类型,比如:0.1、0.1D代表一个double类型的值。
- 浮点字面值支持科学计数法表示,比如:1.23e-4代表一个double类型值的科学计数法表达式。
在赋值操作中,不加L/l的整型字面值字面值可以赋给byte、short、int、long,Java会自动处理好这个过程(对于long类型,如果大小没有超出int所能表示的范围:32bits,则可以不使用L/l结尾来表示;反之则必须要加)。
但在方法调用中,则完全不同, 当调用Test.a(0)时,java会将0这个字面值认为是int类型的,它能匹配的方法是a(int),而不是a(byte),当然不能通过编译。
2、什么是二进制字面值
上面我们说的都是10进制字面值,如果要表示其他进制如下:
- 16进制:0X or 0x前缀,例如:0x32
- 10进制:无前缀,例如:50
- 8进制:0前缀,例如:062
- 2进制:0B or 0b前缀,例如:0b00110010
以上例子结果均表示50(十进制),当然这些在Jdk 7之后才有。
3、字符字面值是什么
我们先看一个例子:
public static void main(String[] args) throws Exception { byte b = 'a'; Test.a(b); } public static void a(byte a) { System.out.println("byte:" + a); };
首先没有编译错误,运行后结果如下:
byte:97
说明byte a = ‘a’;是合法的,也就是说字符字面值可以自动转换成16位的整数。间接说明char类型是一种特殊的整型数据类型。
2 0
- Java千百问_06数据结构(004)_java数据类型的字面值是什么
- Java千百问_06数据结构(001)_java中数据类型是什么
- Java千百问_06数据结构(011)_java中的数组是什么
- Java千百问_06数据结构(002)_java有哪8种基本数据类型
- Java千百问_06数据结构(006)_java基本数据类型如何转换
- Java千百问_06数据结构(009)_void是什么
- Java千百问_06数据结构(010)_Class类型是什么
- Java千百问_06数据结构(020)_String是什么
- Java千百问_06数据结构(014)_java数组如何存储在内存中
- Java千百问_06数据结构(007)_String属于基本数据类型吗
- Java千百问_06数据结构(023)_基本数据类型在内存中如何存放
- Java千百问_06数据结构(015)_数组和普通对象的引用变量有什么区别
- Java千百问_06数据结构(003)_什么是基本类型包装器
- Java千百问_06数据结构(005)_数值中为什么会出现下划线
- Java千百问_06数据结构(008)_null属于哪种数据类型
- Java千百问_06数据结构(012)_如何遍历数组
- Java千百问_06数据结构(013)_数组如何传递
- Java千百问_06数据结构(016)_引用类型数组在内存中如何储存
- 【LeetCode】Power of Four 解题报告
- 网络七层协议
- phpMyAdmin配置与安装
- Sping 自己学习心得(IOC)
- Java实现服务器端动态流断点续传下载支持
- Java千百问_06数据结构(004)_java数据类型的字面值是什么
- A Tour of Golang (二)
- IMF传奇行动第85课:Spark Streaming第四课:基于HDFS的Spark Streaming案例实战和内幕源码解密
- eclipse luna4.4配置beans.xml和hibernate.cfg.xml提示类的包路径信息
- Java Socket应用
- Hackerrank:Yet Another KMP Problem
- 简单的Kafka0.8消费者程序
- poj 1163 The Triangle --dp
- 延云YDB&&YA100安装部署文档