作家
登录

关于Java习惯用法的总结

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

  •   // Compare by firstName, break ties by lastName, finally break ties by birthdate 
  •   public int compareTo(Person other) { 
  •     if (firstName.compareTo(other.firstName) != 0) 
  •       return firstName.compareTo(other.firstName); 
  •     else if (lastName.compareTo(other.lastName) != 0) 
  •       return lastName.compareTo(other.lastName); 
  •     else if (birthdate < other.birthdate) 
  •       return -1; 
  •     else if (birthdate > other.birthdate) 
  •       return 1; 
  •     else 
  •       return 0; 
  •   } 
  •  
    • 老是实现泛型版本 Comparable 而不是实现原始类型 Comparable 。因为如许可以节俭代码量和削减不须要的麻烦。
    • 只关怀返回结不雅的┞俘负号(负/零/正),它们的大年夜小不重要。
    • Comparator.compare()的实现与这个类似。
    • 参考:java.lang.Comparable。
    1. // Make array 'a' smaller to newLen 
    2.  
    3. byte[] a = (...); 
    4.  
    5. byte[] b = new byte[newLen]; 
    6.  
    7. for (int i = 0; i < b.length; i++) // Goes up to length of B 
    8.  
    9. b[i] = a[i]; 
    10.  
    11. a = b;  

    (优先)应用标准库的办法:

    1. a = Arrays.copyOf(a, newLen); 
    • 参考:java.util.Arrays.copyOf(T[], int)。
    • 参考:java.util.Arrays.copyOfRange(T[], int, int)。

    把4个字节包装(packing)成一个int

    1. int packBigEndian(byte[] b) { 
    2.   return (b[0] & 0xFF) << 24 
    3.        | (b[1] & 0xFF) << 16 
    4.        | (b[2] & 0xFF) <<  8 
    5.        | (b[3] & 0xFF) <<  0; 
    6.  
    7. int packLittleEndian(byte[] b) { 
    8.   return (b[0] & 0xFF) <<  0 
    9.        | (b[1] & 0xFF) <<  8 
    10.        | (b[2] & 0xFF) << 16 

        推荐阅读

        非常实用的Linux命令行技巧

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


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

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

    关键词: 探索发现

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

    网友点评
    自媒体专栏

    评论

    热度

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