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

建设娱乐城网站苏州百度首页优化

建设娱乐城网站,苏州百度首页优化,银行存款营销活动方案,工程承包网站有哪些1【强制】不要在 foreach 循环里进行元素的 remove/add 操作。 remove 元素请使用 Iterator方式#xff0c;如果并发操作#xff0c;需要对 Iterator 对象加锁。 正例#xff1a; ListString list new ArrayList(); list.add(1);list.add(…1【强制】不要在 foreach 循环里进行元素的 remove/add 操作。 remove 元素请使用 Iterator方式如果并发操作需要对 Iterator 对象加锁。 正例 ListString list new ArrayList(); list.add(1);list.add(2); IteratorString iterator list.iterator(); while (iterator.hasNext()) { String item iterator.next(); if (删除元素的条件) { iterator.remove(); } } 反例 for (String item : list) { if (1.equals(item)) { list.remove(item); } } 2【强制】Object 的 equals 方法容易抛空指针异常应使用常量或确定有值的对象来调用 equals。 正例test.equals(object); 反例object.equals(test); 3 【推荐】循环体内字符串的连接方式使用 StringBuilder 的 append 方法进行扩展 正例 StringBuilder sb new StringBuilder(start); for (int i 0; i 100; i) { sb.append(hello); } String result sb.toString(); 这样可以避免在循环中创建过多的临时字符串对象提高了性能和节省了内存。 如果是在多线程环境下进行字符串操作可以考虑使用 StringBuffer它与 StringBuilder 类似但是线程安全的。 总之使用 StringBuilder 或 StringBuffer 的 append 方法来处理循环内的字符串连接可以提高性能、降低内存消耗。 4【强制】创建线程或线程池时请指定有意义的线程名称方便出错时回溯。 正例 public class TimerTaskThread extends Thread { public TimerTaskThread() { super.setName(TimerTaskThread); ... } } 5【参考】volatile 解决多线程内存不可见问题。对于一写多读是可以解决变量同步问题 但是如果多写同样无法解决线程安全问题。如果是 count操作使用如下类实现 AtomicInteger count new AtomicInteger(); count.addAndGet(1); 如果是 JDK8推 荐使用 LongAdder 对象比 AtomicLong 性能更好减少乐观锁的重试次数。 【推荐】表达异常的分支时少用 if-else 方式这种方式可以改写成 if (condition) { ... return obj; } // 接着写 else 的业务逻辑代码; 说明如果非得使用 if()...else if()...else...方式表达逻辑【强制】避免后续代码维 护困难请勿超过 3 层。 正例超过 3 层的 if-else 的逻辑判断代码可以使用卫语句、策略模式、状态模式等来实现 其中卫语句示例如下 public void today() { if (isBusy()) { System.out.println(“change time.”); return; } if (isFree()) { System.out.println(“go to travel.”); return; } System.out.println(“stay at home to learn Alibaba Java Coding Guidelines.”); return; } 6【强制】注意 Math.random() 这个方法返回是 double 类型注意取值的范围 0≤x1能够 取到零值注意除零异常如果想获取整数类型的随机数不要将 x 放大 10 的若干倍然后 取整直接使用 Random 对象的 nextInt 或者 nextLong 方法。 7. 【强制】获取当前毫秒数 System.currentTimeMillis(); 而不是 new Date().getTime(); 说明如果想获取更加精确的纳秒级时间值使用 System.nanoTime()的方式。在 JDK8 中 针对统计时间等场景推荐使用 Instant 类。 8 你提到的情况是Java中String类的split方法的一个常见陷阱。split方法用正则表达式作为分隔符来分割字符串并返回一个字符串数组。但是如果输入字符串的末尾有分隔符那么根据split方法的实现这些末尾的空字符串可能不会被包含在结果数组中。 例如你给出的代码 javaCopy Code String str a,b,c,,; String[] ary str.split(,); System.out.println(ary.length); 输出的结果是3而不是预期的5因为split方法默认会丢弃末尾的空字符串。如果你想要包含这些空字符串你需要使用split方法的另一个版本它接受一个第二个参数这个参数是一个整数表示应该应用模式的次数。如果这个参数是负数那么模式将会被应用尽可能多的次数并且数组可以有任意长度末尾的空字符串也会被包括在内。 修改后的代码如下 javaCopy Code String str a,b,c,,; String[] ary str.split(,, -1); System.out.println(ary.length); 正例 StringUtils.split(propertyName, .) //StringUtils.split 方法  public static String[] split(String str, String separatorChars) {         return splitWorker(str, separatorChars, -1, false);     } 这时输出的结果将是5因为设置了-1split方法会保留所有的分隔符后面的空字符串。 当使用split方法时如果你需要访问数组中特定的索引确保先检查数组的长度以避免IndexOutOfBoundsException异常。例如 javaCopy Code if (ary.length 3) { String someValue ary[3]; // 安全访问因为已经检查了数组长度 } else { // 处理数组长度不足的情况 } 这样的检查可以确保即使数组没有你期望的那么多元素你的代码也不会抛出异常。 9【推荐】setter 方法中参数名称与类成员变量名称一致this.成员名 参数名。在 getter/setter 方法中不要增加业务逻辑增加排查问题的难度。 反例 public Integer getData() { if (condition) { return this.data 100; } else { return this.data - 100; } } 10 在设计接口时为了避免对已有代码造成影响不应该修改已经在使用的接口的方法签名。这样可以保持向后兼容性并确保接口调用方的代码不需要修改。 当一个接口过时时添加Deprecated注解是一种良好的做法。通过Deprecated注解我们可以明确地将过时的方法标记出来并提供一些额外的信息例如推荐使用的新接口或服务。 下面是一个示例 javaCopy Code public interface MyInterface { /** * deprecated This method is deprecated. Use the newMethod() instead. */ Deprecated void deprecatedMethod(); void newMethod(); } 在上述示例中我们在deprecatedMethod()方法上添加了Deprecated注解并通过注释明确说明该方法已经过时推荐使用newMethod()方法作为替代。 通过这样的做法我们能够清楚地向接口调用方传达关于过时方法的信息并提供他们使用替代方法的建议。这样可以减少对接口调用方的影响并帮助他们平稳地迁移到新的接口或服务上。 总结起来确保遵循接口设计原则尽量避免修改已有接口的方法签名而对于过时的接口使用Deprecated注解并提供相关信息是一种良好的做法。
http://www.pierceye.com/news/171709/

