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

电子商务网站建设基础扬州建网站

电子商务网站建设基础,扬州建网站,1020美金等于多少欧元,王占山 同济大学1. 【强制】关于 hashCode 和 equals 的处理#xff0c;遵循如下规则#xff1a; 1 #xff09; 只要重写 equals #xff0c;就必须重写 hashCode 。 2 #xff09; 因为 Set 存储的是不重复的对象#xff0c;依据 hashCode 和 equals 进行判断#xff… 1. 【强制】关于 hashCode 和 equals 的处理遵循如下规则 1 只要重写 equals 就必须重写 hashCode 。 2 因为 Set 存储的是不重复的对象依据 hashCode 和 equals 进行判断所以 Set 存储的 对象必须重写这两个方法。 3 如果自定义对象做为 Map 的键那么必须重写 hashCode 和 equals 。 说明 String 重写了 hashCode 和 equals 方法所以我们可以非常愉快地使用 String 对象 作为 key 来使用。 2. 【强制】 ArrayList 的 subList 结果不可强转成 ArrayList 否则会抛出 ClassCastException 异常 java . util . RandomAccessSubList cannot be cast to java . util . ArrayList ; 说明 subList 返回的是 ArrayList 的内部类 SubList 并不是 ArrayList 而是 ArrayList 的一个视图对于 SubList 子列表的所有操作最终会反映到原列表上。 3. 【强制】 在 subList 场景中 高度注意 对原集合元素个数的修改会导致子列表的遍历、增 加、删除均产生 ConcurrentModificationException 异常。 4. 【强制】使用集合转数组的方法必须使用集合的 toArray(T[] array) 传入的是类型完全 一样的数组大小就是 list . size() 。 说明 使用 toArray 带参方法入参分配的数组空间不够大时 toArray 方法内部将重新分配 内存空间并返回新数组地址 如果数组元素大于实际所需下标为 [ list . size() ] 的数组 元素将被置为 null 其它数组元素保持原值因此最好将方法入参数组大小定义与集合元素 个数一致。 正例 ListString list new ArrayListString(2); list.add(guan); list.add(bao); String[] array new String[list.size()]; array list.toArray(array); 反例直接使用 toArray 无参方法存在问题此方法返回值只能是 Object[]类若强转其它 类型数组将出现 ClassCastException 错误。 5. 【强制】使用工具类 Arrays . asList() 把数组转换成集合时不能使用其修改集合相关的方 法它的 add / remove / clear 方法会抛出 UnsupportedOperationException 异常。 说明 asList 的返回对象是一个 Arrays 内部类并没有实现集合的修改方法。 Arrays . asList 体现的是适配器模式只是转换接口后台的数据仍是数组。 String[] str new String[] { a, b }; List list Arrays.asList(str); 第一种情况 list.add(c); 运行时异常。 第二种情况 str[0] gujin; 那么 list.get(0) 也会随之修改。 6. 【强制】泛型通配符 ? extends T 来接收返回的数据此写法的泛型集合不能使用 add 方 法而 ? super T 不能使用 get 方法做为接口调用赋值时易出错。 说明 扩展说一下 PECS(Producer Extends Consumer Super) 原则 1 频繁往外读取内容 的适合用上界 Extends 。 2 经常往里插入的适合用下界 Super 。 7. 【强制】不要在 foreach 循环里进行元素的 remove / add 操作。 remove 元素请使用 Iterator 方式如果并发操作需要对 Iterator 对象加锁。 正例 IteratorString it a.iterator(); while (it.hasNext()) {String temp it.next();if (删除元素的条件) {it.remove();} } 反例 ListString a new ArrayListString(); a.add(1); a.add(2); for (String temp : a) {if (1.equals(temp)) {a.remove(temp);} } 说明以上代码的执行结果肯定会出乎大家的意料那么试一下把“1”换成“2”会是同样的 结果吗 8. 【强制】 在 JDK 7 版本及以上 Comparator 要满足如下三个条件不然 Arrays . sort Collections . sort 会报 IllegalArgumentException 异常。 说明 1 x y 的比较结果和 y x 的比较结果相反。 2 x y y z 则 x z 。 3 x y 则 x z 比较结果和 y z 比较结果相同。 反例 下例中没有处理相等的情况实际使用中可能会出现异常 new ComparatorStudent() {Overridepublic int compare(Student o1, Student o2) {return o1.getId() o2.getId() ? 1 : -1;} }; 9. 【推荐】集合初始化时指定集合初始值大小。 说明 HashMap 使用 HashMap(int initialCapacity) 初始化 正例 initialCapacity ( 需要存储的元素个数 / 负载因子 ) 1 。注意 负载因子即 loader factor 默认为 0.75 如果暂时无法确定初始值大小请设置为 16 。 反例 HashMap 需要放置 1024 个元素由于没有设置容量初始大小随着元素不断增加容 量 7 次被迫扩大 resize 需要重建 hash 表严重影响性能。 10. 【推荐】使用 entrySet 遍历 Map 类集合 KV 而不是 keySet 方式进行遍历。 说明 keySet 其实是遍历了 2 次一次是转为 Iterator 对象另一次是从 hashMap 中取出 key 所对应的 value 。而 entrySet 只是遍历了一次就把 key 和 value 都放到了 entry 中效 率更高。如果是 JDK 8 使用 Map . foreach 方法。 正例 values() 返回的是 V 值集合是一个 list 集合对象 keySet() 返回的是 K 值集合是 一个 Set 集合对象 entrySet() 返回的是 K - V 值组合集合。 11. 【推荐】高度注意 Map 类集合 K / V 能不能存储 null 值的情况如下表格  反例 由于 HashMap 的干扰很多人认为 ConcurrentHashMap 是可以置入 null 值而事实上 存储 null 值时会抛出 NPE 异常。 12. 【参考】合理利用好集合的有序性 (sort) 和稳定性 (order) 避免集合的无序性 (unsort) 和 不稳定性 (unorder) 带来的负面影响。 说明 有序性是指遍历的结果是按某种比较规则依次排列的。稳定性指集合每次遍历的元素次 序是一定的。如 ArrayList 是 order / unsort HashMap 是 unorder / unsort TreeSet 是 order / sort 。 13. 【参考】利用 Set 元素唯一的特性可以快速对一个集合进行去重操作避免使用 List 的 contains 方法进行遍历、对比、去重操作。
http://www.yutouwan.com/news/320382/

