java项目商品的排名,分析了5万个开源项目,得出的排名前16的Java工具类

原文:https://www.jianshu.com/p/9e937d178203

在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类。以下工具类、方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码。

一. org.apache.commons.io.IOUtils

closeQuietly:关闭一个IO流、socket、或者selector且不抛出异常,通常放在finally块toString:转换IO流、 Uri、 byte[]为Stringcopy:IO流数据复制,从输入流写到输出流中,最大支持2GBtoByteArray:从输入流、URI获取byte[]write:把字节. 字符等写入输出流toInputStream:把字符转换为输入流readLines:从输入流中读取多行数据,返回ListcopyLarge:同copy,支持2GB以上数据的复制lineIterator:从输入流返回一个迭代器,根据参数要求读取的数据量,全部读取,如果数据不够,则失败

二. org.apache.commons.io.FileUtils

deleteDirectory:删除文件夹readFileToString:以字符形式读取文件内容deleteQueitly:删除文件或文件夹且不会抛出异常copyFile:复制文件writeStringToFile:把字符写到目标文件,如果文件不存在,则创建forceMkdir:强制创建文件夹,如果该文件夹父级目录不存在,则创建父级write:把字符写到指定文件中listFiles:列举某个目录下的文件(根据过滤器)copyDirectory:复制文件夹forceDelete:强制删除文件

三. org.apache.commons.lang.StringUtils

isBlank:字符串是否为空 (trim后判断)isEmpty:字符串是否为空 (不trim并判断)equals:字符串是否相等join:合并数组为单一字符串,可传分隔符split:分割字符串EMPTY:返回空字符串trimToNull:trim后为空字符串则转换为nullreplace:替换字符串

四. org.apache.http.util.EntityUtils

toString:把Entity转换为字符串consume:确保Entity中的内容全部被消费。可以看到源码里又一次消费了Entity的内容,假如用户没有消费,那调用Entity时候将会把它消费掉toByteArray:把Entity转换为字节流consumeQuietly:和consume一样,但不抛异常getContentCharset:获取内容的编码

五. org.apache.commons.lang3.StringUtils

isBlank:字符串是否为空 (trim后判断)isEmpty:字符串是否为空 (不trim并判断)equals:字符串是否相等join:合并数组为单一字符串,可传分隔符split:分割字符串EMPTY:返回空字符串replace:替换字符串capitalize:首字符大写

六. org.apache.commons.io.FilenameUtils

getExtension:返回文件后缀名getBaseName:返回文件名,不包含后缀名getName:返回文件全名concat:按命令行风格组合文件路径(详见方法注释)removeExtension:删除后缀名normalize:使路径正常化wildcardMatch:匹配通配符seperatorToUnix:路径分隔符改成unix系统格式的,即/getFullPath:获取文件路径,不包括文件名isExtension:检查文件后缀名是不是传入参数(List)中的一个

七. org.springframework.util.StringUtils

hasText:检查字符串中是否包含文本hasLength:检测字符串是否长度大于0isEmpty:检测字符串是否为空(若传入为对象,则判断对象是否为null)commaDelimitedStringToArray:逗号分隔的String转换为数组collectionToDelimitedString:把集合转为CSV格式字符串replace 替换字符串delimitedListToStringArray:相当于splituncapitalize:首字母小写collectionToDelimitedCommaString:把集合转为CSV格式字符串tokenizeToStringArray:和split基本一样,但能自动去掉空白的单词

八. org.apache.commons.lang.ArrayUtils

contains:是否包含某字符串addAll:添加整个数组clone:克隆一个数组isEmpty:是否空数组add:向数组添加元素subarray:截取数组indexOf:查找某个元素的下标isEquals:比较数组是否相等toObject:基础类型数据数组转换为对应的Object数组

九. org.apache.commons.lang.StringEscapeUtils

参考十五:org.apache.commons.lang3.StringEscapeUtils

十. org.apache.http.client.utils.URLEncodedUtils

format:格式化参数,返回一个HTTP POST或者HTTP PUT可用application/x-www-form-urlencoded字符串parse:把String或者URI等转换为List

十一. org.apache.commons.codec.digest.DigestUtils

md5Hex:MD5加密,返回32位字符串sha1Hex:SHA-1加密sha256Hex:SHA-256加密sha512Hex:SHA-512加密md5:MD5加密,返回16位字符串

十二. org.apache.commons.collections.CollectionUtils

