Java千百问_06数据结构(004)_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字面值的规则:

  1. 如果整型字面值后面加上L或者l,则这个字面值就是long类型,比如:1000L代表一个long类型的值。
  2. 如果整型字面值不加L或者l,则为默认int类型,比如:1000代表一个int类型的值。
  3. 如果浮点字面值后面加上F或者f,则这个字面值就是float类型,比如:0.1f代表一个float类型的值。
  4. 如果浮点字面值不加F或者f,或者加上D或者d,则为doublie类型,比如:0.1、0.1D代表一个double类型的值。
  5. 浮点字面值支持科学计数法表示,比如: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类型是一种特殊的整型数据类型。

原文地址:http://blog.csdn.net/ooppookid/article/details/51291096


相关文章
|
1月前
|
Java
当Java数据类型遇上“爱情”,会擦出怎样的火花?
当Java数据类型遇上“爱情”,会擦出怎样的火花?
47 1
|
1月前
|
Java 程序员
Java数据类型:为什么程序员都爱它?
Java数据类型:为什么程序员都爱它?
40 1
|
1月前
|
存储 Java
Java数据类型:你究竟有多少面孔?
Java数据类型:你究竟有多少面孔?
32 1
|
1月前
|
Java
【Java集合类面试二十六】、介绍一下ArrayList的数据结构?
ArrayList是基于可动态扩展的数组实现的,支持快速随机访问,但在插入和删除操作时可能需要数组复制而性能较差。
|
1月前
|
存储 算法 Java
我与Java数据类型的那场“风花雪月”
我与Java数据类型的那场“风花雪月”
35 0
|
1月前
|
存储 自然语言处理 Java
Java数据类型:为何它如此“撩人”?
Java数据类型:为何它如此“撩人”?
35 0
|
1月前
|
存储 算法 Java
从菜鸟到大神,Java数据类型是如何改变我的人生的?
从菜鸟到大神,Java数据类型是如何改变我的人生的?
26 0
|
2天前
|
存储 Java Windows
java基础(9)数据类型中的char类型以及涉及到的转义字符
Java中的char类型可以存储一个中文字符,因为它占用两个字节。转义字符允许在代码中使用特殊字符,例如`\n`表示换行,`\t`表示制表符,`\\`表示反斜杠,`\'`表示单引号,`\"`表示双引号。可以使用`\u`后跟Unicode编码来表示特定的字符。
11 2
java基础(9)数据类型中的char类型以及涉及到的转义字符
|
2天前
|
Java
java基础(10)数据类型中的整数类型
Java中的整数类型包括byte、short、int和long。整数字面值默认为int类型,加L表示long类型。整数字面值可以是十进制、八进制(0开头)或十六进制(0x开头)。小容量类型(如int)可自动转换为大容量类型(如long),但大容量转小容量需强制转换,可能导致精度损失。
12 2
|
2天前
|
Java
java基础(8)数据类型的分类
Java数据类型分为基本数据类型(8种)和引用数据类型。基本类型包括byte, short, int, long, float, double, boolean, char。每种类型有固定占用空间大小,如int占用4字节。字符编码如ASCII和Unicode用于将文字转换为计算机可识别的二进制形式。
12 2