[if !supportLists]一.[endif]数组
1.引用数据类型:数组 类 接口
2.基本数据类型:8中
3.数组:一组数一组数的集合 数组中的每个数叫元素数组是Java数据类型的一种 一个数组也是一个Java对象 可理解成容器 和变量区别是数组可以管理多个相同类型的数据 数组中存放的类型可以是任意类型(基本类型和对象)但是一个数组只能存放一种数据类型,而且长度是一定的
每个数组元素可以通过下标来访问,可以通过数组名来统一管理这组数据,数组中的每个数据称为数组的每个元素
Int[] arr=new int[10]; arr是数组名 向数组中存放值arr[index]=value;从数组中取值arr[index] 也就是通过数组名+index来访问数组中的元素
4.数组的特点:只能存放同一种类型的数据长度是固定的 可以存放任意类型的数据(基本数据类型和引用类型)每个数组类型都有默认值元素个数不能超过长度
数组内存图
栈内存stack 存储数组名局部变量没有默认值 方法执行完立即释放内存 先进后出
堆内存 存放数组对象数组元素 每个元素都有默认值 方法执行完不会立即释放内存而由垃圾回收站回收 什么时候回收不用管
5.总结:数组是相同类型数据的有序集合这个顺序指的是索引顺序数组会在内存中开放一段有序的内存空间索引是从零开始的每个数组元素都有默认值0 (Boolean false string null)数组有一个属性length表示数组的长度
6.数组的语法:Int[] arr ;在栈声明int类型的数组变量 值不确定 Int[] arr=new int[10];在堆内存分配10个连续空间 4个字节默认值0
7.数组初始化
动态初始化 数组类型[] 数组名-mew 数组类型[length] 确定了数组长度和默认值
静态初始化 数组类型[] 数组名={元素一,元素二,。。。。。。。}
数组类型[] 数组名=new 数据类型[]{元素一,元素二,。。。。。}
8.增强for循环 for-each jdk1.5后增强
优点写起来更简单
缺点不能进行和索引相关的操作,其实并没有增强
作用:遍历数组和集合
语法:for(数据类型elem:arr){}
9.数组是引用类型,赋值方式和基本数据类型不一样