isEmpty:是否为空select:根据条件筛选集合元素transform:根据指定方法处理集合元素,类似List的map()filter:过滤元素,雷瑟List的filter()find:基本和select一样collect:和transform 差不多一样,但是返回新数组forAllDo:调用每个元素的指定方法isEqualCollection:判断两个集合是否一致

十三. org.apache.commons.lang3.ArrayUtils

contains:是否包含某个字符串addAll:添加整个数组clone:克隆一个数组isEmpty:是否空数组add:向数组添加元素subarray:截取数组indexOf:查找某个元素的下标isEquals:比较数组是否相等toObject:基础类型数据数组转换为对应的Object数组

十四. org.apache.commons.beanutils.PropertyUtils

getProperty:获取对象属性值setProperty:设置对象属性值getPropertyDiscriptor:获取属性描述器isReadable:检查属性是否可访问copyProperties:复制属性值,从一个对象到另一个对象getPropertyDiscriptors:获取所有属性描述器isWriteable:检查属性是否可写getPropertyType:获取对象属性类型

十五. org.apache.commons.lang3.StringEscapeUtils

unescapeHtml4:转义htmlescapeHtml4:反转义htmlescapeXml:转义xmlunescapeXml:反转义xmlescapeJava:转义unicode编码escapeEcmaScript:转义EcmaScript字符unescapeJava:反转义unicode编码escapeJson:转义json字符escapeXml10:转义Xml10这个现在已经废弃了,建议使用commons-text包里面的方法。

十六. org.apache.commons.beanutils.BeanUtils

copyPeoperties:复制属性值,从一个对象到另一个对象getProperty:获取对象属性值setProperty:设置对象属性值populate:根据Map给属性复制copyPeoperty:复制单个值,从一个对象到另一个对象cloneBean:克隆bean实例

现在你只要了解了以上16种最流行的工具类方法,你就不必要再自己写工具类了,不必重复造轮子。大部分工具类方法通过其名字就能明白其用途,如果不清楚的,可以看下别人是怎么用的,或者去网上查询其用法。

另外,工具类,根据阿里开发手册,包名如果要使用util不能带s,工具类命名为XxxUtils。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/282958.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

IDEA远程调试

参考链接:http://www.cnblogs.com/wy2325/p/5600232.html 调试端口是catlina.sh中的 JAVA_OPTS-agentlib:jdwptransportdt_socket,servery,suspendn,address5023 -Xms1024m -Xmx3072m -XX:MaxNewSize128m #!/bin/sh 配置的端口,是address ******&#…

ASP.NETCoreWeb开发之OptionsPattern

这节我们来讲一下,在ASP.NET Core Web开发中,读取配置文件信息的新方式:Options。前言 /Options在ASP.NET Web框架中,我们读取配置文件中的数据,在不使用第三方框架的情况下,可能需要通过ConfigurationMana…

SpringMVC执行流程图

2019独角兽企业重金招聘Python工程师标准>>> 转载于:https://my.oschina.net/u/2607324/blog/827946

CC框架实践(1):实现登录成功再进入目标界面功能

在掘金上看到这篇文章:android 关于先登录成功后再进入目标界面的思考,作者对实现登录成功后再跳转到目标界面功能作了比较详细的分析,对比了一些已有的实现方案并指出存在的问题。最终,作者实现了一个可同时添加多个条件判断拦截的方案&…

yum search php7,yum install php7 in centos6

如果有安装的PHP包,先删除他们yum list installed | grep phpyum remove php.x86_64 php-cli.x86_64 php-common.x86_64 php-gd.x86_64 php-ldap.x86_64 php-mbstring.x86_64 php-mcrypt.x86_64 php-mysql.x86_64 php-pdo.x86_64yum 安装我们需要的软件1.安装epel软…

CentOS 7系统安装配置图解教程

操作系统:CentOS 7.3 备注: CentOS 7.x系列只有64位系统,没有32位。生产服务器建议安装CentOS-7-x86_64-Minimal-1611.iso版本 一、安装CentOS 7.3 成功引导系统后,会出现下面的界面 界面说明: Install CentOS 7 #安装…

这份《.NET/C#面试手册》超神啦!

这几天给.neter们整理了一份《.NET/C#面试手册》,目前大约4万字左右,初衷也很简单,就是希望在面试的时候能够帮助到大家,减轻大家的负担和节省时间。对于没有跳槽打算的也可以复习一下相关知识点,就当是查缺补漏&#…

