public class Demo01Array { public static void main(String[] args) { //一、数组定义格式 // 1.动态初始化(指定数组长度) int[] arrayA = new int[300]; double[] arrayB = new double[300]; // 动态初始化拆分两个步骤 String[] arrayG; arrayG = new String[5]; char[] arrayI = new char[3]; boolean[] arrayH = new boolean[2]; // 2.静态初始化(指定数组元素) int[] arrayC = new int[]{5, 15, 25}; String[] arrayD = new String[]{"hello", "world", "java"}; //静态初始化拆分两个步骤 int[] arrayF; arrayF = new int[] {40,50,60}; // 静态初始化省略格式(无发拆分两个步骤) int[] arrayE = {10,20,30}; // 使用建议: // 如果不确定数组中的具体内容,因动态初始化; // 否则,已经确定了具体的内容,用静态初始化 // 二、数组的访问 // 直接访问数组名称,得到数组对应的内存地址哈希值,十六进制 System.out.println(arrayE); //1.访问静态数组:使用索引值 System.out.println(arrayD[0]); //2.访问动态数组 // 整型类型,默认值为0 System.out.println(arrayA[0]); // 浮点型类型,默认值为0.0 System.out.println(arrayB[0]); // 字符型类型,默认值为‘\u0000’ System.out.println(arrayI[0]); // 布尔型类型,默认值为false System.out.println(arrayH[0]); // 还有一种引用型类型(字符串、数组、对象),默认值为null System.out.println(arrayG[0]); System.out.println("================="); //三、数组的赋值 //1.动态数组赋值 arrayA[0] = 3; System.out.println(arrayA[0]); arrayI[0] = 'C'; System.out.println(arrayI[0]); // 2.注意:静态初始化其实也有默认值过程,只不过系统自动马上将默认值替换为大括号中的具体值 System.out.println(arrayF[0]); arrayF[0] = 46; System.out.println(arrayF[0]); // 四、数组问题 // 1、数组索引越界异常 //System.out.println(arrayE[4]); // 错误写法,并不存在,所以发生异常 // 2.空指针异常 int[] array01; //System.out.println(array01[0]); //错误写法,没进行new初始化。 // 所有引用类型(字符串、数组、对象),都可以赋值为一个null,带代表其中什么都没有 // 数组如果只是赋值null,没有进行new初始化创建,那么将会发生空指针异常 NUllPointerException int[] array02 = null; //System.out.println(array02[0]); // 解决:补上new初始化 } }