zoukankan      html  css  js  c++  java
  • JAVA开发中151个建议

    1.不在常量和变量中出现混淆的字母。

    2.莫让常量蜕变成变量。

    3.三元操作符的类型必须一致。

    4.避免带有变长参数的方法重载

    5.别让null值和空值威胁到变长方法(KISS原装,Keep It simple stupid即懒人原装)

    6.覆写变长方法也循环蹈矩

    (1)重写方法不能缩小访问权限

    (2)参数列表必须与被重写方法相同

    (3)返回类型必须与被重写的方法相同或是其子类

    (4)重写方法不能抛出新的异常,或值超出父类范围的异常,但是可以抛出更少的异常或者不抛出异常。

    7.警惕自增的陷阱

      理解:i++和++i; i++表示的是先赋值后加1;++i表示的是先加1后赋值。

      public class Client{

        public static void main(String[]args){

          int count=0;

          for(int i=0;i<10;i++){

           count=count++;

           }
          System.out.println("count="+count);

         }

      }

     这个程序的结果为0;

     count++是一个表达式,是返回值,它的返回值就是count自加前的值,javas对自身加是这样处理的:首先把count的值(注意的是值,不是引用)拷贝到一个临时变量去,然后对count变量加1,最后返回临时变量去的值。

    程序循环执行步骤:步骤1:jvm 把count 值(其值是0)拷贝到临时变量区;步骤2:count值加1,这时候count的值是1;

    步骤三:返回临时变量区的值,注意这个值是0,没有修改过,步骤4:返回赋值给count,此时count值被重置成0

    8.不要让旧语法困扰你

    9.不要主动进行垃圾回收:因为垃圾回收机制:会 停止所有的响应,然后才检查内存中是否有可回收对象。

    10.推荐toString方法。因为java提供的默认toString方法不友好,打印出来看不懂,不覆写不行。

    11.覆写equals方法必须覆写hashCode方法

    12.不要在本类中覆盖静态导入的变量和方法

    13.显示声明UID

    14.避免用序列化类在构造函数中为不变量赋值: 不变量:指带有final标识的属性是不变量。只能赋值一次,不能重复赋值。反序列化时构造函数不会被执行

    15.避免为final变量复杂赋值

    16.避免instanceof非预期结果:

         instanceof 是一个简单的二元操作符,他是用来判断一个对象是否是一个类的实类的,其操作类似于>=、==,非常简单

         instanceof 只能用于对象的判断,不能用于基本类型的判断。

        null instanceof String ;false:   若左操作数是null,结果就直接返回false,不再运算右操作数是什么类。

    17.用偶判断,不用奇判断。因为:java取余(%标识符)算法
    ,模拟如下:public static int remainder(int dividend,int divisor){

      return dividend-dividend/divisor*divisor;
    }

    18.优先选择基本类型:安全、性能、稳定方面都好。

      基本类型可以先加宽,再转变成宽类型的包装类型,但不能直接转变成宽类型的包装类型

    19.不要随便设置随机种子

    Random r=new Random(); 

    设置随机种子Random r=new Random(10000);

    20.接口中不要存在实现代码,因为它是一种契约。

    21:静态代码一定要先声明后赋值

     static {

      i=100;
    }

    static int i=1;

    22.不要重写静态方法,即使覆盖了后,也不生效

    23.构造函数尽量简化

    24.

  • 相关阅读:
    ubuntu安装gradle
    ubuntu文件查找
    接口服务flask的负载均衡部署
    区块链节点网络的nginx转发部署
    typescript检查包之间是否有循环依赖
    shiro对事务的影响
    防止xss(脚本攻击)的方法之过滤器
    Mysql批量更新速度慢的解决方案
    springBoot的三种启动方式
    mybatis的注解开发之三种动态sql
  • 原文地址:https://www.cnblogs.com/sunson/p/2597055.html
Copyright © 2011-2022 走看看