黑马程序员技术交流社区
标题:
java中中数组的一些小问题
[打印本页]
作者:
吴扬
时间:
2012-6-20 01:24
标题:
java中中数组的一些小问题
本帖最后由 吴扬 于 2012-6-21 02:09 编辑
在教材上说到有关数组对象和对象数组的概念,但是还没弄清楚,什么是数组对象,什么又是对象数组啊?
另外,还有数组中的元素在内存之中是怎么联系起来的呢?它们之间的内存地址是连续的地址值还是彼此之间用指针指向的呢?
作者:
胡大强
时间:
2012-6-20 01:39
对象数组 :可以保存多个对象在一个数组中 但是对象数组的大小固定 如果向对象数组中添加对象时 要考虑到数组的大小
数组对象只是相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列
作者:
余银桂
时间:
2012-6-20 01:56
数组对象和对象数组:
对象数组:
数组的元素是一个对象,比如
String[] strArray = new String[]{new String("abc"), new String("def")};
这个数组的元素是String类型的,每个String都是一个对象,那么这个数组就被称为对象数组,简单点就是对象组成的数组。
数组对象:
在Java中,数组是一个对象,数组的名字是一个引用,比如
int[] intArray = new int[5](1, 2, 3, 4, 5);
这个数组就是一个对象,对象的引用是intArray,而实际的对象是整形数组,数组的元素是1、2、3、4、5,这个数组的引用存放在栈中,但是数组对象存放在堆中,就是说数组的元素1、2、3、4、5存放在堆中。
java数组的内存并不是连续分配的
作者:
郑冬
时间:
2012-6-20 09:32
对象数组是指数组元素为对象的数组。该数组中若干个元素必须是同一个类的若干个对象。对象数组的定义、赋值和引用与普通数组一样,只是数组的元素与普通数组不同,它是同类的若干个对象。
1. 对象数组的定义
对象数组定义格式如下:
<类名><数组名>[<大小>]...
其中,<类名>指出该数组元素是属于该类的对象,方括号内的<大小>给出某一维的元素个数。一维对象数组只有一个方括号,二维对象数组要有两个方括号,等等,例如:
DATE dates[7];
表明dates是一维对象数组名,该数组有7个元素,每个元素都是类DATE的对象。
数组对象:比如int[] Array = new int[3](1, 2, 3);
这个定义的数组Array就是一个数组对象
数组在内存中是逐个放的,数组的连续元素的内存地址是连续的
作者:
sbeeqnui1987
时间:
2012-6-20 09:48
对象数组就是数组里的每个对象都是类的对象,赋值时先定义对象,然后将对象直接赋给数组就行了。
比如:
class A
{
int x;
int y;
}
void main()
{
A a1,a2;
A array[10];
array[0]=a1;
array[1]=a2;
}
作者:
杨朔
时间:
2012-6-20 10:18
数组对象就是一个数组作为对象,而对象数组就是把数组作为对象,它们对象的类型不同,所以名字不同。
至于内存分配,应该是连续的,比如
int[] array = new int[9]
在这里面给数组连续分配9个地址空间。
作者:
刘建龙
时间:
2012-6-20 14:52
对象数组:首先数据类型是一个类名,然后每个元素都是该类的对象!
如:我们现在又一个类:Person
定义对象数组:Person [] arr = {数据类表};//当然定义格式不止一种。
数组对象:首先要确定是数组,其次以数组作为对象。
另外数组是否连续这个问题,真不好答!是地址连续呢,还是什么?不过还是要看数据类型是什么了!
数组是一个引用变量,只想堆内存中的地址,一般来说堆内存会返给数组一个首地址,然后根据数据类型把存储空间分配给各个元素,(一维数组中,且是基本数据类型)空间地址应该是连续的。但是在二维数组中,是指定arr的首地址,然后还要指定arr[0]到arr[n]的首地址,这样就谈不上什么数组连续了。数组的元素个数定义完成后就确定了它的空间个数。但是在String类型的数组中就有不一样了!同样求解String数据类型的内存分配方式。
作者:
吴扬
时间:
2012-6-21 02:09
刘建龙 发表于 2012-6-20 14:52
对象数组:首先数据类型是一个类名,然后每个元素都是该类的对象!
如:我们现在又一个类:Person
定义对象 ...
谢谢,对象数组可以大概的理解为存储数对象的数组,数组对象其实就是一个数组吧!对于数组在内存中的分配方式,我原来记得教材上提到过一维数组的地址是连续的。但是也不记得很清楚,所以拿出来大家一起讨论下!
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2