数组·上
数组概念
数组是相同类型数据的有序集合
数组描述的事相同类型的若干个数据,按照一定的先后次序排列组合而成
其中每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问他们
下标从0开始
数组声明创建
dataType [] arrayRefVar; //首选方法
dataType arrayRefVar []; 效果相同
使用new操作符来创建数组
dataType [] arragRefVar = new dataType[arraySize];
获取数组长度: arrays.length
定义- 使用
先定义后使用
-
定义
-
创建一个数组
-
给数组元素赋值
若没有赋值, 则有默认值,int默认值为0, stirng默认值位Null
数组的长度是固定的,确定后不可改变
package array;
public class ArrayDemo01 {
// 变量的类型 变量名 = 变量的值 恒定公式
public static void main(String[] args) {
int[] nums; //1。 定义
//int nums2[]; // 第二种方法定义 C/C++的惯用写法
nums = new int[10]; //2。 创建一个数组, 这里面可以存放10个int类型的数字, 预留空间存放数据
//3。 给数组元素赋值
nums[0] = 1;
nums[1] = 2;
nums[2] = 3;
nums[3] = 4;
nums[4] = 5;
nums[5] = 6;
nums[6] = 7;
nums[7] = 8;
nums[8] = 9;
nums[9] = 10;
//若没有赋值, 则有默认值,int默认值为0, stirng默认值位Null
System.out.println(nums[9]);
// 计算所有元素的和:
int sum = 0;
//获取数组长度 arrays.length
for (int i = 0; i < nums.length; i++) {
sum =sum + nums[i];
}
System.out.println("总和为: " + sum);
}
}
//10
//总和为: 55
package array;
public class Practice01 {
public static void main(String[] args) {
char[] numbers;
numbers = new char[7];
numbers[0] = 'N';
numbers[1] = 'a';
numbers[2] = 't';
numbers[3] = 's';
numbers[4] = 'u';
numbers[5] = 'm';
numbers[6] = 'e';
System.out.println(numbers[0]);
}
}
二、java内存分析
java内存
Java内存 堆 存放new的对象和数组 可以被所有的线程共享,不会存放别的对象引用 栈 存放基本变量类型(包含这个基本类型的具体数据) 引用对象的变量(会存放这个引用在堆里面的具体地址) 方法区 可以被所有的线程共享 包含了所有的class和static变量
1、 声明数组
int[] array = null;
2、 创建数组
array = new int[10];
3、 给数组元素赋值 - 堆中安置数字
声明数组时,数组并不存在,只有在创建数组时,数组开始存在。
第一步声明数组时,堆是空的。
如果要取不存在的元素, 就会出现error。
error: Java.lang.ArrayIndexOutOfBoundsException: 1 - 数组越界了,数组不存在
三种初始化
静态初始化
Int[] a = {1,2,3};
Man[] mans = {new Max(1,1), new Max(2,2)};
动态初始化
Int[] a = new int[2];
a [0] = 1;
a [1] = 2;
package array;
public class ArrayDemo02 {
public static void main(String[] args) {
//静态初始化: 创建+赋值 一起做了
int[] a = {1,2,3,4,5,6,7,8}; //直接初始化
System.out.println(a[3]); // 4
//动态初始化 - 动态初始化包含默认初始化
int[]b = new int[10]; //后期手动赋值
b[0] = 10;
System.out.println(b[0]);
System.out.println(b[1]); // 0 - 没有赋值,所以是默认值0
//创建完数组后,分配空间后,其实元素都有默认值=0,
}
}
默认初始化
四、小结、数组的四个基本特点
数组一旦被创建,它的大小就是不可以改变的,如果越界,则报: ArrayIndexOutOfBounds
元素必须是相同类型的,不允许出现混合类型
数组中的元素可以是任何数据类型,包括基本类型和引用类型
数组变量属于引用类型,数组也可以看成是对象,数组中的每个元素想当于该对象的成员变量
无论是原始类型还是其他对象类型,java的对象都是保存在堆中的

浙公网安备 33010602011771号