当float自动被视为double时,int应被认为是长的?但是int被认为是int。任何人都可以解释这种行为。
public class Test
{
void met (int x){
System.out.println("int called");
}
void met (long x){
System.out.println("long called");
}
public static void main(String[] args){
Test t= new Test();
t.met(10);
}
}
Output : int is called.
******************************************************************************************
public class Test
{
void met (float x){
System.out.println("float called");
}
void met (double x){
System.out.println("double called");
}
public static void main(String[] args){
Test t= new Test();
t.met(10.0);
}
}
output : double called.
答案 0 :(得分:1)
http://docs.oracle.com/javase/specs/jls/se7/html/jls-3.html#jls-3.10.2
浮点文字的类型为float,如果后缀为 ASCII字母F或f;否则它的类型是双倍的,它可以 可选地以ASCII字母D或d(§4.2.3)为后缀。
和
如果整数文字以ASCII为后缀,则其长度为long 字母L或l(ell);否则它的类型为int(§4.2.1)。
要更改类型,您可以分别使用10.0F
和10L
来调用方法
要进一步添加内容,默认类型是最常用的类型(?)
答案 1 :(得分:0)
在Java中,数值的默认类型是int。如果您希望将其视为长,则应以l或L为后缀:
long l = 10l;
对于浮动值,默认类型为double。如果你想要一个浮点数,它应该以f或F为后缀:
float f = 10.0f;
http://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html