gpt4 book ai didi

java - 整型和浮点型字面量指向和使用?

转载 作者:行者123 更新时间:2023-11-29 03:26:48 26 4
gpt4 key购买 nike

我已经阅读了有关文字及其使用方式的部分。例如,您可以在数字末尾添加 l 或 L 以表示该 int 是 long 类型。 float (f 或 F 和 d 或 D)也是如此。在数字末尾区分这个字符有什么意义。当我们给出类型时,它是否已经知道为什么要再次指定?那么,将这个字符添加到数字末尾到底有什么意义呢?它在哪里使用?

我已经尝试在 google 和 stack overflow 上搜索这些问题,但未能得到完善的答案。

最佳答案

编译器知道如何处理表达式的最终结果,但表达式中的各个文字(或变量)都有自己的类型,表达式中的中间值也是如此。例如:

static final double HALF = 1 / 2;

实际上的值为零,因为文字 1 和 2 是 int 类型的,除法是一个整数除法,它产生的 int 值为零,并且然后 Java 将其转换为 double。相反,在表达式中

static final double HALF = 1d / 2;

编译器知道将第一个值视为double。第二个值被提升,Java 做浮点除法,结果如预期的那样是0.5

还有其他一些情况,比如自动装箱,编译器可能会根据它们的类型不同地处理等价的值;当传递给采用 Object 的方法时,0 是一个 Integer,而 0L 是一个 。这种情况经常发生在持久化/DAO 代码中。此外,在编译时,编译器会评估编译时常量表达式,并将它们的值直接放入代码中。 floatdouble 表达式的值可能不同,因为类型的精度不同,因此您需要指定是否要将浮点表达式视为仅float 而不是 double(默认值)。

关于java - 整型和浮点型字面量指向和使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20626292/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com