【JAVASE】----数组

1、数组的定义

格式一:

        数组中保存的数据类 [] 数组的名 = new 数组中保存的数据类型[ 开辟的连续空间个数 ];

把上述定义的格式可以翻译成下述格式:

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

//定义变量:

        数据类型  变量名 = 值;

        int a = 123;

//定义数组:

        int[] arr = new int[4];  在内存中一次开辟4个连续的空间,每个空间都是int类型,并且这些空间中保存的数据也必须是int类型。        

 

格式二:

        格式:在定义数组的时候,如果已经知道数组中的具体数据,这时可以在定义数组的时候直接书写具体的数据。

数据类型[] 数组名 = {值,值,值.......};

举例:int[] arr={11,22,33,44,-1,0};

 2、Java的内存分配

当我们在dos窗口输入了java class文件名 回车之后,启动JVM。

JVM把内存划分成5片区域:

栈内存:栈内存主要是用来运行函数的,在函数中定义的所有变量,都会在这个内存开辟空间。

在栈内存中定义的变量,不初始化,是不能直接使用的。

注意:所有的函数都必须在栈内存中运行。

        而jvm只会运行处于栈内存顶部的函数。

        函数被加载到栈内存的动作,称为函数的压栈(入栈)。

        函数执行完之后就会从栈中消失(函数的弹栈,或者叫做出栈)

堆内存:在程序中使用new 关键字创建出来的所有东西,都会保存在堆内存中。

堆内存中开辟的空间,不赋值,都会有默认的初始化数据。

整数:默认是0

小数 默认0.0.

boolean 默认是false

char 默认是 ‘\u0000’   在内存中表示空字符

方法区:JVM在加载class文件的时候,所有的class文件就要加载在这个内存中。(先了解,后面会详细讲解)

本地方法区:主要是保存native关键字标注的方法

寄存器:是给CPU使用的。

3、数组的内存分配

数组的简单操作:

        我们需要通过数组的总名称 引用变量空间,然后通过这个引用空间中的地址,再去找到堆内存中的连续的空间,然后才能准确的去操作数组。

获得数组中每个空间中的值:

        数组名[下标];

给数组的每个空间赋值:

        数组名[ 下标 ] = ;

我们定义的数组名空间:

        它是一个特殊的内存空间,它中只能保存某个数字在堆中的内存地址。而不能像前面学习普通变量一样来保存普通的常量。

        数组名空间保存某个数组的地址,而数组的每个真实空间保存具体的普通常量数据。

4、数组的常见问题 

        1)、数组角标越界异常

ArrayIndexOutOfBoundsException:

        当我们在操作数组的时候,指定的数组的下标,超越的数组空间的真实下标之后,就会发生这个问题。 

        在操作数组的时候,一定要保证下标在0~长度-1之间。

         2)、空指针异常

        说明:在JAVA中null常量,不能赋值给基本类型变量空间,可以赋值给引用类型变量空间。

NullPointerException:空指针异常。

        在当前的程序中使用一个引用变量,但是这个引用变量并没有指向一个真实的内存空间,而导致这个问题。

        当程序中发生上述这个异常的时候,这时应该去看当前这行代码中哪里使用的引用变量,肯定是这个引用变量不指向具体的某个堆中的内存地址,导致null的发生。

 图解说明:

 

注意:在Java中当被new出来的堆中的内存,没有任何一个引用指向它的时候,这时它就是一个垃圾,JVM就使用垃圾回收器把当前这片内存清理。 

5、遍历数组

需求:将数组中每一个数据打印到屏幕上。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

攻城狮·建哥

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值