网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.让自己学会写的一个在线升级的程.
.Java Servlets技术.
.Hibernate配置文件中映射元素详解.
.为你的应用程序添加动态Java代码.
.访谈:为Java菜鸟帮解答问题二十.
.SWT/JFace入门指南之加速开发.
.使用Decorator模式实现日期选择组.
.JAVA中的指针,引用及对象的clone.
.如何测定JDBC的性能(上).
.VisualBasic.Net引人注目的语言革.
.Java应用利器组合:Ant+JUnit+Co.
.getUTCFullYear 方法.
.一个计时类.
.基于Struts技术的Web应用设计与实.
.JAVA哲学 -- 前言.
.学习Jakarta Struts 1.1 (二).
.java中的匿名类(zz).
.Java Learn Steps.
.关于如何用Java动态代理实现AOP的.
.深入探究EJB应用技术的体系结构.

Effective java学习笔记7:改写equals的时候遵守约定

发表日期:2008-1-5



  在Java里面object equals()的概念是两个引用指向的是同一个对象,即两者指向同一个对象,才equals()。但是也有特例,比如说一些原始类型,integer,string等属于值相等。就是说,值相等,也就equals()了。实际上,他们都改写了object的equals()方法。但是”类型安全”的值类不需要改写equals()。
还有,当我们当前的类有特定的”相等”的定义的时候,而且我们的超类并没有改写equals()方法,就需要改写equals()方法了。
改写的规范-object必须满足:
1. 自反
2. 对称
3. 传递
4. 一致
5. X非空,x.equals(null)返回false

为了实现高质量的equals()改写,effective java提醒我们要注重一下几点:
1. 使用==操作符检查是否指向同一个对象,这是一个性能优化的手段。
2. 使用instanceof来检查是否为某个类,同样也是性能优化的手段。
3. 把实参转换到正确的类型,上面一步保证了这一步不会有错误。
4. 检查类里的每一个要害域是否都相等。

还有要注重的就是,改写equals()方法的同时,都要改写hashcode方法。(下一篇里会提到为什么要这样)

【matrix 原创】-转载请注明来自:www.matrix.org.cn
上一篇:Domino.Doc 学习笔记(一) 人气:760
下一篇:Effective java学习笔记6:避免使用finalizer()函数 人气:836
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