作家
登录

关于Java习惯用法的总结

作者: 来源: 2017-09-05 12:03:04 阅读 我要评论

  • hashCode()最简单的┞俘当实现就是简单地return 0;固然这个实现是精确的,然则这会导致HashMap这些数据构造运行得很慢。
  • 参考:java.lang.Object.hashCode()。
  • 实现clone()

    1. class Values implements Cloneable { 
    2.   String abc; 
    3.   double foo; 
    4.   int[] bars; 
    5.   Date hired; 
    6.  
    7.   public Values clone() { 
    8.     try { 
    9.       Values result = (Values)super.clone(); 
    10.       result.bars = result.bars.clone(); 
    11.       result.hired = result.hired.clone(); 
    12.       return result; 
    13.     } catch (CloneNotSupportedException e) {  // Impossible 
    14.       throw new AssertionError(e); 
    15.     } 
    16.   } 
    17.  
    • 应用 super.clone() 让Object类负粜ゴ建新的对象。
    • 根本类型域都已经被精确地复制了。同样,我们不须要去克隆String和BigInteger等弗成变类型。
    • 手动对所有的非根本类型域(对象和数组)进行深度复制(deep copy)。
    • 实现了Cloneable的类,clone()办法永远不要抛CloneNotSupportedException。是以,须要捕获这个异常并忽视它,或者应用不受检异常(unchecked exception)包装它。
    • 不应用Object.clone()办法而是手动地实现clone()办法是可以的也是合法的。
    • 参考:java.lang.Object.clone()、java.lang.Cloneable()。

    应用StringBuilder或StringBuffer

    1. Random rand = new Random(); 
    2.  
    3. // Between 1 and 6, inclusive 
    4. int diceRoll() { 
    5.   return rand.nextInt(6) + 1; 
    6.  
    • 老是应用Java API办法去生成一个整数范围内的随机数。
    • 不要试图去应用 Math.abs(rand.nextInt()) % n 这些不肯定的用法,因为它的结不雅是有误差的。此外,它的结不雅值有可能是负数,比如当rand.nextInt() == Integer.MIN_VALUE时就会如斯。
    • 参考:java.util.Random.nextInt(int)。

    应用Iterator.remove()

    1. void filter(List<String> list) { 
    2.   for (Iterator<String> iter = list.iterator(); iter.hasNext(); ) { 
    3.     String item = iter.next(); 
    4.     if (...) 
    5.       iter.remove(); 
    6.   } 
    7.  
    • remove()办法感化在next()办法比来返回的条目上。每个条目只能应用一次remove()办法。
    • 参考:java.util.Iterator.remove()。

    返转字符串

    1. String reverse(String s) { 
    2.   return new StringBuilder(s).reverse().toString(); 
    3.  
    • 这个办法可能应当参加Java标准库。
    • 参考:java.lang.StringBuilder.reverse()。

    启动一条线程


      推荐阅读

      非常实用的Linux命令行技巧

    我们天天应用很多Linux敕令行。我们大年夜网上知道一些技能,但如不雅我们不去演习,我们就有可能忘记。我决定做一个关于技能和桥绫桥的列表,这些技能和桥绫桥对于你来说可能是已经忘记的,或>>>详细阅读


    本文标题:关于Java习惯用法的总结

    地址:http://www.17bianji.com/lsqh/37140.html

    关键词: 探索发现

    乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

    网友点评
    自媒体专栏

    评论

    热度

    精彩导读
    栏目ID=71的表不存在(操作类型=0)