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

加强学科网站建设哈尔滨个人建站模板

加强学科网站建设,哈尔滨个人建站模板,全flash网站模板,假山网站建设这篇文章主要梳理了在java的实际开发过程中的编程规范问题。本篇文章主要借鉴于《阿里巴巴java开发手册终极版》 下面我们一起来看一下吧。 1. 【强制】关于 hashCode 和 equals 的处理#xff0c;遵循如下规则#xff1a; 只要重写 equals#xff0c;就必须重写 hashCod…这篇文章主要梳理了在java的实际开发过程中的编程规范问题。本篇文章主要借鉴于《阿里巴巴java开发手册终极版》 下面我们一起来看一下吧。 1. 【强制】关于 hashCode 和 equals 的处理遵循如下规则 只要重写 equals就必须重写 hashCode。因为 Set 存储的是不重复的对象依据 hashCode 和 equals 进行判断所以 Set 存储的对象必须重写这两个方法。如果自定义对象做为 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其它数组元素保持原值因此最好将方法入参数组大小定义与集合元素个数一致。 正例 反例直接使用 toArray 无参方法存在问题此方法返回值只能是 Object[ ] 类若强转其它类型数组将出现 ClassCastException 错误。 5. 【强制】使用工具类 Arrays.asList() 把数组转换成集合时不能使用其修改集合相关的方法它的 add / remove / clear 方法会抛出 UnsupportedOperationException 异常。 说明asList 的返回对象是一个 Arrays 内部类并没有实现集合的修改方法。Arrays.asList 体现的是适配器模式只是转换接口后台的数据仍是数组。 第一种情况list.add(yangguanbao)运行时异常。  第二种情况str[0] gujin那么 list.get(0) 也会随之修改。 6. 【强制】泛型通配符来接收返回的数据此写法的泛型集合不能使用 add 方法而不能使用 get 方法做为接口调用赋值时易出错。 7. 【强制】不要在 foreach 循环里进行元素的 remove / add 操作。remove 元素请使用 Iterator 方式如果并发操作需要对 Iterator 对象加锁。 说明以上代码的执行结果肯定会出乎大家的意料那么试一下把“1”换成“2”会是同样的结果吗 8. 【强制】 在 JDK7 版本及以上Comparator 要满足如下三个条件不然 Arrays.sort Collections.sort 会报 IllegalArgumentException 异常。 说明三个条件如下 xy 的比较结果和 yx 的比较结果相反。xyyz则 xz。xy则 xz 比较结果和 yz 比较结果相同。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 中效率更高。如果是 JDK8使用 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/unsortHashMap 是 unorder/unsortTreeSet 是 order/sort。 13. 【参考】利用 Set 元素唯一的特性可以快速对一个集合进行去重操作避免使用 List 的 contains 方法进行遍历、对比、去重操作。
http://www.tj-hxxt.cn/news/133879.html

相关文章:

  • 国家建设部举报网站有哪些可以做1元夺宝的网站
  • 建立企业网站流程响应式布局代码
  • 南宁网站建设外包wordpress插件安装目录
  • 网站负责人查询php网站建设是什么意思
  • 青岛php网站建设国外网络推广哪家公司好
  • 自助建站免费平台企业信息系统规划的含义及任务
  • 注册网站页面跳转错误wordpress 好用的编辑器
  • 提示网站建设中四会城乡建设局网站
  • 东三省网站建设公司wordpress 首页模版
  • 建一个网站难不难服务好的南京网站建设
  • 专做老酒的网站济南网站建设行知科技不错
  • 网站建设360搜索引擎广告图片
  • 大型网站系统图wordpress 做一个视频站
  • 关于网站备案前置审批的相关说明 吉林一站式服务广告语
  • 北京网站设计公司哪儿济南兴田德润简介网站设计与推广
  • 网站建设与管理适合女生学吗江苏省建设厅 标准化网站
  • 协会网站方案广州腾虎网络网站建设熊掌号
  • 外贸网站建设模式株洲网站优化找哪家
  • 怎么创建网站赚钱dede网站怎么做404页面
  • 怎么在云服务器上搭建网站t恤在线制作网站
  • 网站建设分为多少模块我市建设车辆违章查询网站 病句
  • 网站建设所需要的软件十大难进的互联网公司
  • 郑州网站建设企业推荐我有云服务器如何建站
  • 建设网站手机版怎么看一级还是二级域名
  • 重庆官方网站建设导入表格数据做地图网站
  • 学习网站开发心得体会学校网站的建设论文
  • 黄页网站怎么查wordpress主题手动安装
  • 网站模板定制app产品开发公司
  • 网站制作优化全包湖南企业seo优化报价
  • 怎么给网站做网站地图南京工程造价信息网