Quantcast
Channel: CSDN博客推荐文章
Viewing all articles
Browse latest Browse all 35570

Java通用程序设计与集合方法总结

$
0
0

一.  equals() VS “==”
    equals() 通常用来比较两个引用所指向的对象的内容是否相等;而 “==”通常比较的事两个引用所指向的对象是否为同一个对象,即是否引用了同一个内存地址;那么不难推断出,如果两个对象相等,那么它们一定相互
    equals(),而两个对象相互equals()却不一定相等。

 

二. 在类内部的方法可以访问对象的私有实例变量
    乍看似乎不合理引用,但是只要方法所属类与对象的类型是相同的类,那么该方法就能访问对象的私有实例变量。

 


   如果类中有一个实例变量是数组类型,那么clone方法在返回之前需要执行一些额外的工作。额外的工作需要创建一个新的数组,供clone的实例变量引用。这个类可能还有其他一些引用了某些对象的实例变量。在这种情况下,
clone方法还需要执行一些额外工作,为每个实例变量创建其引用的新对象


四. 如果某个方法返回一个object类型的对象,要实际使用该返回值,通常需要对返回值进行强制类型转换。

 

五. 统计对象出现的次数:对于非空目标,使用equals()来确定目标出现的次数,空目标用“==”来确定null的出现次数


六. 陷阱:通用方法的限定
 由编译器推出的与通用类型对应的数据类型只是某个类类型(不能是基本数据类型)。另外,不能调用通用类型的某个构造函数,也不能创建生成由该类型的元素构成的新数组

 


七. 将集合类转换成通用类的8个步骤:
   1.原类名的所有出现均改成XXXX<E>的形式,其中XXXX为原类名,E为通用类型参数;
   2.找到原类中所有表示包中元素类型的位置,将这些位置的数据类型改成通用类型参数E
   3.将静态烦方法改成通用静态方法。类中可以包含一些通用静态方法,但是所有依赖通用类型参数E的静态方法都必须修改成通用方法。
   4.不能创建任何新的E对象或数组。
   5.在原来的类中找到所有使用“==”或“!=”来进行两个元素比较的点,将这些运算符特换成equals方法。
   6.处理空引用,如前所述
   7.将未使用的引用变量设置成null便于垃圾回收,释放内存。
   8.更新所有文档,进一步体现包是由引向对象的引用构成的集合。

 

 

八. 使用某个接口作为形式参数的类型:
   当某接口名称用作方法的形式参数的类型时,实际参数必须是实现了该接口的某种数据类型。可以使用instanceof关键字来判断类是否实现某个接口;也可以判断某个对象是否实现了某个通用接口,可以通过制定通用接口的实例化来进行判断。


九. java.util中的TreeMap类以一种有效的方法实现了map接口,其中要求关键字必须属于某个已经实现了Comparable()接口的类(例如:String)

 

 

 

作者:gaoxueyi551 发表于2013-3-16 23:20:25 原文链接
阅读:59 评论:0 查看评论

Viewing all articles
Browse latest Browse all 35570

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>