public class NewMain
{
public static void main(String[] args)
{
long num = 100;
System.out.println(xMethod(5,1000000000000L));
}
public static int xMethod(int n, long x)
{
System.out.println("int, long");
return n;
}
public static long xMethod(long n, long x)
{
System.out.println("long, long");
return n;
}
}
对我来说,这看起来很模棱两可。
整数范围内的数字可以是长整数,这在 num 的声明中得到了证明。
而且我很好奇如果我有两个带有两个不同参数的方法会发生什么。
显然,在编写参数时,数字必须在末尾有一个 L 以指示它是一个长整数,而在声明 num 时,这不是必需的。 这是为什么?
我首先想到的是,如果它在 int 的范围内,它会自动将其视为 int,当超出该范围时,它将被用作 long。 但是,对于我的第二个参数,它不会通过,除非我输入 L。它说它不在 int 的范围内。
有人可以对此给出一些明确的规则吗?
最佳答案
没有小数点的数字字面量总是被视为 int
除非它有一个另外指定的后缀(例如 L)。
如果超出了int的范围,这是一个编译错误。
when declaring num, that wasn't necessary
您可以将 int 文字分配给 long 变量,因为不会丢失信息。
关于java - 如何区分int和long?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34173562/