原始数据类型- oracle文档说 long
在Java中的范围是-9,223,372,036,854,775,808
到9,223,372,036,854,775,807
。但是当我在eclipse
long i = 12345678910;
显示"The literal 12345678910 of type int is out of range
"错误。
有两个问题
1)如何用值12345678910
初始化 long
?
2)是否所有的数字字面值默认类型都是 int
?
- 你应该添加
L
:long i = 12345678910L;
. - 是的。
BTW:它不一定是大写的L,但小写字母经常与1
混淆:)。
-
您需要在数字的末尾添加
L
字符,以使Java将其识别为长。long i = 12345678910L;
-
是的。
参见基本数据类型,其中规定"整数字面值如果以字母L或L结尾,则为long类型;否则为int类型。"
您需要在末尾添加大写的L
,如下所示
long i = 12345678910L;
对于3.0f
它应该能回答你的两个问题
初始化long需要在末尾添加"L"。
它可以是大写或小写。
所有数值默认为int
。即使对任意整数byte
进行任何操作,byte
也会首先提升为int
,然后再执行任何操作。
试试这个
byte a = 1; // declare a byte
a = a*2; // you will get error here
你得到错误,因为2
是默认的int
。
因此,您正在尝试将byte
与int
相乘。因此,结果被类型转换为int
,不能分配回byte
。