黑马程序员--数组(一)基本概念
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]);
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192005-c59c1151f6ae4e1984bd5263bba76d55.png)
NullPointerException:空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体
示例:
class ArrayDemo
{
public static void main(String[] args)
{
int [] arr=new int[3];
arr=null;
System.out.println(arr[1]);
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192023-b541cf449dee422f8c1556e7e0083d3c.png)
数组的操作:
获取数组中的元素:通常会用到遍历
示例:
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]+";");
}
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192040-b497c35eff104a7a90ab3ae9f6de75dd.png)
因为数组中没有定义具体的值,所以打印的都是默认初始化值
数组中有一个属性可以直接获取到数组的元素个数。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]+";");
}
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192052-b966e6c5843242e0b2f238d1c9dce89c.png)
练习:
定义功能,用于打印数组中的元素,元素间用都好隔开
代码示例;
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]);
}
}
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23193515-660cd61526fd4c6d9ebea8784b633b07.png)
---------------------- <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>
数组的定义
概念:同一种类型数据的集合。其实数组就是一个容器
数组的好处:
可以自动给数组中的元素从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]);
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192005-c59c1151f6ae4e1984bd5263bba76d55.png)
NullPointerException:空指针异常,当引用没有任何指向值为null的情况,该引用还在用于操作实体
示例:
class ArrayDemo
{
public static void main(String[] args)
{
int [] arr=new int[3];
arr=null;
System.out.println(arr[1]);
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192023-b541cf449dee422f8c1556e7e0083d3c.png)
数组的操作:
获取数组中的元素:通常会用到遍历
示例:
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]+";");
}
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192040-b497c35eff104a7a90ab3ae9f6de75dd.png)
因为数组中没有定义具体的值,所以打印的都是默认初始化值
数组中有一个属性可以直接获取到数组的元素个数。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]+";");
}
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23192052-b966e6c5843242e0b2f238d1c9dce89c.png)
练习:
定义功能,用于打印数组中的元素,元素间用都好隔开
代码示例;
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]);
}
}
}
}
结果:
![](http://images.cnitblog.com/blog/593572/201312/23193515-660cd61526fd4c6d9ebea8784b633b07.png)
---------------------- <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>
相关文章推荐
- 黑马程序员---C语言学习笔记之数组的基本概念和分类
- 黑马程序员 C语言-----数组基本概念 以及选择 冒泡排序理解
- ——黑马程序员——C语言中一维数组基本概念和初始化
- 数组的基本概念,定义及使用方法
- 作业10--数组和广义表以及树的基本概念
- 数组——基本概念
- C-022.数组的基本概念和初始化介绍
- 黑马程序员--读写字节数组,随机读写流,集合IO的思维导图,多线程部分,单例设计模式,线程和进程的概念,Java中的线程的创建方式,线程的随机性,线程的状态图,多线程操作共享数据的安全性,死锁
- 黑马程序员--Java基础学习笔记【数组操作、基本数据类型包装类】
- 第08天C语言(01):二维数组-基本概念
- 黑马程序员-java中几个基本概念的说明
- 【黑马程序员】protocol的概念及基本使用
- 黑马程序员 一位数组的基本知识总结
- 黑马程序员——面向对象的基本概念知识
- 17-数组的基本概念
- 黑马程序员——自学笔记1(java基础概念以及基本DOS命令)
- 数组,面向对象基本概念
- 黑马程序员 数组的基本操作代码
- 深入理解指针,数组的基本概念
- 黑马程序员_C语言基本概念