黑马程序员技术交流社区
标题:
关于数组容器存放对象的问题
[打印本页]
作者:
贠(yun)靖
时间:
2012-3-17 16:16
标题:
关于数组容器存放对象的问题
数组和集合都可以存储对象,数组存储对象原理是和集合相同吗?
比如 Person[] persons=new Person[4];
persons[0]=new Person("zhangsan",14);
persons[1]=new Person("李四",13);
这时候的persons[0] 就相当与一个人类的引用吗?
它是指向这个人类 所创建的对象的? 也就是说persons[0]
里面存放的是对象的地址吧? 那么调用对象里面的属性 就和
一般的变量引用想同了 是这样子的吗?
还有就是数组存放对象除了必须是同一个类和数组大小事固定外还
有没有什么特殊之处?
作者:
叶绍亮
时间:
2012-3-17 16:18
将数组和集合存储到对象数据库中并不总与存储常规的结构化对象不同,只是要注意数组不能被直接查询,而集合则可以。
作者:
魏群
时间:
2012-3-18 00:52
数组和集合存储的都是对象的引用。数组是JAVA语言内置的数据类型,它是一个线性的序列,所以它可以快速的访问其他的元素。但是速度是要有代价的,当你创建了一个数组之后,它的容量就固定了,而且在其生命周期里是不能改变的。集合的存储是由算法支持的,不同的集合算法不一样。
比如HashSet,HashMap用了哈希表,ArrayList LinkedList用了链表,TreeMap,TreeSet用了红黑二叉树等等。
作者:
朱亚安
时间:
2012-3-18 02:01
当然不同了,数组存贮对象其实也同存贮数字等差不多,在栈空间中分配一块连续的存贮空间用来存放并且这个数组的大小已经确定了,是不能改变的,然后每一空间所指向的堆空间是一个Person对象而已。然后集合就不同了,虽然同样在栈空间分配空间但是它大小是不确定的,可以看成是动态分配的,就是根据你要存贮的大小来分配相应的大小,至于内部是怎么分配咱就先不管了。所以说不一样。
person[0]是一个人的引用,表示在堆空间中对象的地址。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2