zoukankan      html  css  js  c++  java
  • 《编写高质量代码》读书笔记一

    《编写高质量代码》读书笔记一
    这些建议,我们读过之后,觉得很有必要来分享一下,希望可以帮到你。
    少读书,多思考,提高对程序本身的认识。
    建议 1: 不要在常量和变量中出现容易混淆的字母
    public class Client {
        public static void main(String[] args)} {
            long i = 1l;
            System.out.println("Double i is: " + (i+i));
        }
    }

    实际结果:2
    --------------------------------------
    注意:字母“l”作为长整型标志时务必大写。
    --------------------------------------

    建议 2: 莫让常量蜕变成变量
    public class Client {
        public void mani (String[] args) {
            System.out.println("Const is: " + Const.RAND_CONST);
        }
    }

    interface Const {
        public static final int RAND_CONST = new Random().nextInt();
    }

    --------------------------------------
    注意:务必让常量的值在运行期保持不变。
    --------------------------------------


    建议 3: 三元操作符的类型必一致
    public class Client {
        int i = 80;
        String s = String.valueOf(i<100?90:100);
        String s1 = String.valueOf(i<100?90:100.0);
        System.out.println("Both equal: "+s.equals(s1));
    }

    实际结果:false
    String s1 = String.valueOf(i<100?90:100.0);// 100.0是浮点型

    建议 4: 避免带有变长参数的方法重载
    public class Client {
        //Method 1
        public void calPrice(int price, int discount) {
            //TODO
        }
        //Method 2
        public void calPrice(int price, int... discounts) {
            //TODO
        }
        public static void main(String[] args) {
            Client client = new Client();
            client.calPrice(49900, 75);
        }
    }

    哪个方法会被call? 为什么?
    来问我啊,哈哈哈哈

    建议 5: 别让null值和空值威胁到变长方法
    public class Client {
        
    }

    建议 6: 覆写变长方法也循规蹈矩

    建议 7: 警惕自增的陷阱

    建议 8: 不要让旧语法困扰你

    建议 9: 少用静态导入

    建议 10: 不要在本类中覆盖静态导入的变量和方法

    建议 11: 养成良好习惯,显式声明UID

    建议 12: 避免用序列化类在构造函数中为不变量赋值

    建议 13: 避免为final变量复杂赋值

    建议 14: 使用序列化类的私有方法巧妙解决部分属性持久化问题

    建议 15: break万万不可忘

    建议 16: 易变业务使用脚本语言编写

    建议 17: 慎用动态编译

    建议 18: 避免instanceof非预期结果

    建议 19: 断言绝对不是鸡肋

    建议 20: 不要只替换一个类

  • 相关阅读:
    java 多线程 Callable -- 分段处理一个大的list 然后再合并结果
    java实现 比较两个文本相似度-- java 中文版 simHash 实现 ,
    spring 多线程 写入数据库 和 写入 xml文件
    爬虫入门 手写一个Java爬虫
    java web 入门级 开发 常用页面调试方法
    Java 递归调用 recursive 给一个参数 返回一大堆
    javaWeb 基础知识
    用 eclipse 创建一个简单的 meaven spring springMvc mybatis 项目
    【题解】【LibreOJ Beta Round #5】游戏 LOJ 531 基环树 博弈论
    【题解】Popping Balls AtCoder Code Festival 2017 qual B E 组合计数
  • 原文地址:https://www.cnblogs.com/baoguo/p/5225655.html
Copyright © 2011-2022 走看看