「java容器的深入研究」java容器的深入研究是什么
今天给各位分享java容器的深入研究的知识,其中也会对java容器的深入研究是什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
java开发中很多都提到了容器,容器到底里什么概念,详细点说一下,谢谢
容器就好像一个存放对象的仓库,可以将你的东西存放在一个无限制的仓库中,然后要用的时候可以按规律取出来!
概念:
突破数组的固定尺寸们可以在并不知道需要多少对象的情况或者更复杂的方法存储对象,提出了容器这个概念!
List,Set,Queue和Map这些对象类型本称为集合类,由于java的类库中使用了Collection这个名字代表该类库的一个特殊子集!所以使用了范围更广的术语“容器”来称呼他们!
容器比数组的好处在于可以自动调整子集的尺寸。不用担心应该设置为多大!
存放在容器的对象在存放的时候如果没有声明继承自哪个类,那么它的自动继承自Object,所以当你取容器的的对象的时候,你得到的只是Object的应用,必须将其转型为你所要的类型!
java 容器的归纳
容器是用来保存多个对象的东西.严格来说是保存对象的引用.因为对象实际的数据是放在另外的地方的.放在容器中的只是指向那块内存区域的一个标识.
JAVA中内置了数组.数组和其它容器的区别主要有三个:效率,类型,和存放基本类型的能力.JAVA中的数组是一种效率最高的存储和随机访问对象引用序列的方式.它就是一个简单的线性序列,所以访问是非常快.但它也损失了其他的特性.当创建一个数组时,它的长度就被固定了.通常是创建一个固定大小的数组,在空间不足时,再创建一个大的数组,然后把旧数组中的所有引用移到新数组中.这种机制被JAVA中的另一个容器:ArrayList采用.所以,ArrayList的效率要比数组低.JAVA中还有一些其他的容器:List,Set(每个对象只保存一份),Map(允许将一个对象和另一对象关联存储).它们都是针对Object来处理的.而Object是JAVA中所有类的基类,所以说这些容器可以存放所有JAVA类.注意:基本类型如:boolean char byte short long float double void..不继承Object,所以这些容器不能存放这些.如果要存进去必须用JAVA为这些类提供的 包装类它们对应的包装类是: Boolean Character Byte Short Integer Long Float Double Void
因为基本类型是不继承自Object的,所以强制转换也是不可能的.必须用包装类进行强制转换.比如说将一个String强制转换成int型,必须:Integer.praseInt("3");必须用包装类来.
经包装类包装后的基本类型就可以随便往容器里放了.
JAVA容器的缺点:
1)将对象保存到容器的时候它的类型信息就丢失了.因为容器是针对Object的.所以可以将不同类型的对象放入同一个容器中.而数组则不同,一个数组里只能存同一类型的对象.
2)在从容器中取出对象使用时必须进行类型转换.
当然,上面的问题可以通过泛型来解决.
容器的选择:
容器实际上只有三种:Map , List, Set;但每种接口都有不同的实现版本.它们的区别可以归纳为由什么在背后支持它们.也就是说,你使用的接口是由什么样的数据结构实现的.
List的选择:
比如:ArrayList和LinkedList都实现了List接口.因此无论选择哪一个,基本操作都一样.但ArrayList是由数组提供底层支持.而LinkedList是由双向链表实现的.所以,如果要经常向List里插入或删除数据,LinkedList会比较好.否则应该用速度更快的ArrayList.
Set的选择
HashSet总是比TreeSet 性能要好.而后者存在的理由就是它可以维持元素的排序状态.所以,如果需要一个排好序的Set时,才应该用TreeSet
Map选择:
同上,尽量选择HashMap,只要需要排好序的确Map时才用Treemap
java 容器
你理解错了。
new Dog() 对象也是在heap 中的。
但是 set中 其实是保存了一个内存地址。指向的是 new Dog()的内存。
你可以看看那 《深入JVM》 也就是 《深入Java虚拟机》。那个里面讲的很详细。
什么是JAVA里的容器,通俗解释一下啊
容器就是容纳物品,放置物品的东西
1.对Java来说,一切皆是对象,他的容器就是能保存java的对象的类。
Java容器类包含List、ArrayList、Vector及map、HashTable、HashMap
2.容器(Container)
容器是一个Java 所编写的程序,原先必须自行编写程序以管理对象关系,现在容器都会自动帮您作好。
常用容器:WebSphere,WebLogic,Resin,Tomcat
3.java的图形界面的一种,可以往里面加组件
我知道的关于java的容器的相关的就是这三种了
JAVA中的容器怎么学?
JAVA容器库(container)包含两大组件:Collection和Map.
Collection是一组相互独立的对象的集合.Map是一组KEY--VALUE对应的对象集合.
Collection中又分为两类:一类是List;另一类是Set.Set下还有SortedSet,而Map下有SortedMap.
其下有很多接口和方法,具体的用法请参考官方文档和有关教程,这个不难。
这些接口和方法是构成整个JAVA容器库的最顶层的元素,学习了这些我至少可以使用容器编写一般化的 的程序.这些方法的学习总体来说是比较简单的,但如果要深究其原理也是颇具挑战的,就单单说迭代器的实现,实现机理,也是值得探讨的。抛开这些不说,在类库的设计层面上所也值得我们去研究。
关于java容器的深入研究和java容器的深入研究是什么的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。