首先学习几个单词
index 索引
Bounds 边界
assigned 指定
数组:
相同数据类型的有序集合
数组也是对象
长度是不可变的,越界报Array Index out of bounds exception
数组语法:
声明
int [] a;
int a [];
创建
new int [4]
初始化:
默认初始化:数组元素相当于对象的成员变量初始化方式默认的值和成员变量一样数字0 布尔false char 0 引用null
动态初始化:指利用循环进行初始化![图片描述][1]
静态初始化:
int c [] = {23,43,56,78}
cars[] cars= {new car(),new car(),new car(),new car()};
内存分析 1
int [] a=new int[4];
a[0]=1;
a[1]=2;
a[2]=22;
a[3]=33;
int [] a 对应在栈里面声明了一个引用
new int[4]; 对应在堆里面开辟了4个空间的数组但是刚开始的时候默认初始化是0
再分别赋给不同的整形值
内存分析2
class car
{
public String name;
car(String name)
{
this.name = name;
}
}
car[] cars = new car[4];
cars[0]=new car("奔驰");
cars[1]=new car("宝马");
cars[2]=new car("比亚迪");
cars[3]=new car("奥拓");
car[] cars:在栈里面开辟一个引用,指向堆里面的数组空间
new car[4];在堆里面开辟一个4个空间的数组刚开始的时候都是null
cars[0]=new car("奔驰"):在堆里面开辟了一个对象让cars[0]里的int型引用指向该对象而且该对象的name属性指向了常量池里面的常量