Dinic算法----最大流常用算法之一

——没有什么是一个BFS或一个DFS解决不了的;如果有,那就两个一起。 最大流的$EK$算法虽然简单,但时间复杂度是$O(nm^2)$,在竞赛中不太常用。 竞赛中常用的$Dinic$算法和$SAP$,其实也不太难。 那么,$Dinic$算…

springcloud~Eureka实例搭建

服务端 build.gradle配置 dependencies {compile(org.springframework.cloud:spring-cloud-starter-netflix-eureka-server)testCompile(org.springframework.boot:spring-boot-starter-test) }dependencyManagement {imports {mavenBom "org.springframework.cloud:sprin…

php5.3教程,Php 5.3发布

PHP 5.3.4 特性: 增加对zip 流的统计支持 新增 follow_location (默认启用)支持 增加一个 3rd parameter to get_html_translation_table Implemented FR #52348, added new constant ZEND_MULTIBYTE to detect zend multibyte at runtime. Multiple improvements t…

javascript学习笔记 null和undefined

null是javascript语言的关键字,它表示一个特殊值,常用来描述“空值”。对null执行typeof预算,结果返回字符串“object”,也就是说,可以将null认为是一个特殊的对象值,含义是“非对象”。但实际上&#xff0…

C# 为什么高手都是用IsNullOrWhiteSpace对字符串判空?

判断字符串为空有好几种方法:方法一: 代码如下:static void Main(string[] args){string str "";if (str ""){Console.WriteLine("a is empty"); ;}Console.ReadKey();}运行结果:a is empty这样…

使用bcftools提取指定样本的vcf文件(extract specified samples in vcf format)

1、下载安装bcftools。 2、准备样本ID文件,这里命名为samplelistname.txt,一个样本一行,如下所示: sample1 sample2 sample3 3、输入命令: bcftools view -S samplelistname.txt /1000genomes/ALL.chr16.phase3_shapei…

iostat相关参数说明——await:平均每次设备I/O操作的等待时间 (毫秒),如果%util接近 100%,说明产生的I/O请求太多...

iostat是I/O statistics(输入/输出统计)的缩写,iostat工具将对系统的磁盘操作活动进行监视。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU使用情况。同vmstat一样,iostat也有一个弱点,就是它不能对某…

php里面sql是什么意思,MySQL和SQL是什么?MySQL和SQL之间的区别有哪些

MySQL和SQL之间的区别有哪些?很多PHP的初学者,对MySQL,MyAdmin和SQL有什么区别并不是很清楚?下面 第一PHP社区 就带领大家来学习一下MySQL和SQL之间的区别。【推荐阅读:MySQL什么意思】一:什么是SQLSQL是一…

Blazor University (51)依赖注入 —— 拥有多个依赖项:错误的方式

原文链接:https://blazor-university.com/dependency-injection/component-scoped-dependencies/owning-multiple-dependencies-the-wrong-way/拥有多个依赖项:错误的方式OwningComponentBase[1] 类是一个合适的解决方案,当我们需要我们的组件…

Centos的yum源更换为国内的阿里云源

1、备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2、下载新的CentOS-Base.repo 到/etc/yum.repos.d/ CentOS 5 wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-5.repo 或者 curl -o /etc/yum.repo…

Centos 7 搭建.net web项目

现在的.NET Core 1.0版本是一个很小的核心,APIs和工具也并不完整,但是随着.Net Core的不断完善,补充的Apis和创新也会一起整合到.NET Framework中。 安装centos系统 请自行安装或百度教程 安装 libicu包 和 dotnet 温馨提示:如果需…

Effective Objective-C 2.0 编写高质量iOS与OS X代码的52个有效方法笔记-协议与分类...

23、通过委托与数据源协议进行对象间通信 如果要在委托对象上调用可选方法,那么必须提前使用类型信息查询方法判断这个委托对象能否响应相关选择子。 if ( [_delegate respondsToSelector:selector(networkFetcher:didReceiveData:)]){ [_delegate networkFetcher:s…

用matlab求解工作时间调度问题,置换流水车间调度问题的MATLAB求解.doc

物流运筹实务课程设计题目:置换流水车间调度问题的MATLAB求解置换流水车间调度问题的MATLAB求解目录前言……………………………………………………………………… 5问题描述………………………………………………………………… 6算法设计…………………………………