阅读更多

43顶
20踩

编程语言

原创新闻 我的顶级Java工具名单

2008-11-02 12:13 by 副主编 QQbyte 评论(41) 有31325人浏览
Ignacio Coloma说道:作为一个软件开发者,缺乏想象力是最严重的罪过之一。我们经常把事情重复做一遍又一遍,但是我们很少改变这种方式,至少我是这样。经过这些年开发,在我的工具箱里面有了一些每个项目我都需要用到的工具,烦人的重复工作不再是我的事。

下面这些工具也许你已经用到,让我来仔细介绍它们:

StringUtils

这是象面包和奶油一样必须的通用语言库,这个实用工具类包括一些很早以前在String中未包含的重要方法。

StringUtils.isEmpty(null) && StringUtils.isEmpty(""); // true  
StringUtils.isBlank("   \n\t");                       // true  
StringUtils.substringAfterLast("foo.bar.baz", ".");   // "baz"  
StringUtils.substringBeforeLast("foo.bar.baz", ".");  // "foo.bar"  
StringUtils.split("foo.bar.baz", '.');                // { "foo", "bar", "baz" }  
StringUtils.split("foo,  bar,baz", ", ");             // { "foo", "bar", "baz" }  
StringUtils.leftPad("1", 3, '0');                     // "001"  


IOUtils and FileUtils

在一种当你需要手动操作多个文件罕见情况下必须具备的工具,这两个工具很相似(FileUtils操作文件,IOUtils操作InputStream和Reader classes),和捆绑常用IO.

File file1;
File file2;
InputStream inputStream;
OutputStream outputStream;

// copy one file into another
FileUtils.copyFile(file1, file2);
IOUtils.copy(inputStream, outputStream);

// read a file into a String
String s1 = FileUtils.readFileToString(file1);
String s2 = IOUtils.toString(inputStream);

// read a file into a list of Strings, one item per line
List<String> l1 = FileUtils.readLines(file1);
List<String> l2 = IOUtils.readLines(inputStream);

// put this in your finally() clause after manipulating streams
IOUtils.closeQuietly(inputStream);

// return the list of xml and text files in the specified folder and any subfolders
Collection<File> c1 = FileUtils.listFiles(file1, { "xml", "txt" }, true);

// copy one folder and its contents into another
FileUtils.copyDirectoryToDirectory(file1, file2);

// delete one folder and its contents
FileUtils.deleteDirectory(file1);


Google collections

这是我所知道的最好的扩展实现包,其中一些被社区叫嚣着要加入JDK:

// create an ArrayList with three arguments
List<String> list = Lists.newArrayList("foo", "bar", "baz");

// notice that there is no generics or class cast,
// and still this line does not generate a warning.
Set<String> s = Sets.newConcurrentHashSet();

// intersect and union are basic features of a Set, if you ask me
Set<String> s = Sets.intersect(s1, s2);

// Example  of multiple values in a Map
ListMultimap<String, Validator> validators = new ArrayListMultimap<String, Validator>();
validators.put("save", new RequiredValidator());
validators.put("save", new StringValidator());
validators.put("delete", new NumberValidator());

validators.get("save"); // { RequiredValidator, StringValidator }
validators.get("foo");  // empty List (not null)
validators.values();    // { RequiredValidator, StringValidator, NumberValidator }


java.util.concurrent

不是每个人都需要这么重的java.util.concurrent,但是很好用:

// a map that may be modified (by the same or different thread) while being iterated
Map<String, Something> repository = new ConcurrentHashMap<String, Something>();

// same with lists. This one is only available with Java 6
List<Something> list = new CopyOnWriteArrayList<Something>();


你有好的工具推荐吗?欢迎留言。
来自: java.dzone.com
43
20
评论 共 41 条 请登录后发表评论
41 楼 zhb8015 2012-12-06 14:55
很实用的东西,一定要收藏,这种东西小到工具类,大到JDK,开源框架。绝对好处多多
40 楼 KeepMoving龙强 2011-05-17 10:58
 
39 楼 xinqinglhj 2009-10-15 15:11
没有找到下载地址
38 楼 javaAlpha 2009-09-18 15:38
很强悍啊 
37 楼 http_url 2009-02-05 20:47
大家没看到标题是“我的顶级Java工具名单 ”吗!~~仅是作者自己的,并不是所有人的。
还是要感谢lz分享的
36 楼 mjs123 2009-01-05 11:32
我想把大家经常用到的工具包放在一个地方,方便大家下载最好了
35 楼 erikchang 2009-01-04 22:19
这样的工具类很多的,可以集中一下,提供大家下载是最好的!IOUtils
34 楼 Qaohao 2009-01-04 11:58
不错,值得借鉴!
33 楼 lijie250 2008-12-09 10:42
这些类经常用的!
32 楼 zhiblin 2008-11-19 06:21
思想是好地
31 楼 zxc84265391 2008-11-14 16:03
没什么实质内容撒。。。。标题还较强悍。看了标题还准备进来找点实用东东呢。。。
30 楼 tvjody 2008-11-14 12:22
除了apache commons的工具类,自己也可以把常用的组织成工具类,主要目的是杜绝重复编写,提高效率.
29 楼 justjavac 2008-11-12 18:21
 
