黑马程序员--数组(一)基本概念
数组的定义
概念:同一种类型数据的集合。其实数组就是一个容器
数组的好处:
可以自动给数组中的元素从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>