相关文章:

  • 品牌网站建设制作wordpress不显示内容你
  • iis搭建网站做网站比较便宜
  • 手机微信小程序免费制作平台台州seo网站管理
  • 会员充值网站怎么做黑龙江建设网官网入口
  • 企业网站怎么做html旅游网站功能
  • 网站建设常用英语自己没有货源怎么开网店
  • 做本地生活圈网站好吗wordpress悬浮广告
  • 深圳宝安网站设计公司上海口碑最好的装修公司排名
  • 域名备案网站建设方案书个人网站备案要什么
  • 上海做外贸网站特别酷炫网站
  • 国外 网站源码做网站硬件
  • 开网站建设公司心得公司网站 钓鱼网站
  • 手机好在百度做网站吗wap建站软件
  • 设计网站p站程序员开发网
  • 金融业反洗钱培训网站库存管理软件免费版
  • 个人网站备案备注信息产品营销
  • pc网站开发制作上海市建设厅网站
  • 合肥网站商城开发东莞企业网站推广多少钱
  • 质量好网站建设费用流量比对网站
  • 资源网站如何做关键词优化按天计费
  • 青岛建设官方网站wordpress整站迁移出现403
  • 公司电商网站建设方案模板创意营销点子
  • 重庆系统建站怎么用北京建网
  • 广州陈村网站建设毕业设计网站只做前端行不行
  • 遵义网站建设oadmin全球排行前50网站开发语言
  • 如何做期货培训网站WordPress4.8中文的把
  • 网站建设图片流程图做网站租服务器多少钱
  • 好的建设网站网络营销外包要多少钱
  • 烟台优化网站公司哪家好高端企业网站定制公司
  • 站长工具网站排名南京润盛建设集团有限公司网站