了解下JAVA的Java汇合源码分析:Java汇合框架
先谈谈我对java的一些认识。我选择java,是因为他语法简单,功能强大,从web,到桌面,到嵌入式,无所不能。但当我进一步了解了java后,感叹,java原来也有许多缺点。Java汇合工具包位于Java.util包下,包括了良多经常使用的数据布局,如数组、链表、栈、行列、汇合、哈希表等。进修Java汇合框架下大抵能够分为以下五个部分:List列表、Set汇合、Map映照、迭代器(Iterator、Enumeration)、工具类(Arrays、Collections)。
Java汇合类的全体框架以下:
从上图中能够看出,汇合类次要分为两年夜类:Collection和Map。
Collection是List、Set等汇合高度笼统出来的接口,它包括了这些汇合的基础操纵,它次要又分为两年夜部分:List和Set。
List接口一般暗示一个列表(数组、行列、链表、栈等),个中的元素能够反复,经常使用完成类为ArrayList和LinkedList,别的另有不经常使用的Vector。别的,LinkedList仍是完成了Queue接口,因而也能够作为行列利用。
本栏目更多出色内容:http://www.bianceng.cn/Programming/Java/
Set接口一般暗示一个汇合,个中的元素不同意反复(经由过程hashcode和equals函数包管),经常使用完成类有HashSet和TreeSet,HashSet是经由过程Map中的HashMap完成的,而TreeSet是经由过程Map中的TreeMap完成的。别的,TreeSet还完成了SortedSet接口,因而是有序的汇合(汇合中的元素要完成Comparable接口,并覆写Compartor函数才行)。
我们看到,笼统类AbstractCollection、AbstractList和AbstractSet分离完成了Collection、List和Set接口,这就是在Java汇合框架顶用的良多的适配器计划形式,用这些笼统类往完成接口,在笼统类中完成接口中的多少或全体办法,如许上面的一些类只需间接承继该笼统类,并完成本人必要的办法便可,而不必完成接口中的全体笼统办法。
Map是一个映照接口,个中的每一个元素都是一个key-value键值对,一样笼统类AbstractMap经由过程适配器形式完成了Map接口中的年夜部分函数,TreeMap、HashMap、WeakHashMap等完成类都经由过程承继AbstractMap来完成,别的,不经常使用的HashTable间接完成了Map接口,它和Vector都是JDK1.0就引进的汇合类。
Iterator是遍历汇合的迭代器(不克不及遍历Map,只用来遍历Collection),Collection的完成类都完成了iterator()函数,它前往一个Iterator对象,用来遍历汇合,ListIterator则专门用来遍历List。而Enumeration则是JDK1.0时引进的,感化与Iterator不异,但它的功效比Iterator要少,它只能再Hashtable、Vector和Stack中利用。
Arrays和Collections是用来操纵数组、汇合的两个工具类,比方在ArrayList和Vector中大批挪用了Arrays.Copyof()办法,而Collections中有良多静态办法能够前往各汇合类的synchronized版本,即线程平安的版本,固然了,假如要用线程平安的分离类,首选Concurrent并发包下的对应的汇合类。
C#跟java类似,但是在跨平台方面理论上可以跨平台,实际上应用不大,执行性能优于java,跟C++基本一致,但是启动速度还是慢.代码安全,但容易性能陷阱. 是一种为 Internet发展的计算机语言 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 是一种使网页(Web Page)由静态(Static)转变为动态(Dynamic)的语言 Java 不同于一般的编译执行计算机语言和解释执行计算机语言。它首先将源代码编译成二进制字节码(bytecode),然后依赖各种不同平台上的虚拟机来解释执行字节码。从而实现了“一次编译、到处执行”的跨平台特性。 Java语言支持Internet应用的开发,在基本的Java应用编程接口中有一个网络应用编程接口(java net),它提供了用于网络应用编程的类库,包括URL、URLConnection、Socket、ServerSocket等。Java的RMI(远程方法激活)机制也是开发分布式应用的重要手段。 是一种语言,用以产生「小应用程序(Applet(s)) 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧
页:
[1]