您的位置:首页 > 职场人生

黑马程序员--数组(一)基本概念

2013-12-23 19:21 260 查看
---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

数组的定义

概念:同一种类型数据的集合。其实数组就是一个容器

数组的好处

可以自动给数组中的元素从0开始编号,方便操作这些元素

格式1

元素类型[ ] 数组名 = new 元素类型 [元素个数或数组长度];

示例:定义一个可以存储3个整数的容器

int [ ] arr=new int[3];

注意:其中的arr是数组类型

格式2:静态初始化方式

元素类型 [ ] 数组名 = new 元素类型 [ ] {元素,元素,……};

示例: int [ ] arr=new int [ ]{3,5,1,7};

int [ ] arr={3,5,1,7};

内存结构:

Java程序在运行时,需要在内存中分配空间,为了提高运算效率,有对空间进行了不同区域的划分,因为每一片区域都有特定的处理数据方式和内存管理方式

栈内存:

用于存储局部变量,当数据使用完,所占空间会自动释放

堆内存

l 数组和对象,通过new建立的实例都存放在堆内存中

l 每个实体都有内存地制值

l 实体中的变量都有默认初始化值

Int –>0

Doubleà0.0

Floatà0.0f

Booleanàfalse

Charà’\u000’

l 实体不在被使用,会在不确定的时间内被垃圾回收器回收

方法区,本地方法区,寄存器

数组中的异常

ArrayIndexOutOfBoundsException:数组角标越界异常,操作数组时访问到了数组中不存在的角标

示例:

class ArrayDemo

{

public static void main(String[] args)

{

int [] arr=new int[3];

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

}

}

结果:



NullPointerException:空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体

示例:

class ArrayDemo

{

public static void main(String[] args)

{

int [] arr=new int[3];

arr=null;

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

}

}

结果:



数组的操作:

获取数组中的元素:通常会用到遍历

示例:

class ArrayDemo

{

public static void main(String[] args)

{

int [] arr=new int[3];

for(int i=0;i<3;i++){

System.out.println("arr["+i+"]="+arr[i]+";");

}

}

}

结果:



因为数组中没有定义具体的值,所以打印的都是默认初始化值

数组中有一个属性可以直接获取到数组的元素个数。Length

使用方法:数组名称.length=

示例:

class ArrayDemo

{

public static void main(String[] args)

{

int [] arr={1,5,3,7,8,3,5,0};

for(int
i=0;i<arr.length;i++){

System.out.println("arr["+i+"]="+arr[i]+";");

}

}

}

结果:



练习:

定义功能,用于打印数组中的元素,元素间用都好隔开

代码示例;

class ArrayDemo

{

public static void main(String[] args)

{

int []arr={1,3,5,7,9,5,0};

show(arr);

}

public static void show(int [] arr){

for(int i=0;i<arr.length;i++){

if(i!=arr.length-1){

System.out.print(arr[i]+",");

}else{

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

}

}

}

}

结果:



---------------------- <a href="http://edu.csdn.net"target="blank">ASP.Net+Android+IOS开发</a>、<a href="http://edu.csdn.net"target="blank">.Net培训</a>、期待与您交流! ----------------------

详细请查看:<a
href="http://edu.csdn.net" target="blank">http://edu.csdn.net</a>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: