12
2017
08

数组+堆栈

数组:
定义:相同类型变量的集合,连续的空间;
特征:
1、数组名,即标识符,连续空间的首地址;
2、元素下标标明了元素在数组中的位置,从0开始;
3、每个数组都可以通过下标来访问;
4、数组长度固定不变,避免数组越界;
使用数组四步走:
1、声明数组    int score[];int[] score;【声明时不能指定数组长度】
2、分配空间      数据类型[ ] 数据名 = new 数据类型[大小]  int[ ] score = new int[30];【注意关键字new和数组长度】
3、赋       值      int[ ] score = {89,79,76}; int[ ] score = new int[ ]{89,79,76 }【数组名+下标】        
4、处理数据   【使用,数组名+下标,下标从0开始】
Ps.数组名.length代表数组长度
会出现的错误:
java.lang.ArrayIndexOutOfBoundsException     数组越界异常
java.lang.NullPointerException      空指针异常【int[] ns = null;
常用做法:
1、声明+ 分配空间:不确定数组个数时
     int[] a = new int[10];
2、声明+分配空间+赋值:确定数组初始化数据时,数组长度由初始值来决定
     int[] a = {1,2,3,4,5};
数组遍历:
1、for循环:遍历的次数由数组长度来决定,数组长度:arr.length属性,开始索引以0开始,结束索引为arr.length-1
for(int i=0;i<arr.length;i++){
     //数据通过数组名+索引(下标)来获取
     int tmp=arr[i];
}
                    注意:java.lang.ArrayIndexOutOfBoundsException     数组索引越界异常
           2、foreach循环:不涉及索引
for(int t : arr){
     //t为每次循环从数组中取到的数据,不使用赋值和使用索引的情况
     int tmp=t;
}
数组new后,初始值:
    int/short/ long/char/byte        0
    double/float                               0.0
    boolean                                       false
    String                                           hull
堆栈:

blob.png

栈:赋值时是具体的值;
堆:开辟一个栈用于存放堆所在的地址;


« 上一篇 下一篇 »

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

扫一扫,求打赏 扫一扫,求打赏