当前位置: 首页 > news >正文

做家教有哪些比较好的网站曲阜住房和城乡建设局网站

做家教有哪些比较好的网站,曲阜住房和城乡建设局网站,网络设计开发网站,制作wordpress文章模板以下内容总结自《Effective Java》。1.何时需要重写equals()当一个类有自己特有的“逻辑相等”概念#xff08;不同于对象身份的概念#xff09;。2.设计equals()[1]使用instanceof操作符检查“实参是否为正确的类型”。[2]对于类中的每一个“关键域”#xff0c;检查实参中…以下内容总结自《Effective Java》。 1.何时需要重写equals() 当一个类有自己特有的“逻辑相等”概念不同于对象身份的概念。 2.设计equals() [1]使用instanceof操作符检查“实参是否为正确的类型”。 [2]对于类中的每一个“关键域”检查实参中的域与当前对象中对应的域值。 [2.1]对于非float和double类型的原语类型域使用比较 [2.2]对于对象引用域递归调用equals方法 [2.3]对于float域使用Float.floatToIntBits(afloat)转换为int再使用比较 [2.4]对于double域使用Double.doubleToLongBits(adouble) 转换为int再使用比较 [2.5]对于数组域调用Arrays.equals方法。 3.当改写equals()的时候总是要改写hashCode() 根据一个类的equals方法改写后两个截然不同的实例有可能在逻辑上是相等的但是根据Object.hashCode方法它们仅仅是两个对象。因此违反了“相等的对象必须具有相等的散列码”。 4.设计hashCode() [1]把某个非零常数值例如17保存在int变量result中 [2]对于对象中每一个关键域f指equals方法中考虑的每一个域 [2.1]boolean型计算(f ? 0 : 1); [2.2]byte,char,short型计算(int); [2.3]long型计算(int) (f ^ (f32)); [2.4]float型计算Float.floatToIntBits(afloat); [2.5]double型计算Double.doubleToLongBits(adouble)得到一个long再执行[2.3]; [2.6]对象引用递归调用它的hashCode方法; [2.7]数组域对其中每个元素调用它的hashCode方法。Arrays.hashCode(...)只会计算一维数组元素的hashCOde,如果是多维数组那么需要递归进行hashCode的计算那么就需要使用Arrays.deepHashCode(Object[])方法。 [3]将上面计算得到的散列码保存到int变量c然后执行 result37*resultc; [4]返回result。 为什么每次需要使用乘法去操作result?  主要是为了使散列值依赖于域的顺序还是上面的那个例子Test t new Test(1, 0)跟Test t2 new Test(0, 1), t和t2的最终hashCode返回值是不一样的。 为什么是31? 31是个神奇的数字因为任何数n * 31就可以被JVM优化为 (n 5) -n,移位和减法的操作效率要比乘法的操作效率高的多。 我们应该先了解java判断两个对象是否相等的规则。在java的集合中判断两个对象是否相等的规则是 首先判断两个对象的hashCode是否相等如果不相等认为两个对象也不相等如果相等则判断两个对象用equals运算是否相等 如果不相等认为两个对象也不相等 如果相等认为两个对象相等我们在equals方法中需要向下转型效率很低所以先判断hashCode方法可以提高效率如何重写hashCode方法呢 5.示例 下面的这个类遵循上面的设计原则重写了类的equals()和hashCode()。 package com.zj.unit; import java.util.Arrays; public class Unit { private short ashort; private char achar; private byte abyte; private boolean abool; private long along; private float afloat; private double adouble; private Unit aObject; private int[] ints; private Unit[] units; public boolean equals(Object o) { if (!(o instanceof Unit)) return false; Unit unit (Unit) o; return unit.ashort ashort unit.achar achar unit.abyte abyte unit.abool abool unit.along along Float.floatToIntBits(unit.afloat) Float .floatToIntBits(afloat) Double.doubleToLongBits(unit.adouble) Double .doubleToLongBits(adouble) unit.aObject.equals(aObject) equalsInts(unit.ints) equalsUnits(unit.units); } private boolean equalsInts(int[] aints) { return Arrays.equals(ints, aints); } private boolean equalsUnits(Unit[] aUnits) { return Arrays.equals(units, aUnits); } public int hashCode() { int result 17; result 37 * result (int) ashort; result 37 * result (int) achar; result 37 * result (int) abyte; result 37 * result (abool ? 0 : 1); result 37 * result (int) (along ^ (along 32)); result 37 * result Float.floatToIntBits(afloat); long tolong Double.doubleToLongBits(adouble); result 37 * result (int) (tolong ^ (tolong 32)); result 37 * result aObject.hashCode(); result 37 * result intsHashCode(ints); result 37 * result unitsHashCode(units); return result; } private int intsHashCode(int[] aints) { int result 17; for (int i 0; i aints.length; i) result 37 * result aints[i]; return result; } private int unitsHashCode(Unit[] aUnits) { int result 17; for (int i 0; i aUnits.length; i) result 37 * result aUnits[i].hashCode(); return result; } }转载于:https://www.cnblogs.com/duanxz/p/3890046.html
http://www.pierceye.com/news/333019/

相关文章:

  • 家装公司网站建设网站建立网站有免费的吗
  • 网站后台添加投票系统wordpress mip改造
  • 提升网站建设品质信息设计软件排行
  • 温州网站建设优化公司网站营销管理培训班
  • 昆明企业网站开发深圳航空公司最新官网
  • 青浦网站开发泸州建设网站
  • 福建省建设行业企业资质查询网站企业数据查询网站
  • wordpress 英文企业站东城手机网站制作
  • 搭建企业网站需要什么微商城系统网站模板
  • 班级网站怎样做ppt模板免费素材
  • 网站建设及运营 多少钱域名抢注哪个平台好
  • 抚顺营销型网站建设吴江开发区人才网
  • 余姚建设网站wordpress百度分享插件
  • iis网站服务器 建立出现问题吉林市城市建设档案馆官方网站
  • wordpress网站图片迁移打开一个网站为繁体字是怎么做的
  • 东莞规划局官方网站做网站要学一些什么
  • 网站动效是代码做的吗网站模板侵权问题
  • 网站开发语言总结有哪些怎么样让网站宣传自己
  • 网站建设公司哪家好找建设网站公司哪家好
  • 网站建设网上学a8直播免费版
  • 网上下载的免费网站模板怎么用灯箱网站开发
  • 四平市建设局网站贵州省民贸民品企业信息管理系统
  • 周口网站制作公司哪家好河南省信息服务平台官网
  • 然后建设自营网站湘潭市优化办
  • 大兴专业网站开发公司皮具网站建设策划书
  • 广告投放跟网站建设一样吗呼和浩特免费制作网站
  • 个人做网站的时代已经过去个人手机网站
  • 用vps做网站深圳广告公司招聘安装工人
  • 建设电影网站怎么上传电影如何建企业网站
  • 响应式网站制作公司org域名购买