JAVA开发工具集(JDK)
■ 设计了一组通用用途的类
■ 设计的质量和实现多样化
一 有些部分设计和实现得很好
一 而有些部分
■ 你可以访问JDK的源代码
一 %JAVA_HOME%\srcjar
一 不要直接修改源代码但如果识别出一个JDK的方法是一个瓶颈检查源代码以理解为什么
数据结构和算法
■ 推荐JAVA集合框架
一 指南 javasuncom/docs/books/tutorial/collections
■ 设计得很好的基本的数据结构和算法
集合框架
■ 调换实现达到不同的性能特性
集合框架接口与具体类
■ 面向接口编程而不是具体类
一 特别是对于方法参数
一 在性能优化时更容易改变实现
集合框架具体类
■ 当一个集合创建时要消除动态增长的代价为其指定一个实际初始大小
一些具体类(如ArrayList)的动态增长的代价是很高的
■ 在适当的地方考虑重用集合对象
一 调用集合的clear()方法清楚它的所有元素
■ ObjecthashCode()
一 选择一个算法保证哈希表的统一分配
一 覆盖继承的ObjecthashCode()方法 默认的实现返回的是对象引用值没有展示一个一致的分配
一 从不返回一个常量
一 非常小心地改变键的值的底层状态
集合框架实现数据结构
■ 如果一定要实现自己的数据结构依赖于集合接口实现你的类
一 可以使用javautilCollections工具方法恰当地实现你的具体数据结构
■ 扩大数据结构集合你可以插入其它的开发成果
集合框架基础算法
■ JavautilCollections类里的算法
一 sort(…)
以升序重新排列List的元素
轻微地优化MergeSortO(nlog(n))的版本
一 binarySearch(…)
在一个已排序的List里查找指定的元素
一 极限值
min(…) max(…)
一 其它
reverse(…)fill(…) copy(…)
数组
■ 数组与ArrayList与Vector
一 数组的速度大约比ArrayList快十倍
一 数组的速度大约比Vector快倍
一 ArrayList的速度大约比Vevtor快倍
■ 当拷贝一个数组的元素到另一个数组时使用Systemarrycopy(…)
数组:基础算法
■ JAVA的javautilArrays类提供了一组重载方法为基础数组实现了最佳化的算法(与javautilCollections类相似)
■ JavautilArrays类的里的算法
一 binarySearch(…)
一 equals(…)
一 fill(…)
一 sort(…)