HTML/JavaScript小工具

HTML/JavaScript小工具

2013年4月29日 星期一

java Autoboxing 小迷題!!


public class Test1 {
static int i;
static Integer j;
public static void main(String[] args){

System.out.print("Howard i:"+i);
System.out.print("Howard j:"+j);
}
}
以上程式碼會產生什麼ㄌㄟ????????

想一下喔~!!!~~~原理跟答在分隔線下
1 可以編譯嗎?
2 可以執行嗎?
3 可以執行會出現什麼錯誤ㄌㄟ?









































答:
可編譯但執行時會出現
Exception in thread "main" java.lang.NullPointerException
at Test1.main(Test1.java:22)

原因如下:
當以上程式碼在編譯成class後
程式碼會轉變成如下
public class Test1
{
static int i = 0;
static Integer j = null;


    public static void main(String args[])
    {

    i = j.intValue();//這會出現NullPointerException


System.out.print("Howard i:"+i);
System.out.print("Howard j:"+j);

}
    


}




沒有留言:

張貼留言