黑马程序员技术交流社区
标题:
蒙圈的数组
[打印本页]
作者:
wubo46
时间:
2016-5-15 21:21
标题:
蒙圈的数组
数组(array)定义:数组是储存同一类型多个元素的集合,也可以看作一个容器
数组可以储存基本数据类型,也可以储存引用数据类型
格式:数组类型 [] 数组名 = new + 数据类型[数组长度];
int [] arr = int [5];
左边: int代表数组类型;
[] 几个[]代表几维数据;
arr 代表数组名,合法的标识符
右边: new 代表创建新的实体或对象
int 代表数据类型
[5] 代表数组长度
数组的初始化定义:为数组开辟连续的空间,并未每一个数组赋值
分类:1.动态初始化,指定长度,系统给出初始化值 int [] arr = new [5];
格式:数组类型 [] 数组名 = new + 数据类型[数组长度];
2.静态初始化,给出初始化,系统指定长度 int [] arr = {1,2,3};
格式:数组类型 [] 数组名 = new + 数据类型[] {元素1,元素2,......};声明和赋值不需要在同一行
简化格式: 数组类型 [] 数组名 = new {数组长度};简写形式,声明和赋值必须在同一行
注意事项:不允许动静结合
常见问题:1.数组索引越界异常,Array Indexout of Bounds Exception
当你访问了不存在的索引,就会出现索引异常
原因:你访问了不存在的索引
2.空指针异常,NullPointer Exception
arr = null 当数组赋值null 再去访问元素,就会出现空指针异常
原因:数组已经不再指向内存堆,而你还用数组去访问元素
默认初始化值:整数类型是0
浮点型是0.0
布尔类型是false
字符类型是char是'\u0000',因为char在内存中占2个字节,
\u0000,每一个0代表的是16进制的0,四个0就是代表16个二进制位
java中内存分配:栈--储存局部变量
局部变量:定义在方法声明上和方法中的变量
堆--存储new出来的数组或对象
方法区--相当于代码区--面向对象说
本地方法区--和系统有关
寄存区--给CPU使用
数组遍历:输出数组的每一个元素
数组属性:arr.length表示数组的长度
最大索引:arr.length - 1
举例:for (i = 0;i < arr.length ;i++ ) {
System.out.println(arr [i]);
}
public static void print(int[] arr) {
for (int i = 0;i < arr.length ;i++ ) {
System.out.print(arr [i] + " ");
}
}
取最大值:public static void print(int[] arr,int vallu) {
int arr[0] = vallu;
for (int i = 0;i < arr.length ;i++ ) {
if (arr[i] > vallu) {
vallu = arr [i];
}
}
System.out.println(vallu);
}
动态初始化
int [] arr = new int [5]; 相当于在内存中开辟连续的5个地方,存储int类型的值
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2