//静态数组
int [] a= {1,2,3} ;
int [] a = new int [] {1,2,3};
//动态数组
int [] a = new int [4];
int[][] array4 = new int[2][3];
1.数组的方法特性
由于数组在内存中是连续存储, 所以数组的增删改查中, 改查比较快 (链表增删快)
2.引用型数组的存储方式
引用型数据类型,需要两部分空间: 栈内存与堆内存的各存一块, 栈内存保存地址,堆内存保存对象数据.
3.数组下标为什么从0开始
因为数组的下标表示的是数组的偏移量, 第一个元素距离数组地址的偏移量为0 , 所以下标为0
4.各种声明方法的存储方式
//栈内存有地址,堆内存无对象,内存中只剩下一个储存变量的空间
int [] arr = null ;
arr[0]; //空指针异常
//栈内存有地址,堆内存中有对象,
int [] arr1 = {};
arr1[0]; //越界
//栈内存有地址,堆内存中有对象
int [] arr2 = new int [4];
int [] arr3 = {1,2,3};
0.数组的声明方式//静态数组int [] a= {1,2,3} ;int [] a = new int [] {1,2,3};//动态数组int [] a = new int [4];int[][] array4 = new int[2][3];1.数组的方法特性由于数组在内存中是连续存储, 所以数组的增删改查中, 改查比较快 (链表增删快)2.引用型数组的存储方式引用型数据类型,需要两部分空间: 栈内存与堆内存的各存一块, 栈内存保存地址,堆内存保存对象数据.3.数组下标为