zoukankan      html  css  js  c++  java
  • Google guava和Apache commons

    Guava 是一个 Google 的基于java类库集合的扩展项目,包括 collections, caching, primitives support, concurrency libraries, common annotations, string processing, I/O, 等等

    Apache Commons是对JDK的拓展,包含了很多开源的工具,用于解决平时编程经常会遇到的问题,减少重复劳动。官网网址:http://commons.apache.org

    Guava记录:

      一、源码包的简单说明:
      com.google.common.annotations:普通注解类型。
      com.google.common.base:基本工具类库和接口。
      com.google.common.cache:缓存工具包,非常简单易用且功能强大的JVM内缓存。
      com.google.common.collect:带泛型的集合接口扩展和实现,以及工具类,这里你会发现很多好玩的集合。
      com.google.common.eventbus:发布订阅风格的事件总线。
      com.google.common.hash: 哈希工具包。
      com.google.common.io:I/O工具包。
      com.google.common.math:原始算术类型和超大数的运算工具包。
      com.google.common.net:网络工具包。
      com.google.common.primitives:八种原始类型和无符号类型的静态工具包。
      com.google.common.reflect:反射工具包。
      com.google.common.util.concurrent:多线程工具包。

      二、类库使用手册:

      一.  基本工具类:让使用Java语言更令人愉悦。

      1. 使用和避免 null:null 有语言歧义, 会产生令人费解的错误, 反正他总是让人不爽。很多 Guava 的工具类在遇到 null 时会直接拒绝或出错,而不是默默地接受他们。
      2. 前提条件:更容易的对你的方法进行前提条件的测试。
      3. 常见的对象方法: 简化了Object常用方法的实现, 如 hashCode() 和 toString()。
      4. 排序: Guava 强大的 "fluent Comparator"比较器, 提供多关键字排序。
      5. Throwable类: 简化了异常检查和错误传播。

      二.  集合类:集合类库是 Guava 对 JDK 集合类的扩展, 这是 Guava 项目最完善和为人所知的部分。

      1. Immutable collections(不变的集合): 防御性编程, 不可修改的集合,并且提高了效率。
      2. New collection types(新集合类型):JDK collections 没有的一些集合类型,主要有:multisets,multimaps,tables, bidirectional maps等等
      3. Powerful collection utilities(强大的集合工具类): java.util.Collections 中未包含的常用操作工具类
      4. Extension utilities(扩展工具类): 给 Collection 对象添加一个装饰器? 实现迭代器? 我们可以更容易使用这些方法。

      三.  缓存: 本地缓存,可以很方便的操作缓存对象,并且支持各种缓存失效行为模式。

      四.  Functional idioms(函数式): 简洁, Guava实现了Java的函数式编程,可以显著简化代码。

      五. Concurrency(并发):强大,简单的抽象,让我们更容易实现简单正确的并发性代码。

      1. ListenableFuture(可监听的Future): Futures,用于异步完成的回调。
      2. Service: 控制事件的启动和关闭,为你管理复杂的状态逻辑。

      六. Strings: 一个非常非常有用的字符串工具类: 提供 splitting,joining, padding 等操作。

      七. Primitives: 扩展 JDK 中未提供的对原生类型(如int、char等)的操作, 包括某些类型的无符号的变量。

      八. Ranges: Guava 一个强大的 API,提供 Comparable 类型的范围处理, 包括连续和离散的情况。

      九. I/O: 简化 I/O 操作, 特别是对 I/O 流和文件的操作, for Java 5 and 6.

      十. Hashing: 提供比 Object.hashCode() 更复杂的 hash 方法, 提供 Bloom filters.

      十一. EventBus: 基于发布-订阅模式的组件通信,但是不需要明确地注册在委托对象中。

      十二. Math: 优化的 math 工具类,经过完整测试。

      十三. Reflection: Guava 的 Java 反射机制工具类。

    Apache Commons的一些方法记录:

    • Commons BeanUtils

      针对Bean的一个工具集。由于Bean往往是有一堆get和set组成,所以BeanUtils也是在此基础上进行一些包装。

      一个比较常用的功能是Bean Copy,也就是copy bean的属性。如果做分层架构开发的话就会用到,比如从PO(Persistent Object)拷贝数据到VO(Value Object)

    • Commons Codec

      是编码和解码组件,提供常用的编码和解码方法,如DES、SHA1、MD5、Base64、URL和Soundx等。

    • Commons Collections

      是一个集合组件,扩展了Java标准Collections API,对常用的集合操作进行了很好的封装、抽象和补充,在保证性能的同时大大简化代码。

    • Commons Compress

      是一个压缩、解压缩文件的组件,可以操作rar、cpio、Unix dump、tar、zip、gzip、XZ、Pack200和bzip2格式的压缩文件。

    • Commons Configuration

      是一个Java应用程序的配置管理工具,可以从properties或者xml文件中加载配置信息。

    • Commons CSV

      是一个用来读写各种Comma Separated Value(CSV)格式文件的Java类库。

    • Commons Daemon

      实现将普通的Java应用变成系统的后台服务,例如 Tomcat 就是利用这个项目来实现作为 Linux 和 Windows 的服务启动和停止的。

    •  Commons DBCP

      数据库连接池。

    • Commons DBUtils

      是JDBC工具组件,对传统操作数据库的类进行二次封装,可以把结果集转化成List。

    •  Commons Digester

      是XML到Java对象的映射工具集。

    •  Commons Email

      是邮件操作组件,对Java Mail API进行了封装,提供了常用的邮件发送和接收类,简化邮件操作。该组件依赖Java Mail API。

    • Commons Exec

      提供一些常用的方法用来执行外部进程,如执行exe文件或命令行。

    •  Commons FileUpload

      为Web应用程序或Servlet提供文件上传功能,Struts2和SpringMVC的文件上传组件。

    • Commons IO

      是处理IO的工具类包,对java.io进行扩展,提供了更加方便的IO操作。

    • Commons JCI

      提供通用的Java编译器接口。

    • Commons Lang3

      是处理Java基本对象方法的工具类包,该类包提供对字符、数组等基本对象的操作,弥补了java.lang api基本处理方法上的不足。

    • Commons Launcher

      可以跨平台独立启动的java应用程序。

    • Commons Logging

      提供统一的日志接口,同时兼顾轻量级和不依赖于具体的实现。类包给中间件/日志工具开发者一个简单的日志操作抽象,允许程序开发人员使用不同的具体日志实现工具。

    • Commons Math

      轻量级自容器的数学和统计计算方法类包,包含大多数常用的数值算法。

    • Commons Net

      封装了各种网络协议的客户端,支持FTP、NNTP、SMTP、POP3、Telnet等协议。

    • Commons Pool

      提供了一整套用于实现对象池化的框架,以及若干各具特色的对象池实现,可以有效地减少处理对象池化时的工作量。类包用于提高像文件句柄、数据库连接、socket通信这类大对象的调用效率,简单的说就是一种对象一次创建多次使用的技术。

    •  Commons Primitives

      提供了一个更小,更快和更易使用的对Java基本类型的支持。

    • Commons Validator

      提供了一个简单的、可扩展的框架来在一个XML文件中定义校验器(校验方法)和校验规则。支持校验规则的和错误消息的国际化。

    •  Apache HttpClient

      曾经是Apache Commons的子项目,后来独立出来。HttpClient简化HTTP客户端与服务器的各种通讯,实现HTTP客户端程序(也就是浏览器程序)的功能。

    GoogleGuava Splitter 对比 Apache StringUtils

      GoogleGuava 速度比apache的快

    感谢提供者:

    https://www.cnblogs.com/wihainan/p/7091775.html

  • 相关阅读:
    java jdk 安装后目录下没有 jre
    解决leader-line生成的svg线不能被html2canvas转成图片问题
    css 计数实现目录索引
    前端架构入门
    js 尺寸信息
    阿里云25端口被封,换465端口发送
    appache官网下载 httpClient
    oc基础:类的定义
    指针的地址(地址的地址)
    0 ‘与‘’、 ‘0’
  • 原文地址:https://www.cnblogs.com/zyanrong/p/12738289.html
Copyright © 2011-2022 走看看