我本人一直以来犯的错误,在看了《Think In Java》后才抓了出来

 
我本人一直以来犯的错误,在看了《 Think In Java 》后才抓了出来
 
       也许你是只老鸟,也许你的程序编的很精,可是,在你的程序生活,你也许没有注意到一些“常识性”的问题,由于有些时候咱们不须要去注意,咱们的程序照样可以运行得飞快,可是若是那天有一个无聊的人问你一个像这样的问题,原本他是很是崇拜你的,但是由于你的一个疏忽就从他的心理掉价了。呵呵,开个玩笔,有一些东西咱们还真的不得不注意,由于说不定咱们那天就在这个小沟里翻了。我我的也是个CODER,一直被外界的一些花哨的东西所忽悠着,一直就没有心来看这些书,大体一翻,都懂,没有什么看的。可是,懂是懂的,但是有不少的因此然,还真的说不出来。
 
1 、Java 里面默认值的误解:
这是Eclipse下面的一张切图,我相信你是很熟悉的,JAVA里面不是说,当变量没有赋值不是有自动的默认值,为何会在下面出错呢!?:
这个不是SUN公司的错,怪只怪咱们没有仔细看文档,由于咱们所看的书中均可能是这样的说“若是没有分配值,系统会为变量自动分配置默认值”,咱们就信觉得真了,有些地方也确实是行得通的,在有时编程的时候也遇到没有赋值就编译通示过的提示,也没有多去想。这个所说的默认值是指 类成员变量在没有赋值的时候会赋以默认值, 其它局部变量是不可以享受这种待遇的。这下懂了吧,为何会出错了,这里必定要给以初使值才行。
 
2 、不多使用接口
固然这不是说我有这处毛病,大家就有,我只是说我本身,以避免在黑暗中被拍了砖头@。至少我相信有一大部朋友是这样的,拿到一个东西,就直接在类里面去实现,由于为何呢?没有必要吗,为何要去多写一个接口呢,这不是明摆着给本身找麻烦吗?
       说实话,就在写这篇自我检讨之前,我一直都是这样的,能够说是历来没有写过接口,也许您会说,“历来没有写过接口也算是学JAVA”,不过无论你怎么说,确实没有写过,全部写的都是直接在类中实现(注:我这里指的类表示非接口类)。若是有些小程序,确实不须要写,由于实现也很简单,也可能之后不须要继承,也不须要在之后的某年某月再次从新优化一下,固然没有必要了。
但是,这是一个习惯问题,当你走路习惯了左边,那你走路的时候就不会走右边,你就会在不知觉中去和车车亲个嘴。咱们应该培养本身的这种思惟,让咱们无论在大小项目中,都会想到要这么作。有句古话叫“一屋不扫,何以扫天小”就是这个道理,而不是报以“大丈夫不拘小节”的态度。
你可能对这个为何要写接口仍是不明白,就像《Think In Java》这样说的,“若是你如今写了一个功能,之后发现这个功能执行起来速度不理想的时候,若是你去代码中改,那有可能会是增长BUG进去,若是咱们使用了接口,就不用这么麻烦了,方法重写就很好办”,我想也是这样的,我就常常犯这样的错误,有些时候随着时间的推移,连本身写的程序,逻辑都还要慢慢去理。
 
三、让一个类去作特定的事情
       在《Think In Java》提到,把每一个对象都当成服务的提供者,为何这样说呢?仍是说现实的比喻吧,就像是一我的,咱们若是但愿他什么都会,结果也多是他什么都会,可是没有同样东西是可以拿出手的,都是半懂。而若是把这些东西分给多我的去学习,只要他们每人学本身那一部份,结果是每一个人懂得都不是那么多,也不会有那么大的心理负担去学习,最后都学得很精,结果综合的深度,每一个人都可以独挡一面,就是这个道理。
       我我的也是常常犯这样的错误,有些时候,一个类下来,什么乱七八糟的功能都有,结果后来多得连本身有时都分不清楚,那些方法在用,那些方法没有用了。
 
四、根本不注重合理使用访问控制:public, private, protected
       我本身写程序的时候,想到什么样方便,就怎么样使用,特别是对于类变量,无论定义成PUBLIC仍是PRIVATE,均可以在当前类中使用无阻,这也应该就是让我不注意的缘由吧。若是彻底是本身使用,可能出错的机率不会太大,由于我的对这个应该仍是熟悉的,可是若是你的应用程序须要发布,用户来使用就会出错,由于他们调用一个不可以独立执行的方法或者是变量。又或者是一个原本不须要对外公开的方法,你对外公开了,外面的用户使用了,而在你后面的版本中,你又把这个方法更改了,那么使用者在调用这个方法的时候就会出错,至少你写的程序分健壮性就要打个问号了。
 
这是我如今发现的我的毛病,挑出来,但愿之后不要再犯。最后见意, 有经验的程序员,不要忘了看看《Think In Java》,由于大家更容易犯错,而在本身的错误中生存下去。