美文网首页视觉艺术
常用的 jar 包都在这里了

常用的 jar 包都在这里了

作者: tommy_yang | 来源:发表于2020-05-10 17:17 被阅读0次

    更多精彩原创内容请关注:JavaInterview,欢迎 star,支持鼓励以下作者,万分感谢。

    题外话

    今天是母亲节,在这里提醒大家记得给自己的母亲送祝福哦!!!

    背景

    在 Java 开发工作中,我们接触了很多的 Jar 包,也使用了很多第三方 Jar 包,为了帮助大家统计整理,方便大家查找,故通过该文章来进行一次总结。

    commons-lang

    该工具包可以看成是对 java.lang 的扩展。提供了诸如 StringUtils, StringEscapeUtils, RandomStringUtils, Tokenizer, WordUtils 等工具类。

    
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-lang3</artifactId>
        <version>3.10</version>
    </dependency>
    
    

    commons-collections

    该工具包看成是 java.util 的扩展,大大简化了我们对 Java 集合的使用。

    
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-collections4 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-collections4</artifactId>
        <version>4.4</version>
    </dependency>
    
    

    commons-math

    该工具包专注于做数学工具,功能强大。

    
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-math3 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-math3</artifactId>
        <version>3.6.1</version>
    </dependency>
    
    

    commons-compress

    该工具包是一个压缩、解压缩文件的类库。可以操作ar, cpio, Unix dump, tar, zip, gzip, XZ, Pack200 and bzip2格式的文件,功能比较强大。

    
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-compress -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-compress</artifactId>
        <version>1.20</version>
    </dependency>
    
    

    commons-io

    该工具包可以看成是java.io的扩展,让我们对文件操作更加方便。

    
    <!-- https://mvnrepository.com/artifact/commons-io/commons-io -->
    <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.6</version>
    </dependency>
    
    
    

    commons-fileupload

    该工具包封装了文件上传下载组件。

    
    <!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
    <dependency>
        <groupId>commons-fileupload</groupId>
        <artifactId>commons-fileupload</artifactId>
        <version>1.4</version>
    </dependency>
    
    

    commons-pool

    Java 中创建新的对象并初始化的操作,可能会消耗很多的时间。工作中如果需要频繁创建并使用这些对象的场景中,为了提供系统性能,通常的做法是,创建一个对象池,将一定数量的对象缓存到这个对象池中。需要使用时直接从对象池中取出对象,使用完后将对象扔回到对象池中即可。

    Apache的commons pool组件是实现对象池技术的良好助手。

    
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-pool2 -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-pool2</artifactId>
        <version>2.8.0</version>
    </dependency>
    
    

    HttpClient

    该工具包封装了 Http 网络请求,使大家更方便地通过编程去实现网络请求交互。

    
    <!-- https://mvnrepository.com/artifact/org.apache.httpcomponents/httpclient -->
    <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.12</version>
    </dependency>
    
    

    OkHttp

    以下是 OkHttp 的官网介绍。

    OkHttp is an HTTP client that’s efficient by default:

    • HTTP/2 support allows all requests to the same host to share a socket.
    • Connection pooling reduces request latency (if HTTP/2 isn’t available).
    • Transparent GZIP shrinks download sizes.
    • Response caching avoids the network completely for repeat requests.

    OkHttp是一个高效的HTTP客户端,它有以下默认特性:

    • 支持HTTP/2,允许所有同一个主机地址的请求共享同一个socket连接。
    • 连接池减少请求延时。(在 HTTP/2 不可用的情况下)
    • 透明的GZIP压缩减少响应数据的大小。
    • 缓存响应内容,避免一些完全重复的请求。
    
    <!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp -->
    <dependency>
        <groupId>com.squareup.okhttp3</groupId>
        <artifactId>okhttp</artifactId>
        <version>4.6.0</version>
    </dependency>
    
    

    RxJava

    开源地址

    Reactive Extensions for the JVM – a library for composing asynchronous and event-based programs using observable sequences for the Java VM.

    JVM响应式扩展类库——一个在 Java VM 上使用可观测的序列来组成异步的、基于事件的程序的库。

    RxJava 使用观察者模式,让异步编程变得更简洁。

    
    <!-- https://mvnrepository.com/artifact/io.reactivex.rxjava2/rxjava -->
    <dependency>
        <groupId>io.reactivex.rxjava2</groupId>
        <artifactId>rxjava</artifactId>
        <version>2.2.19</version>
    </dependency>
    
    

    Guava

    Guava 是 Google 的工具类,提供字符串处理,I/O,集合类相关操作。

    JDK8 里面的很多实现,其实在 Guava 里面都实现过,一个非常优秀的库,推荐去看看源码实现。

    Guava的优点:

    • 高效设计良好的API,被Google的开发者设计,实现和使用。
    • 遵循高效的java语法实践。
    • 使代码更优秀,简洁,简单。
    • 节约时间,资源,提高生产力。
    
    <!-- https://mvnrepository.com/artifact/com.google.guava/guava -->
    <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>29.0-jre</version>
    </dependency>
    
    
    

    hutool

    开源地址

    Hutool是一个小而全的Java工具类库,通过静态方法封装,降低相关API的学习成本,提高工作效率,使Java拥有函数式语言般的优雅,让Java语言也可以“甜甜的”。

    Hutool中的工具方法来自于每个用户的精雕细琢,它涵盖了Java开发底层代码中的方方面面,它既是大型项目开发中解决小问题的利器,也是小型项目中的效率担当;

    Hutool是项目中“util”包友好的替代,它节省了开发人员对项目中公用类和公用工具方法的封装时间,使开发专注于业务,同时可以最大限度的避免封装不完善带来的bug。

    
    <!-- https://mvnrepository.com/artifact/cn.hutool/hutool-all -->
    <dependency>
        <groupId>cn.hutool</groupId>
        <artifactId>hutool-all</artifactId>
        <version>5.3.3</version>
    </dependency>
    
    

    Netty

    开源地址

    Netty is an asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers & clients.

    Netty 是一个异步事件驱动的网络应用程序框架,用于快速开发可维护的高性能协议服务器和客户端。

    非常优秀的源码,推荐看源码。我最近也在花时间看这部分源码,受益匪浅。

    
    <!-- https://mvnrepository.com/artifact/io.netty/netty-all -->
    <dependency>
        <groupId>io.netty</groupId>
        <artifactId>netty-all</artifactId>
        <version>4.1.49.Final</version>
    </dependency>
    
    

    poi

    Excel、Word、PPT 等开发工具类。

    
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi</artifactId>
        <version>4.1.2</version>
    </dependency>
    
    <!-- https://mvnrepository.com/artifact/org.apache.poi/poi-ooxml -->
    <dependency>
        <groupId>org.apache.poi</groupId>
        <artifactId>poi-ooxml</artifactId>
        <version>4.1.2</version>
    </dependency>
    
    

    commons-csv

    如果只是操作 CSV 文件的话,建议使用该文件。

    
    <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-csv -->
    <dependency>
        <groupId>org.apache.commons</groupId>
        <artifactId>commons-csv</artifactId>
        <version>1.8</version>
    </dependency>
    
    

    讨论

    大家有更多优秀工具类,欢迎在下方讨论。

    更多原创好文,可以关注我的公众号:


    Tommy 学习录

    相关文章

      网友评论

        本文标题:常用的 jar 包都在这里了

        本文链接:https://www.haomeiwen.com/subject/ddgjnhtx.html