深圳中小企业网站建设,帝国cms手机网站模板,网站域名备案需要资料,随州网站推广哪家好一、数组的两种初始化方式
1.完整格式(静态初始化) 数据类型[] 数组名 new 数据类型[]{元素1,元素2…}; //范例
int[] arr new int[]{1,2,3,4}; 简化书写 一般我们会省略后面的 new 数据类型[] int[] arr {1,2,3,4};
2.动态初始化 当不知道数组里面的初始值的时候#xf…一、数组的两种初始化方式
1.完整格式(静态初始化) 数据类型[] 数组名 new 数据类型[]{元素1,元素2…}; //范例
int[] arr new int[]{1,2,3,4}; 简化书写 一般我们会省略后面的 new 数据类型[] int[] arr {1,2,3,4};
2.动态初始化 当不知道数组里面的初始值的时候我们就要采用动态初始化 //申请一个长度为10的int类型的数组
int[] arr new int[10];
二、数组的遍历方式 通过索引循环遍历 int[] arr {1,2,3,4};
for(int i 0; iarr.length(); i){System.out.println(arr[i]);
} 当然还有别的方法我们先混个眼熟 //增强for对于数组来说本质与普通for相同
for (int i : arr) {System.out.println(i);
}
//以字符串的形式展示
System.out.println(Arrays.toString(arr));
三、数组的开辟与访问 开辟在堆上开辟一块新空间将地址返回给数组名 访问数组名[索引] 四、数组的注意事项
1.数组直接打印打印的是地址值 System.out.println(arr)打印的就是arr的地址值因为地址也是一个数嘛 printf就是负责打印 2.数组在内存图中的位置 定义数组是通过new关键字new关键字定义的所有对象都是在堆上开辟空间的 所以下面的结果是什么 是true还是false int[] arr1 {1,2,3}; int[] arr2 {1,2,3}; arr1 arr2 // true or false ??? 比较的是地址值为false 3.数组一旦开辟了空间长度是不可变的 虽然java弱化了指针与地址的概念但是C的内存机制是最基础最底层的原理 4.区分数组长度为0 和 数组 null的概念 数组长度为0 是指定义了一个长度为0的数组 数组 null是指数组的地址为null也就是空指针 5.理解数组越界的概念 从内存的角度理解数组越界的概念 五、java内存分配 栈方法运行会加载进栈局部变量会在栈上开辟空间 堆使用new关键字创建的对象都在这开辟空间 方法区存储class文件 寄存器与本地方法栈我们暂时不需要了解 一个简单的java程序运行时的内存图 ①加载class文件 ②main方法为主入口main方法进制 ③调用show方法show方法进栈 ④show调用完出栈 ④为变量a在栈上开辟空间 ⑤输出a 六、总结
数组何时用动态初始化、何时用静态
数组是在哪里开辟空间的
数组名数组名比较的是什么