1l代表长整型,1f代表浮点型,1d代表双精度浮点型,那么字节型呢?

6

1l代表长整型,1f代表单精度浮点型,1d代表双精度浮点型,那byte怎么表示?

long l = 1l;
float f = 1f;
double d = 1d;
// byte b = 1?;

byte的中文对应是什么?它存在吗?


这个网站http://www.herongyang.com/Java/Byte-Data-Type-Implicit-Casting.html对你有帮助吗? - lucian.pantelimon
4个回答

7

很抱歉,没有后缀可以将数值文字附加为byte

请参阅Java语言规范中的3.10 文字


4

您需要像这样将其强制转换为byte:

byte b = 1;

b = (byte) 5;

由于默认情况下这些数字常量在Java中被视为int类型。


1
除非在这种情况下不需要,因为字面量是编译时常量。byte b = 1; 是完全合法的。 - Jesper
2
是的,byte b=1 可以正常工作,但是对于除初始化之外的任何其他操作都需要再次进行强制类型转换,即使是看似无害的 b+=1。我理解必须这样,但每次都要强制转换有点烦人。 - GameDroids

1

没有后缀可以附加到数字文字


1

字节没有这样的后缀,请参见Java语言规范第3.10.1节

DecimalIntegerLiteral:
    DecimalNumeral IntegerTypeSuffix(opt)

IntegerTypeSuffix: one of
    l L

注意,(opt) 表示它是可选的。因此,要进行赋值,您需要明确使用 (byte) 1 进行转换。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接