28 楼 Michael.zhl 2008-11-12 10:53
果然是标题党。。。
27 楼 abruzzi 2008-11-10 15:39
貌似几个很普通的类啊,怎么就顶级了呢??
26 楼 jiayouhh 2008-11-10 10:27
这些都在那里下载啊?
25 楼 agilestone 2008-11-10 09:07
工具 这个词 用的大了。

基本每个框架 strtus、spring、自己项目框架 这种对字符、数字、日期处理的共享类
24 楼 okhaoba 2008-11-08 12:54
共享一下撒
23 楼 wangyi2200 2008-11-07 23:28
楼主好人也~
22 楼 日头的影子 2008-11-06 14:47
不论怎么样,精神可嘉,如果大家都愿意分享自己生活中的点滴,我相信我们会共同进步

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 12 个顶级 Bug 跟踪工具(建议收藏)

    点击上方蓝色“java大数据修炼之道”,选择“设为星标” 每晚九点: 技术干货 ???? 必定奉上 在如今的在线世界,几乎所有的公司都面临它们产品中的 bugs,并且考虑如何管理这些 b...

  • java 开发工具及其他使用工具介绍

    ▼ ...软件介绍多摘自以上两个网站,在此表示感谢。...统计类软件及作图工具 ... 苹果开发工具 ... 浏览器及网络性能测试工具 ...这是一款Mac平台的顶级三维动画制作工具,是美国Autodesk公司出品的世界...

  • 各个开发阶段最流行的Java工具

    各个开发阶段最流行的Java工具语言版本编辑器和IDEweb框架应用服务器测试框架单元测试自动化web浏览器测试行为驱动开发测试(BDD)版本控制系统持续集成数据库对象关系映射(ORM)静态代码分析语法检查工件管理依赖...

  • 各个开发阶段最流行的Java工具汇总

    各个开发阶段最流行的Java工具汇总 仅仅因为工具是最流行的并不意味着它是“最好的”。最好的总是和具体的编程内容相关。不过,人气,不可否认是选择同类工具时的重要指标。这并不是说流行本身会增加工具的价值...

  • 12 个顶级 Bug 跟踪工具

    作者 | Eugene Stepnov译者 | 张健欣策划 | Tina 在如今的在线世界,几乎所有的公司都面临它们产品中的 bugs,并且考虑如何管理这些 bugs。应该使用哪个工具?如...

  • 12 个顶级 Bug 跟踪工具(建议收藏)

    Wikis 和观察名单 一般查询和高级查询功能 问题更新和状态变更的完整历史记录 内置 Git 和 SVN 集成 Backlog 预置集成了 Typetalk、Cacoo、Redmine、Jira Importer、iCal、email 和 Google Sheets 以及其它许多工具...

  • 5 款顶级 Kubernetes 日志监控工具

    结语 你可能会问,为什么没有将Prometheus列入名单,因为本文专注于日志监控工具,而Prometheus处理指标不支持日志。 所以,如果你对手动搜索日志的不擅长,或者不愿意构建和管理警报规则,则应尝试使用基于机器...

  • 程序员常用的 12 个顶级 Bug 跟踪工具

    这里有一些我们挑选的用于 bug 跟踪的顶级工具。 Bug herd 图片来源:https://bugherd.com/ 概述 BugHerd 是一个基于 Web 的问题跟踪项目管理工具。这个工具能够捕捉问题的屏幕截图,其中包括正在注释的确切的 ...

  • Java面试必备八股文

    提供了对集合进行基本操作的通用接口方法在Java类库中有很多具体实现Collections是一个集合的工具类,提供了一系列的静态方法供集合使用链表是物理存储单位上,非连续,非顺序的存储单位它是由一个个节点通过指针...

  • 数据库基础测验20241113.doc

    数据库基础测验20241113.doc

  • 微信小程序下拉选择组件

    微信小程序下拉选择组件

  • DICOM文件+DX放射平片-数字X射线图像DICOM测试文件

    DICOM文件+DX放射平片—数字X射线图像DICOM测试文件,文件为.dcm类型DICOM图像文件文件,仅供需要了解DICOM或相关DICOM开发的技术人员当作测试数据或研究使用,请勿用于非法用途。

  • Jupyter Notebook《基于双流 Faster R-CNN 网络的 图像篡改检测》+项目源码+文档说明+代码注释

    <项目介绍> - 基于双流 Faster R-CNN 网络的 图像篡改检测 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

  • 使用epf捕获没有CA证书的SSLTLS明文(LinuxAndroid内核支持amd64arm64).zip

    c语言

  • (源码)基于Arduino的天文数据库管理系统.zip

    # 基于Arduino的天文数据库管理系统 ## 项目简介 本项目是一个基于Arduino的天文数据库管理系统,旨在为Arduino设备提供一个完整的天文数据库,包括星星、星系、星团等天体数据。项目支持多种语言的星座名称,并提供了详细的天体信息,如赤道坐标、视星等。 ## 项目的主要特性和功能 星座目录包含88个星座,提供拉丁语、英语和法语的缩写和全名。 恒星目录包含494颗亮度达到4等的恒星。 梅西耶目录包含110个梅西耶天体。 NGC目录包含3993个NGC天体,亮度达到14等。 IC目录包含401个IC天体,亮度达到14等。 天体信息每个天体(不包括星座)提供名称、命名、相关星座、赤道坐标(J2000)和视星等信息。 恒星额外信息对于恒星,还提供每年在赤经和赤纬上的漂移以及视差。 ## 安装使用步骤 1. 安装库使用Arduino IDE的库管理器安装本项目的库。 2. 解压数据库将db.zip解压到SD卡中。

  • (源码)基于JSP和SQL Server的维修管理系统.zip

    # 基于JSP和SQL Server的维修管理系统 ## 项目简介 本项目是一个基于JSP和SQL Server的维修管理系统,旨在提供一个高效、便捷的维修管理解决方案。系统涵盖了从维修订单的创建、管理到配件的录入、更新等多个功能模块,适用于各类维修服务行业。 ## 项目的主要特性和功能 1. 用户管理 管理员和客户的注册与登录。 管理员信息的管理与更新。 客户信息的创建、查询与更新。 2. 维修订单管理 维修订单的创建、查询与更新。 维修回执单的创建与管理。 3. 配件管理 配件信息的录入与更新。 配件库存的管理与查询。 4. 评价与反馈 客户对维修服务的评价记录。 系统反馈信息的收集与管理。 5. 数据加密与安全 使用MD5加密算法对用户密码进行加密存储。 通过过滤器实现登录验证,确保系统安全。 ## 安装使用步骤

  • devecostudio-windows-3.1.0.501.zip

    HUAWEI DevEco Studio,以下简称DevEco Studio)是基于IntelliJ IDEA Community开源版本打造,为运行在HarmonyOS和OpenHarmony系统上的应用和服务(以下简称应用/服务)提供一站式的开发平台。 作为一款开发工具,除了具有基本的代码开发、编译构建及调测等功能外,DevEco Studio还具有如下特点: - 高效智能代码编辑:支持ArkTS、JS、C/C++等语言的代码高亮、代码智能补齐、代码错误检查、代码自动跳转、代码格式化、代码查找等功能,提升代码编写效率。更多详细信息,请参考[编辑器使用技巧] - 低代码可视化开发:丰富的UI界面编辑能力,支持自由拖拽组件和可视化数据绑定,可快速预览效果

  • 《计算机视觉技术》实验报告-8.1提取车辆轮廓

    《计算机视觉技术》实验报告-8.1提取车辆轮廓

  • springboot小徐影城管理系统(代码+数据库+LW)

    随着现在网络的快速发展,网上管理系统也逐渐快速发展起来,网上管理模式很快融入到了许多生活之中,随之就产生了“小徐影城管理系统”,这样就让小徐影城管理系统更加方便简单。 对于本小徐影城管理系统的设计来说,系统开发主要是采用java语言技术,在整个系统的设计中应用MySQL数据库来完成数据存储,具体根据小徐影城管理系统的现状来进行开发的,具体根据现实的需求来实现小徐影城管理系统网络化的管理,各类信息有序地进行存储,进入小徐影城管理系统页面之后,方可开始操作主控界面,主要功能包括管理员:首页、个人中心、用户管理、电影类型管理、放映厅管理、电影信息管理、购票统计管理、系统管理、订单管理,用户前台;首页、电影信息、电影资讯、个人中心、后台管理、在线客服等功能。 本论文主要讲述了小徐影城管理系统开发背景,该系统它主要是对需求分析和功能需求做了介绍,并且对系统做了详细的测试和总结。具体从业务流程、数据库设计和系统结构等多方面的问题。望能利用先进的计算机技术和网络技术来改变目前的小徐影城管理系统状况,提高管理效率。

  • C++与Matlab实现SIFT特征提取算法+项目源码+文档说明+代码注释

    <项目介绍> - SIFT特征提取算法C++与Matlab实现 - 不懂运行,下载完可以私聊问,可远程教学 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 --------

Global site tag (gtag.js) - Google Analytics