数组的作用:
如果要定义的变量太多,挨个定义太繁琐,不利于数据处理。
数组的定义:
数组是一组变量(空间),存储相同数据类型的一组数据。
声明变量就是在内存划出一块合适的空间;声明数组就是在内存划出一串连续的空间。
数组的基本要素:
标识符--数组名(类似变量名)
数组元素--数组值
元素下标:从0开始(索引,又叫目录)
元素类型--数组类型(int/double /boolean /String/...)
数组地址--数组本身的值
备注:
1、数组长度固定不变,避免数组越界
2、数组地址和数组元素并不相干
3、数组中所有元素必须是相同类型
数组的基本使用:
1.申明数组 int[ ] a;声明数组时不规定数组长度
2.分配空间 a=new int[ 5 ];告诉计算机分配5个连续的int空间
3.赋值 a[ 0 ]=8;
静态赋值:可以边申明边赋值
也可以动态的从键盘录入信息并赋值
注意:数组通过下标来使用数据
增强for的结构:
int[] num = {1,2,3,4,5,6};
for(int i: num){
System.out.print(num[i]);
}
----------------------------------------
int[] num = {1,2,3,4,5,6};
for(int i = 0; i < num.length; i++){
System.out.print(num[i]);
}
一种简便写法:a.fori---for(int i=0;i<a.length;i++)
上面这两种结构意义等价
4.处理数据 a[ 0 ]=a[ ]*10;
数组的输出:
System.out.println(Arrays.toString(b));
数组扩容:
数组求最值:
1.先初始化最值;
2.循环遍历、依次与最值比较,不符合条件的,替换变量的值;
3.循环结束后,得到的变量即为最值。
数组插入值:
1.前提:数组本身有序
2.插入保证不会越界
步骤:
1.从后向前遍历
2.每个值与插入的值进行比较,不符合顺序的后移
3.符合顺序的,在后方插入
4.如果从头至尾没有插入,则插入在首位
数组与内存:
栈内存:主要存放一些基本类型变量(int, short, long, byte, float, double, boolean, char),存取速度比堆内存块,存在栈内存的数据可以共享,存在栈内存的数据大小和生存周期是确定的,缺乏灵活性。
堆内存:放的对象,数组
两者区别形象的比喻:使用堆内存就象是自己动手做喜欢吃的菜肴,比较麻烦,但是比较符合自己的口味,而且自由度大。使用栈内存就象我们去饭馆里吃饭,只管点菜(发出申请)、付钱和吃(使用),吃饱了就走,不必理会切菜、洗菜等准备工作和洗碗、刷锅等扫尾工作,他的好处是快捷,但是自由度小。
缓存区(常量池):byte数据类型的值,char的asc码值,String
方法区:存储的方法的名字