相关文章:

  • 如何学习网站建设app嘉兴建站软件
  • 驻马店市建设工程网站平面设计培训班学费一般多少百度贴吧
  • 长沙网络建设的网站免费的个人简历模板word下载
  • 网站维护简单吗wordpress绿色两栏响应式主题
  • 二手站网站怎做福州网站建设的公司哪家好
  • dw如何做网站后台佛山行业网站建设
  • 如何做网站轮播大图简单网页制作成品代码
  • 网站怎么做uc整合查企业网站
  • 网站没被收录什么原因网站排名点击工具
  • 江西南昌建设厅网站商品展示软件
  • 眼镜企业网站建设方案2015做那些网站致富
  • 创建个人网站的流程建设网站聊天室
  • cms 学校网站上海模板网站
  • 网站建设投资风险分析公司做的网站费用如何做账
  • 网站建设费用核算科目DW做的网页用网站打不开
  • wordpress标签搜索引擎嘉兴市做网站优化
  • 网站更换关键词怎么做好wordpress post fonts
  • 厦门优化网站排名网站备案转服务器
  • 怎样做pdf电子书下载网站做旅行攻略的网站
  • 怎样做网站推广啊抖音网站的flash怎么做
  • 网站建设小说网站建设目标是什么意思
  • 如何做一个好的网站中英文网站好处
  • wordpress站点版权设置晋中建设集团网站
  • 怎么夸一个网站做的好看烟台百度网站推广
  • 佛山市网站建设分站多少钱企业门户账号是什么
  • 大中型网站开发价格铜山区建设局局网站周保春
  • 为什么有人做商城优惠券网站卖科技风格设计网站
  • 企业网站的需求分析是做网站编辑还是做平面设计
  • 超酷 flash 网站淮南网红餐厅
  • 湛江网站建设开发株洲关键词seo优化服务商