各种愚蠢代码集锦

1. 对自己new出来的对象判断是否是null,比如:

Map map = new HashMap(); if (map != null){ ... }

上面用if对自己刚刚new的对象立即进行判断,其实这种判断完全是多余的,我经常这种搞笑代码。

2. 不区分静态变量,实例变量,临时变量(局部变量),因为从技术层面上来说,实例变量可以代替静态变量与局部变量,而且run起来,不会有任何技术问题。所以经常经常看到很多不负责任的程序员乱写,经常把应该是方法级别的临时变量,声明为实例变量;或者应该是静态变量的,声明为实例变量。这种代码很可恶,会引起很多问题:代码结构混乱,非常不够OO(面向对象)。因为要把这种问题上升到OO层面的话,结论就是,经常写这种代码的人,基本没有OO的概念。

3. 没用好if ... else ... ,比如:
Object obj = ...; if(obj == null){ ... } if(obj != null){ ... }
这种代码虽然run起来没有问题,但是,从技术层面来说,也是非常stupid,原因:两次判断,效率不高;本来是互斥条件,让阅读者不容易看懂逻辑,但是这种就看不出这种互斥条件的效果了,增加了代码的阅读难度。正确的应该是:
if(obj == null){ ... } else { ... }
要是写成下面这种也有点stupid:
if(obj == null){ ... } else if(obj != null){ ... }
上面的代码,若obj!= null,则执行else分支,增加了一次无效的检查,降低了效率。因为这种多余的检查编译器是没办法进行优化编译的,因为编译器是自动判断的。

4.不必要的强制类型转换,比如:

HttpServletRequest request = ... Locale locale = (Locale)request.getLocale();

request.getLocale()返回的类型就是Locale,就不需要强制类型转换了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值