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


相关文章
|
28天前
|
存储 Java
Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。
【10月更文挑战第19天】本文详细介绍了Java中的HashMap和TreeMap,通过具体示例展示了它们在处理复杂数据结构问题时的应用。HashMap以其高效的插入、查找和删除操作著称,而TreeMap则擅长于保持元素的自然排序或自定义排序,两者各具优势,适用于不同的开发场景。
42 1
|
1月前
|
存储 Java
告别混乱!用Java Map优雅管理你的数据结构
【10月更文挑战第17天】在软件开发中,随着项目复杂度增加,数据结构的组织和管理至关重要。Java中的Map接口提供了一种优雅的解决方案,帮助我们高效、清晰地管理数据。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,有效提升了代码质量和维护性。
82 2
|
1月前
|
存储 Java 开发者
Java Map实战:用HashMap和TreeMap轻松解决复杂数据结构问题!
【10月更文挑战第17天】本文深入探讨了Java中HashMap和TreeMap两种Map类型的特性和应用场景。HashMap基于哈希表实现,支持高效的数据操作且允许键值为null;TreeMap基于红黑树实现,支持自然排序或自定义排序,确保元素有序。文章通过具体示例展示了两者的实战应用,帮助开发者根据实际需求选择合适的数据结构,提高开发效率。
61 2
|
14天前
|
缓存 算法 Java
本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制
在现代软件开发中,性能优化至关重要。本文聚焦于Java内存管理与调优,介绍Java内存模型、内存泄漏检测与预防、高效字符串拼接、数据结构优化及垃圾回收机制。通过调整垃圾回收器参数、优化堆大小与布局、使用对象池和缓存技术,开发者可显著提升应用性能和稳定性。
35 6
|
15天前
|
存储 缓存 Java
大厂面试必看!Java基本数据类型和包装类的那些坑
本文介绍了Java中的基本数据类型和包装类,包括整数类型、浮点数类型、字符类型和布尔类型。详细讲解了每种类型的特性和应用场景,并探讨了包装类的引入原因、装箱与拆箱机制以及缓存机制。最后总结了面试中常见的相关考点,帮助读者更好地理解和应对面试中的问题。
39 4
|
13天前
|
存储 消息中间件 NoSQL
使用Java操作Redis数据类型的详解指南
通过使用Jedis库,可以在Java中方便地操作Redis的各种数据类型。本文详细介绍了字符串、哈希、列表、集合和有序集合的基本操作及其对应的Java实现。这些示例展示了如何使用Java与Redis进行交互,为开发高效的Redis客户端应用程序提供了基础。希望本文的指南能帮助您更好地理解和使用Redis,提升应用程序的性能和可靠性。
30 1
|
19天前
|
存储 Java 索引
Java中的数据结构:ArrayList和LinkedList的比较
【10月更文挑战第28天】在Java编程世界中,数据结构是构建复杂程序的基石。本文将深入探讨两种常用的数据结构:ArrayList和LinkedList,通过直观的比喻和实例分析,揭示它们各自的优势与局限,帮助你在面对不同的编程挑战时做出明智的选择。
|
27天前
|
存储 算法 Java
Java 中常用的数据结构
【10月更文挑战第20天】这些数据结构在 Java 编程中都有着广泛的应用,掌握它们的特点和用法对于提高编程能力和解决实际问题非常重要。
29 6
|
28天前
|
存储 Java 关系型数据库
[Java]“不同族”基本数据类型间只能“强转”吗?
本文探讨了不同位二进制表示范围的计算方法,重点分析了Java中int和char类型之间的转换规则,以及float与int类型之间的转换特性。通过具体示例说明了显式和隐式转换的条件和限制。
35 0
[Java]“不同族”基本数据类型间只能“强转”吗?
|
28天前
|
存储 Java 开发者
Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效
【10月更文挑战第19天】在软件开发中,随着项目复杂度的增加,数据结构的组织和管理变得至关重要。Java中的Map接口提供了一种优雅的方式来管理数据结构,使代码更加清晰、高效。本文通过在线购物平台的案例,展示了Map在商品管理、用户管理和订单管理中的具体应用,帮助开发者告别混乱,提升代码质量。
27 1

热门文章

最新文章