Apache Commons和Google Guava
Java的成功很大程度上得益于开源软件的成功,尤其是构建上开源软件基础上的开源生态,这才是它能够繁荣、出圈的真正原因。
在开源的世界中,Apache的大名恐怕很少会有工程师会不知道,现今几乎一大部分业界知名开源软件,都在Apache的摇篮中
渡过了童年时代
。
要提高Java开发水平,除了自身要不断学习实践之外,还需要借鉴一些优秀的开源框架和开发工具,包括它们背后的设计思想和实现思路,比如IoC
、DI
、AoP
等、设计模式,既可以拿来就用,又能学到好的东西。
看源码不一定非得看Spring、Hadoop、Spark、Dubbo或RocketMQ这些重量级的开源框架,平常开发中使用的像Fastjson、Druid、Hikari、JUnit等轻量级的框架也是非常值得一看的。
另一个和Apache一样出名甚至更出名的就是Google:一个是全世界最大的开源软件基金会,一个是全世界最大的搜索引擎,出于自身业务的需要,他们都对Java进行了封装和扩展,分别是Apache Commons和Google Guava。
Apache Commons其实是一组开源中间件的统称,除了一些使用较少甚至被废弃的外,常用的包括下面这些。
Commons-BeanUtils:
JavaBean
反射的相关API
,提供操作Bean
的一些工具。Commons-Codec:包含一些通用的编解码算法,含语音编码器、
Hex
、Base64
以及URL encoder
。Commons-Collections:对Java集合的扩展和增强。
Commons-HttpClient:提供了可以工作于HTTP客户端的一个框架,但它已经被httpclient和httpcore所取代,且后者在持续更新和完善,对于新项目,最好使用httpclient。
Commons-FileUpload:对文件操作提供强大和高性能的封装。
Commons-IO:对Java
I/O
操作的封装。Commons-Lang:封装了一些
java.lang
中包装类型的扩展功能,Commons-Lang3是它的增强。Commons-Pool:提供了通用对象池接口,一个模块化的对象池实现。
同样,Google Guava也提供了一些常用工具。
基本工具类
:条件检查、简化Object
方法实现、排序和简化异常操作等。集合操作类
:这应该是Google Guava最成熟和为人所知的部分。缓存类
:本地缓存实现,支持多种缓存过期策略,仅支持单点。并发工具类
:让编写正确的并发代码更简单。字符串处理类
:包括分割、连接、填充等操作。扩展原生类型
:扩展Java的原生类型操作,包括某些无符号形式。I/O操作类
:对JavaI/O
操作的封装。事件总线
:以发布-订阅模式通信,但组件不需要显式地注册到其他组件中。反射工具类
:Java反射机制工具类。
感谢支持
更多内容,请移步《超级个体》。