public class test {
public static void go(Long n){System.out.println("long" );}
public static void go(Short n){System.out.println("short ");}
public static void go(int n){System.out.println("int ");}
public static void main(String [] args)
{
short y = 6;
long z = 7;
go(y);
go(z);
}
}
What is the result?
A. int Long
B. Short Long
C. Compilation fails
D. An exception is thrown at runtime.
Long是对象类型,long是原始类型
但是在实际运算的时候 还是转换成int 类
所以用short类型 并不会省内存
这是用了方法的重载(OverLoad)
其实那几个go方法,在编译的时候就会被VM改成:
public static void go_Long()
public static void go_Short()
public static void go_int()
这样来读,所以虽然参数变量都是n,但它会自己找对应的方法。