JAVA基础-----数组
数组
- 数组:是一个固定长度的,包含了相同类型 数据的容器
- 数组本是一个引用数据类型,数组内存存储的类型可以是基本类型 也可以是引用类型
数组的定义(声明)
- int[] a; 声明了一个数组变量。
- []表示该变量是一个数组
- int 表示数组里的每一个元素都是一个整数
- a 是变量名
-
- 但是,仅仅是这一句声明,不会创建数组
有时候也会写成int a[]; 没有任何区别,就是你看哪种顺眼的问题
public class HelloWorld {
public static void main(String[] args) {
// 声明一个数组
int[] a;
}
}
数组的赋值(初始化)
- 静态初始化(有长度 有元素)
public class HelloWorld {
public static void main(String[] args) {
int[] arry = new int[] {10,20,30,40,50};
int[] arry ={10,20,30,40,50}
}
- 动态初始化(有长度 没元素–>默认值)
int[]array -new int[5]
数组元素的访问
- 通过的元素在数组中的位置来访问
- 位置—->index索引
- 索引是有取值范围的
- 如果数组的索引超出了数组范围
- 会出现一个运行时异常 ArryIndexOutOfBoundsException
public class HelloWorld {
public static void main(String[] args) {
int[] arry = new int[] {10,20,30,40,50};
int[] arry ={10,20,30,40,50}
//通过元素在数组中的位置index(索引 下标)
//array[index]
//从数组内取得某一个位置的元素
int value = array[0];
System.out.println(value);
//向数组内的某一个位置存入元素
array[4]=400;
//索引是有范围的
int value=array[5];
System.out.println(value);
//异常----运行时异常
//ArryIndexOutOfBoundsException 数组索引越界
}
}
数组元素的遍历
-
通过循环的方式来访问数组的每一个元素
-
for(;;){
}
//将数组中的每一个元素都拿出来看一看
for(int index=0; i<5; index++){
int value =array[index];
System.out.println(value);
}
-
JDK1.5之后 新的特性 增强for循环
-
for(自己定义的变量(接受数据内的每一个元素):遍历的数组array){
}
for(int value:array){
System.out.println(value);
}
- 两个for的区别
- 正常的for有三要素 Index索引 找到某一个元素的位置,可以通过index直接访问数组的某一个位置 存值和取值都可以
- 增强的for 只能取值不能存值
基本数据类型和引用数据类型在内存结构上的区别
-
所有的变量空间都存储在栈内存
-
变量空间可以存储基本数据类型 也可以存储引用数据类型
-
如果变量空间存储的是基本数据类型 存储的是值 一个变量的值改变 另一个不会跟着改变
-
如果变量空间存储的是引用数据类型 存储的是引用(地址) 一个变量地址对应的值改变 另一个跟着改变