码农生涯杂记_3

        坚持到今天还能好好上班的同志们的老板,都不是好老板。。。快过年了,我还依旧战斗在工作岗位上。。。估计CSDN都没几个人上班了吧。。。估计这个是马年的最后一篇博客了。。好久没有写技术博客了,今天来聊聊技术层面的东西。

        我一直坚定的认为,编程是一门艺术。好的代码可以规避很多的风险,而且看起来简单易懂,优雅大方。一旦写出来这样的代码,那你身边的妹子一定也很多,你问我为什么妹子会多?你的工资高了,妹子当然愿意理你了。。。但是如果你的代码写的一般般,而且总是因为不能规避风险而导致bug,那你只是一个普通程序员。如果你的代码本身就有bug,那就不在本文的讨论范围之内了。

        举一个栗子:

"XX".equals(man.name);// 好

man.name.equals("XX");// 不好
        为什么说第一行代码比第二行代码好呢? 大家应该都知道,这个是为了规避NullPointException。空指针的错误,是我们经常遇到的。但是如果能规避,还是应该尽量规避的。(如果不懂得,我解释一下。假设man.name如果不存在,那么第二种equals比较起来,就会出现空指针的异常。但是第一个就不会出现)但是这样还是没有做到尽善尽美,因为如果man都不存在,man.name还是会抛异常的。所以我觉得第一个大家应该在编程时注意的就是:不要出现空指针的异常。因为这样的异常,我们是可以规避的。可能多一个if语句判空,就能省好多事。

        再举一个栗子:

<span style="white-space:pre">		</span>List<String> list = new ArrayList<String>();
		for(int i=0;i<10;){
			list.add(String.valueOf(i++));
		}

<span style="white-space:pre">		</span>//第一种循环遍历
		for (String str : list) {
			if("5".equals(str)){
				list.remove(str);
			}
		}
		
<span style="white-space:pre">		</span>//第二种循环遍历
		Iterator<String> iterator =  list.iterator();
		while(iterator.hasNext()){
			if("5".equals(iterator.next())){
				iterator.remove();
			}
		}
        大家看一下这两种遍历方式,不难看出,第一种遍历,list一旦出现了5这个元素,会将他remove掉,这个时候,再往后面遍历时,就会报错。但是第二种方式就不一样了。他用hasNext判断后,先调用next方法,再比较。第一种便利实际上是比较后才调用next方法。不要忽略这些细节,就是这些细节往往是起决定性作用的。大家在写代码的时候,一定要多注意这样的细节之处,错误可以犯,但是过后一定要总结为什么出现这样或那样的错误,为什么这样写会报错,而那样写就没问题。这样才能一点点的提高。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值