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.

解决方案 »

  1.   

    C.
    Long是对象类型,long是原始类型
      

  2.   

    没有short的类型的话,调用int型那个吗????
      

  3.   

    呵呵,很简单阿,Java里面虽然规定了short这个类型,但存储整数的最小单位是4个字节的int。所以short和int都会被当成int用4个字节来存,long和double是用8个字节来存的!
      

  4.   

    java 虽然定义了short 类型 
    但是在实际运算的时候 还是转换成int 类
      所以用short类型 并不会省内存
      

  5.   

    答案是A:
    这是用了方法的重载(OverLoad)
    其实那几个go方法,在编译的时候就会被VM改成:
    public static void go_Long()
    public static void go_Short()
    public static void go_int()
    这样来读,所以虽然参数变量都是n,但它会自己找对应的方法。