1:
public class ThrowsDemo {
static void throwMethod(){
System.out.println("Inside throwMethod"); 
throw new IllegalAccessException("demo");
}
public static void main(String [] args){
try{
throwMethod();
}
catch(IllegalAccessException e){
System.out.println(Caught"+e);
}
}
}
answer: Compile Error      Why?????????2:
public static void main(String [] args){
    char digit='a';
    for(int i=0;i<10;i++){
     switch(digit){
     case 'x':{
     int j=0;
     System.out.println(j);
     }
     default:{
     int j=0;
     System.out.println(j); 
     }
     }
     }
     
     int i = j;
     System.out.println(i);
} 输出什么???
3:
public class MyClass{
private static int x = getValue();
private static int y = 5;
private static int getValue(){
  return y;
}

public static void main(String [] args){
     System.out.println(x);
}
}answer: prints 0      为什么x输出0?????????

解决方案 »

  1.   

    第1个:throws才抛出的是实例!且用法不是那样用的!
    第2个:作用域的问题!
    第3个:初始化x时还没有y呢,把x=get..()放后面试试!
      

  2.   

    第1个:public class test
    {
    static void throwMethod() throws IllegalAccessException
    {
    System.out.println("Inside throwMethod"); 
    throw new IllegalAccessException("demo");
    }
    public static void main(String [] args)
    {
    try
    {
    throwMethod();
    }
    catch(IllegalAccessException e)
    {
    System.out.println("Caught"+e);
    }
    }
    }
    第2个:作用域的问题,j会提示未定义;
      

  3.   

    第一个题是由于throws用法不对,
    第二个题是由于java是按行一行一行的编译的所以x就没有初始化呀故会输出0;
    完全统一楼上的观点
      

  4.   

    烦请楼上的解释下
    private static int x = getValue();
    private static int y = 5;
    private static int getValue(){
      return y;
    }

    static {
    System.out.println("first: "+y);
    } public static void main(String [] args){
         System.out.println(x);
    }
      

  5.   

    感谢大家。to:  paradise_java() :我没有积分了,所以才0分帖。  下次有分了再给大家加上。