1.數組聲明時數據類型不匹配
錯誤寫法:
public class Test_0506{ public static void main(String[] args) { // 定義的是int類型數組,但實際是String類型 int [] array = new String[3]; } }
Eclipse會提示錯誤信息,Type mismatch: cannot convert from String[] to int[],如下圖提示將array類型改為String[]。
正確寫法:
public class Test_0506{ public static void main(String[] args) { String[] array = new String[3]; } }
2.邊聲明邊賦值必須寫在同一行
錯誤寫法:
public class Test_0506{ public static void main(String[] args) { int [] array = new int[3]; array = {10, 20, 30}; array2 = {10. 20, 30}; } }
運行代碼,報錯信息為Array constants can only be used in initializers,英文不好,通過翻譯軟件知道報錯內容是“數組常量只能在初始值設定項中使用”
如下圖
正確寫法:
public class Test_0506{ public static void main(String[] args) { int [] array = new int[3]; array[0] = 10; array[1] = 20; array[2] = 30; int [] array2 = new int [3]; array2[0] = 10; array2[1] = 20; array2[2] = 30; } }
3.數組下標越界
錯誤寫法:
public class Test_0506{ public static void main(String[] args) { int[] array = {10, 20, 30}; System.out.println(array[3]); } }
數組下標是從0開始,從上述代碼可以看出來數組長度是3,下標界限就是0~2,所以array[3]超出下標界限,運行報錯信息如下:
java.lang.ArrayIndexOutOfBoundsException表示錯誤原因是數組下標越界。
正確寫法:
public class Test_0506{ public static void main(String[] args) { int[] array = {10, 20, 30}; System.out.println(array[0]); System.out.println(array[1]); System.out.println(array[2]); } }
運行結果: