A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 吴扬 中级黑马   /  2012-6-20 01:24  /  2046 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 吴扬 于 2012-6-21 02:09 编辑

在教材上说到有关数组对象和对象数组的概念,但是还没弄清楚,什么是数组对象,什么又是对象数组啊?
另外,还有数组中的元素在内存之中是怎么联系起来的呢?它们之间的内存地址是连续的地址值还是彼此之间用指针指向的呢?

7 个回复

倒序浏览
对象数组 :可以保存多个对象在一个数组中 但是对象数组的大小固定 如果向对象数组中添加对象时 要考虑到数组的大小
数组对象只是相同类型的、用一个标识符名称封装到一起的一个对象序列或基本类型数据序列
回复 使用道具 举报
数组对象和对象数组:
对象数组:
数组的元素是一个对象,比如
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数组的内存并不是连续分配的

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报
对象数组是指数组元素为对象的数组。该数组中若干个元素必须是同一个类的若干个对象。对象数组的定义、赋值和引用与普通数组一样,只是数组的元素与普通数组不同,它是同类的若干个对象。
  1. 对象数组的定义
  对象数组定义格式如下:
   <类名><数组名>[<大小>]...
  其中,<类名>指出该数组元素是属于该类的对象,方括号内的<大小>给出某一维的元素个数。一维对象数组只有一个方括号,二维对象数组要有两个方括号,等等,例如:
  DATE dates[7];
表明dates是一维对象数组名,该数组有7个元素,每个元素都是类DATE的对象。
数组对象:比如int[] Array = new int[3](1, 2, 3);
这个定义的数组Array就是一个数组对象
数组在内存中是逐个放的,数组的连续元素的内存地址是连续的

评分

参与人数 1技术分 +1 收起 理由
黄奕豪 + 1 赞一个!

查看全部评分

回复 使用道具 举报

        对象数组就是数组里的每个对象都是类的对象,赋值时先定义对象,然后将对象直接赋给数组就行了。
比如:

class A
{
int x;
int y;
}
void main()
{
A a1,a2;
A array[10];
array[0]=a1;
array[1]=a2;
}
回复 使用道具 举报
数组对象就是一个数组作为对象,而对象数组就是把数组作为对象,它们对象的类型不同,所以名字不同。
至于内存分配,应该是连续的,比如
                              int[] array = new int[9]
在这里面给数组连续分配9个地址空间。
回复 使用道具 举报
对象数组:首先数据类型是一个类名,然后每个元素都是该类的对象!
如:我们现在又一个类:Person
定义对象数组:Person [] arr = {数据类表};//当然定义格式不止一种。
数组对象:首先要确定是数组,其次以数组作为对象。
另外数组是否连续这个问题,真不好答!是地址连续呢,还是什么?不过还是要看数据类型是什么了!
数组是一个引用变量,只想堆内存中的地址,一般来说堆内存会返给数组一个首地址,然后根据数据类型把存储空间分配给各个元素,(一维数组中,且是基本数据类型)空间地址应该是连续的。但是在二维数组中,是指定arr的首地址,然后还要指定arr[0]到arr[n]的首地址,这样就谈不上什么数组连续了。数组的元素个数定义完成后就确定了它的空间个数。但是在String类型的数组中就有不一样了!同样求解String数据类型的内存分配方式。
回复 使用道具 举报
吴扬 中级黑马 2012-6-21 02:09:35
8#
刘建龙 发表于 2012-6-20 14:52
对象数组:首先数据类型是一个类名,然后每个元素都是该类的对象!
如:我们现在又一个类:Person
定义对象 ...

谢谢,对象数组可以大概的理解为存储数对象的数组,数组对象其实就是一个数组吧!对于数组在内存中的分配方式,我原来记得教材上提到过一维数组的地址是连续的。但是也不记得很清楚,所以拿出来大家一起讨论下!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马