继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

java5 数组

当年话下
关注TA
已关注
手记 124
粉丝 14
获赞 50

1、数组:存储同一种数据类型的多个元素的容器

2、格式:

A: 数据类型 [ ] a;

B: 数据类型 a [ ];

例子:

A:int [] a;

B:  int b []; 

注意:

效果是一样的,都是定义一个int类型的数组,就是念法上的不一样。

3、如何对数组进行初始化?

A:初始化:就是为数组开辟内存空间,并为每个数组元素赋值

B:有2种初始化方式:

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

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

动态初始化格式:

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

例子:

int [] a = new int [4];   

如何获取数组中的元素:

通过:

数组名(索引)

索引:其实就是每个元素的编号,从0开始,最大的索引是数组的长度-1。

PS: java为了提高程序的效率,就对数据进行了不同空间的分配。

具体的划分如下:5个内存空间:

1、栈:存放 局部变量   (int [] a 也在栈里面)  局部变量必须给初始值

2、堆:存放 所有new出来的东西  (new int [3]在堆里面)   成员变量在栈里面,它可以不给初始值,因为系统会给它默认值

3、方法区:(面向对象部分再说)

4、本地方法区:和系统相关

5、寄存器:CPU使用

注意:

a:局部变量:在方法定义中或方法声明上的变量都叫做局部变量

b:栈内存和堆内存的区别:

栈:数据使用完毕后,就消失

堆:数据使用完毕后,并不立即处理,而是在垃圾回收器空闲的时候回收

每一个new出来的东西都有地址

每一个变量都有默认值

byte , shotr , int , long     0

float , double  0.0

char '\u0000' 就是空字符

boolean    false

引用类型  null

数组的静态初始化:

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

简化格式:

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

举例:

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

简化后:

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

注意事项:

不要同时动态和静态进行。

如下格式:

int[] arr = new int[3]{1,2,3};    //错误

数组操作的两个常见小问题:

ArrayIndexOutOfBoundsException:数组索引越界异常

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

NullPointerException:空指针异常

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

注意:把一个数组赋值给另外一个数组的话,会同时把数组的元素以及地址赋予过去

例子:

[代码]java代码:

?

01

02

03

04

05

06

07

08

09

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

/*

定义一个数组,输出该数组的名称和数组元素值。

给数组元素赋值,再次输出该数组的名称和数组元素值。

*/

public class ArrayDemo2 {

 

    public static void main(String[] args) {

        //   TODO Auto-generated method stub

        int[]   a1 = new int [3];

        a1[0]   = 88;

        a1[1]   = 33;

        a1[2]   = 66;

         

        System.out.println(a1);   //这大段输出语句并不能放在a3数组下面,到时候输出的数据跟a3一样

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

        System.out.println(a1[1]);

        System.out.println(a1[2]);   

         

        int[]   a2 = new int [3];    

        a2[0]   = 22;

        a2[1]   = 44;

        a2[2]   = 55;

         

        int[]   a3 = a1; //这里a1给a3的不止是元素数值,还有它的地址

        a3[0]   = 100;   

        a3[2]   = 200;

         

        System.out.println(a2);

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

        System.out.println(a2[1]);

        System.out.println(a2[2]);

         

        System.out.println(a3);

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

        System.out.println(a3[1]);

        System.out.println(a3[2]);

    }

}

5bb702060001296d12130556.jpg


PS:图片来源于教程

5bb7020700010e1b12130556.jpg


5bb7020900017f4312130556.jpg


5bb7020a0001225912130556.jpg


5bb7020c000166b512130556.jpg

原文链接:http://www.apkbus.com/blog-833059-61663.html

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP