Java语言的丰富多彩,很大程度上是体现在丰富的类库上的。加之其开源,不计其数的各种第三方包就更不胜枚举。面对这些前人的财富,我们没有理由“装看不见”,而一定是要为我所用的。
第三方包姑且不论,只说JDK中的类库,我们应该掌握。只是到知道都有哪些功能的地步,用的时候可以再细查文档。最怕那些“乃不知有汉”的程序员。
还有一种程序员并非“乃不知有汉”型,而是无视既有的类库,属于“科研”型。其实,通过使用标准类库,你可以充分利用这些编写标准类库的专家的知识,以及在你之前其他人的使用经验。所以,不必浪费时间为那些与你工作关系不大的问题提供特别的解决方案,你应该把时间花在你的应用上,而不是底层的细节上。
举一个反例,一个项目中,BOSS在白板上给几个主要技术人员讲解他昨晚苦思冥想后得出的外部排序算法,并要求他们实现。参会的还有一位同行评审专家,以及我以QA身份参加。技术人员们马上就几处细节问题向BOSS发问并讨论起来。这时我以QA的身份建议项目组停止这些违背验证过的、不知正确与否的、效率未知的、实现难度未知的“研发”,因为“外部排序”算法“自古有之”,教科书上、互联网上算法甚至源码都有,拿来使用即可。最后,在同行专家的支持下终于说服了BOSS。几个技术人员还因而请我吃了冰棍儿(要不他们几个可就惨了)
书上本条中有一个随即数函数的例子。另外作者还建议大家在庞大的标准库中,至少应该熟悉java.lang和java.util,还有一些java.io的内容。
【Effective Java 学习笔记】系列连载专题请见:
http://tonylian.iteye.com/categories/64208
分享到:
相关推荐
5. **版本控制**:"V2.1.2"表示这是固件库的第2个大版本,第1个小版本,第2次修订。随着MCU的更新和错误修复,固件库也会定期发布新版本,确保开发者能获取到最新的功能和性能优化。 使用兆易创新的GD32F30x固件库...
在本文中,我们将深入探讨如何使用C++中的轻量级桌面图形用户界面(GUI)库——FLTK(Fast Light Tool Kit)。FLTK以其简洁、高效和跨平台的特性,成为许多开发者快速创建GUI应用程序的首选工具。让我们通过一个简单...
在C语言环境下,虽然原生不支持JSON,但有很多第三方库提供了对JSON的支持,其中cJSON库是一个广泛使用的轻量级选项。 cJSON库是由Dave Gamble开发的一个开源项目,其设计目标是提供一个简单、小巧且高效的C语言...
### 微软企业库5.0学习之路 #### 第一步:基本入门 企业库是由微软提供的一...通过以上十个步骤的学习,开发者不仅可以掌握企业库5.0的核心功能,还能深入了解如何将其应用于实际项目中,以提高开发效率和软件质量。
《C++11/14高级编程 Boost程序库探秘 中文版 第三版》是罗剑锋先生的力作,由清华大学出版社出版。这本书详细介绍了C++11和C++14标准的新特性和Boost程序库的深度应用,旨在帮助广大的C++程序员和爱好者提升技能,更...
SLAM(Simultaneous Localization and Mapping,同时定位与建图)是机器人领域中的关键...通过阅读《SLAM十四讲》的第七章并动手实践,我们可以深入了解这些库的工作原理和使用技巧,进一步提升在SLAM领域的专业能力。
SkinSE只用到了windows几个底层的核心库,没有用到(MFC/ATL等第三方库),采用 纯API编写,采用C语言导出方式,增强可移植性。 4.3.4 DotNetSkin DotNetSkin的用法和IrisSkin差不多。此外,网站提供了几个免费的很...
在《Java面试小抄第一版》中,作者库森详细整理了一系列Java编程语言和相关技术栈的面试知识点,这些知识点覆盖了Java基础、面向对象、异常处理、数据结构、集合框架、泛型、反射、序列化等多个方面,是Java开发者...
4. **社区支持**:由于Gson是Google的产品,因此拥有更广泛的社区支持和丰富的第三方扩展。 在选择JSON解析库时,开发者需要根据项目需求和性能要求进行权衡。对于小型项目或性能要求不高的应用,Fastjson可能是更...
在这个场景下,30W代表有三十万条数据,这是一份用于测试的数据库样本,可以用来检验数据库在处理大量数据时的效率、稳定性以及查询性能。 首先,我们要了解MySQL是一个开源的关系型数据库管理系统,广泛应用于各种...
Altium Designer的元件库管理功能强大,用户不仅可以使用内置库,还可以创建自定义库,导入第三方库,或者共享和更新社区中的公共库。库文件通常以.schlib(原理图库)、.pcblib(PCB封装库)和.3DLIB(3D模型库)...
6. 三态门:了解三态门的定义和输出状态,了解高电平、低电平和高阻状态的概念。 7. ASCII 码:了解ASCII 码的定义和表示形式,了解字符“A” 和“E” 的ASCII 码。 8. 机器数表示形式:了解机器数的定义和表示...
第三讲 云计算及其影响 第四讲 物联网及其影响 第五讲 数据挖掘方法与技术 第六讲 粗糙集 第七讲 人工神经网络 第八讲 分类数据挖掘 第九讲 关联规则挖掘 第十讲 聚类模式挖掘 第十一讲 web 数据挖掘 第十二讲 数据...
这个压缩包文件提供了书中所涉及的一些第三方库,这些库在实现SLAM算法时扮演着至关重要的角色。 1. **Ceres Solver**:Ceres Solver是一个开源的非线性优化库,专门用于解决最小二乘问题。在SLAM中,我们需要最小...
Python标准库是Python语言的一部分,它包含了各种模块和函数,这些模块和函数可以直接导入使用,无需安装第三方库。标准库的目的是为Python程序员提供一套丰富的基础工具集,以应对各种常见的编程任务,如文本处理、...
第三十一章列出了许多系统配置参数,如系统最大文件描述符数、最大文件大小等,对于调整系统性能和限制有一定的参考价值。 31. **DES加密与密码学(DESEncryption and Password)** 最后一章虽然只提及DES加密和...
标签"免费"和"开源"进一步确认了这个资源库的开放性,使用者无需支付费用,且可以查看源代码或数据,这为学术研究和商业应用提供了便利条件,降低了进入门槛。 压缩包内的文件名称列表包括s37、s13、s30、s23、s21...
6. 字体版权:在使用第三方字体库时,需注意字体的版权问题。部分字体可能受到版权保护,未经授权的商业使用可能会引起法律纠纷。因此,了解并遵守字体的使用许可是非常重要的。 7. 字体管理:为了便于查找和管理...