为什么Java将我的长变量称为int?

为什么Java将我的长变量称为int?,java,types,for-loop,Java,Types,For Loop,我正在运行这个,我将I从int改为float,以测试我的机器的潜力:-): 它说的是“整数”,意思是一个长整数?但是9100080000不是很适合吗?2^63是9223372036854775808。任何提示,谢谢 不是变量是int,而是要与之进行比较的文本。你只需要: i < 9100080000L i

我正在运行这个,我将
I
从int改为float,以测试我的机器的潜力:-):

它说的是“整数”,意思是一个长整数?但是9100080000不是很适合吗?2^63是9223372036854775808。任何提示,谢谢

不是变量是
int
,而是要与之进行比较的文本。你只需要:

i < 9100080000L
i<9100080000L
编译器不会在确定文本类型的过程中使用“您对文本所做的事情”,也不会根据值更改文本的类型(与C不同,
9100080000
会隐式键入为
long
,因为它对于
int
来说太大)

从:

如果整型文字以ASCII字母L或L(ell)作为后缀,则其类型为long;否则为int型(§4.2.1)

int类型的最大十进制文本为2147483648(231)

从0到2147483647的所有十进制文字都可能出现在int文字可能出现的任何位置

如果int类型的十进制文字大于2147483648(231),或者十进制文字2147483648出现在一元减号运算符的操作数以外的任何位置(§15.15.4),则为编译时错误


请注意,虽然
L
L
都可以工作,但为了清晰起见,我始终建议使用
L
,否则它看起来很像
1
,具体取决于您的字体。

9100080000
是一个常规整数常量,超出了范围。要使其成为一个长整数常量,使其在范围内,您可以附加
L
L

    for(long i=0;  i< 9100080000L; i++){
for(长i=0;i<9100080000L;i++){
在数字中添加“l”。java中的默认数字为整数。 对于(长i=0;i<9100800000l;i++){ Object obj=新对象();
}

您需要将9100080000设置为长

例如:

for (long i = 0; i < 9100080000L; i++)
{
  // do something - note the 9100080000L
}
for(长i=0;i<9100080000L;i++)
{
//做点什么-注意9100080000L
}

int是32位的数据类型,而long是64位的数据类型。@Aquillo-Ah-Ok会尝试的,谢谢!耶!现在它可以工作了!虽然
l
可以工作,但最好使用
l
,因为它更容易与
1
区分开来。
    for(long i=0;  i< 9100080000L; i++){
for (long i = 0; i < 9100080000L; i++)
{
  // do something - note the 9100080000L
}