zoukankan      html  css  js  c++  java
  • JAVA编程规范

    1 接口类中的方法和变量都不要加任何的修饰符号,public也不要加。因为经过编译的class文件会自动加上这些

    public interface CalInterface {
     
        float PI = 3.14159f;//定义用于表示圆周率的常量PI
     
        float getArea(float r);//定义一个用于计算面积的方法getArea()
     
        float getCircumference(float r);//定义一个用于计算周长的方法getCircumference()
    }
    public abstract interface CalInterface
    {
      public static final float PI = 3.14159F;
     
      public abstract float getArea(float paramFloat);
     
      public abstract float getCircumference(float paramFloat);
    }

    2 Float型,DOUBLE型计算问题

      如果涉及到小数运算,对于float和double型,不能够使用‘+’,'-' '=='等运算。必须转成BigDecimal

      

    BigDecimal a = new BigDecimal("1.0");
    BigDecimal b = new BigDecimal("0.9");
    BigDecimal c = new BigDecimal("0.8");
    BigDecimal x = a.subtract(b);
    BigDecimal y = b.subtract(c);
    if (x.compareTo(y) == 0) {
    System.out.println("true");
    }
     
    如上所示 BigDecimal 的等值比较应使用 compareTo()方法,而不是 equals()方法。
    说明:equals()方法会比较值和精度(1.0 与 1.00 返回结果为 false),而 compareTo()则会忽略精度。
     
    禁止使用构造方法 BigDecimal(double)的方式把 double 值转化为 BigDecimal 对象。
    说明:BigDecimal(double)存在精度损失风险,在精确计算或值比较的场景中可能会导致业务逻辑异常。
    如:BigDecimal g = new BigDecimal(0.1F); 实际的存储值为:0.10000000149
    正例:优先推荐入参为 String 的构造方法,或使用 BigDecimal 的 valueOf 方法,此方法内部其实执行了
    Double 的 toString,而 Double 的toString 按 double 的实际能表达的精度对尾数进行了截断。
    BigDecimal recommend1 = new BigDecimal("0.1"); BigDecimal recommend2 = BigDecimal.valueOf(0.1);
     
    3 集合变成数组
    List<String> list = new ArrayList<>(2);
    list.add("guan");
    list.add("bao");
    String[] array = list.toArray(new String[0]);
    注意,toArray方法入参必须是长度是0,通过自适应创建性能是最好的
    4 数组变集合
    String[] str = new String[] { "chen", "yang", "hao" };
    List list = Arrays.asList(str);
    注意,返回的List是
    private static class ArrayList<E> extends AbstractList<E>
            implements RandomAccess, java.io.Serializable
        {

    该ArrayList是Arrays的内部类,它不支持add,remove,clearall等方法

  • 相关阅读:
    P5664 Emiya 家今天的饭
    P3944 肮脏的牧师
    P1233 木棍加工
    P4017 最大食物链计数
    P1287 盒子与球
    Java之未来已来(1)
    java-信息安全(二)-对称加密算法DES,3DES,AES,Blowfish,RC2,RC4
    java-信息安全(一)-BASE64,MD5,SHA,HMAC,RIPEMD算法
    SpringBoot集成Caffeine作本地缓存
    联想拯救者-触摸板手势
  • 原文地址:https://www.cnblogs.com/juniorMa/p/14974267.html
Copyright © 2011-2022 走看看