您的位置:首页 > 编程语言 > Java开发

菜鸟先飞之JAVA_数组

2017-07-14 15:06 211 查看

数组概述和定义格式说明

为什么要有数组(容器)

为了存储同种数据类型的多个值

数组概念

数组是存储同一种数据类型多个元素的集合。也可以看成是一个容器。

数组既可以存储基本数据类型,也可以存储引用数据类型。

数组定义格式

数据类型[] 数组名 = new 数据类型[数组的长度];

数组的初始化动态初始化

什么是数组的初始化

就是为数组开辟连续的内存空间,并为每个数组元素赋予值

如何对数组进行初始化

a:动态初始化 只指定长度,由系统给出初始化值

int[] arr = new int[5];

b:静态初始化 给出初始化值,由系统决定长度

动态初始化的格式:

数据类型[] 数组名 = new 数据类型[数组长度];

静态初始化的格式:

格式:数据类型[] 数组名 = new 数据类型[]{元素1,元素2,…};

简化格式:

数据类型[] 数组名 = {元素1,元素2,…};

初始化值

整数类型:byte,short,int,long默认初始化值都是0

浮点类型:float,double默认初始化值都是0.0

布尔类型:boolean默认初始化值false

字符类型:char默认初始化值’\u0000’

char在内存中占的两个字节,是16个二进制位

\u0000,每一个0其实代表的是16进制的0,那么四个0就是代表16个二进制位

地址表示

[I@19bb25a

[代表是数组,几个就代表几维

I代表是int类型

@是固定的

19bb25a代表的是数组的地址值

数组操作的两个常见小问题越界和空指针

ArrayIndexOutOfBoundsException:数组索引越界异常

原因:你访问了不存在的索引。

NullPointerException:空指针异常

原因:数组已经不在指向堆内存了。而你还用数组名去访问元素。

int[] arr = {1,2,3};

arr = null;

System.out.println(arr[0]);

数据传递问题

基本数据类型的值传递

不改变原值,因为调用后就会弹栈,局部变量随之消失

引用数据类型的值传递

改变原值,因为即使方法弹栈,但是堆内存数组对象还在,可以通过地址继续访问

Java中到底是传值还是传址

既是传值,也是传地址,基本数据类型传递的值,引用数据类型传递的地址

java中只有传值,因为地址值也是值
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java
相关文章推荐