数组概述:
数组是相同类型数据的有限集合。
数组描述的是相同数据类型的若干个数据,按照一定的先后次序排列而成。
其中,每个数据称为一个数组元素,每个数组元素可以通过一个下标来访问它们。
数组的声明和创建
array
public class ArrayDemo01{
//变量类型 变量名字=变量的值;
dataType[] arrayRefVar;//首选的方法
或
dataType arrayRef[];
psvm(){
int[] numbers;//定义
int numbers[];
int nums2[];
dataType[] arrayRefVar=new dataType[arraySize];
int nums[];
nums = new int[10];
给数组元素中赋值
nums[0]=1;
nums[1]=2;
nums[2]=3;
nums[3]=4;
System.out.println(nums[9]);
}
}
内存分析:
java内存分析
java内存 堆 存放new 的对象和数组
可以被所有的线程共享**不会存放别的对象引用。**
三种初始化状态
arraydemo02{
psvm(){
int[] a=new int[10];
//静态初始化
int[] a={1,2,3,4,5};
//动态初始化
int[] b = new int[10];
b[0]=10;
System.out.println(b[0]);
}
}
数组的四个基本的特点
-
其长度是确定的。数组一旦被创建,他的大小就是不可以改变的。
-
其数组元素可以是任何数据类型,包括基本类型和引用类型。
-
数组变量属于引用类型,数组也可以看成对象,数组中的每个元素相当于该对象的成员变量。
-
数组本身就是对象,java中对象实在堆中的,因此数组无论保持原始类型还是其他数据类型,数组对象本身是在堆中的。
数组边界:
下标的合法区间:[0,length-1],如果越界就会报错;
//ArrayIndexOutOfBoundsException
for(int i=0;i<a.length;i++){
System.out.println(a[i]);
}
数组的使用
for-each循环
ArrayDemo03
int[] arrays = new int[];
int[] arrays={1,2,3,4,5};
//打印的全部数组元素
for(int i=0;i<arrays.length;i++){
System.out,println(arrays[i]);
}
System.out.println("=========");
int sum=0;
for(int i=0;i<array.length;i++){
sum+=arrays[i];
}
System.out.println("sum="+sum);
//查找最大元素
int maxx=arrays[0];
for(int i=0;i<arrays.length;i++){
if(arrays[i]>max){
max=arrays[i];
}
}
System.out.println(max);
//进阶
for-each循环
int arrays=[1,2,3,4,5];
for(int array:arrays){
System.out.println(array);
}
arrays.for //自动生成的增强型语句。
//没有下标
//打印一个数组
public static void printArray(int[] arrays){
for(int i=0;i<arrays.length;i++){
System.out.println(arrays[i]+" ")
}
}
//反转数组
public static int[] reverse(int[] arrays){
int[] result=new int[arrays.length];
for(int i=0,j=result.length-1;j<arrays.lenth;i++,j--){
result[j] =arrays[i];
}
}