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);
}
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);
}
}
沒有留言:
張貼留言