class Array{
static void display(float i){
System.out.println("float");
}
public static void main(
String[] arg){
long l=400000000000l;
display(l);
}
}
it's output is float.
my problems is why it not showing compilation error
.
because i am sending
long type (takes 8 byte) as an argument, but in display() method parameter is of
float type(take 4 byte).
according to K&B books -:
"
when an exact match isn't found, the JVM uses the method with the smallest argument that is wider than the parameter. "
but in this case float(4 byte) is not wider than the long(8 byte).