Java语言的丰富多彩,很大程度上是体现在丰富的类库上的。加之其开源,不计其数的各种第三方包就更不胜枚举。面对这些前人的财富,我们没有理由“装看不见”,而一定是要为我所用的。
第三方包姑且不论,只说JDK中的类库,我们应该掌握。只是到知道都有哪些功能的地步,用的时候可以再细查文档。最怕那些“乃不知有汉”的程序员。
还有一种程序员并非“乃不知有汉”型,而是无视既有的类库,属于“科研”型。其实,通过使用标准类库,你可以充分利用这些编写标准类库的专家的知识,以及在你之前其他人的使用经验。所以,不必浪费时间为那些与你工作关系不大的问题提供特别的解决方案,你应该把时间花在你的应用上,而不是底层的细节上。
举一个反例,一个项目中,BOSS在白板上给几个主要技术人员讲解他昨晚苦思冥想后得出的外部排序算法,并要求他们实现。参会的还有一位同行评审专家,以及我以QA身份参加。技术人员们马上就几处细节问题向BOSS发问并讨论起来。这时我以QA的身份建议项目组停止这些违背验证过的、不知正确与否的、效率未知的、实现难度未知的“研发”,因为“外部排序”算法“自古有之”,教科书上、互联网上算法甚至源码都有,拿来使用即可。最后,在同行专家的支持下终于说服了BOSS。几个技术人员还因而请我吃了冰棍儿(要不他们几个可就惨了)
书上本条中有一个随即数函数的例子。另外作者还建议大家在庞大的标准库中,至少应该熟悉java.lang和java.util,还有一些java.io的内容。
【Effective Java 学习笔记】系列连载专题请见:
http://tonylian.iteye.com/categories/64208