阅读更多

43顶
20踩

编程语言

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

2008-11-02 12:13 by 副主编 QQbyte 评论(41) 有31377人浏览
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是一个集合的工具类,提供了一系列的静态方法供集合使用链表是物理存储单位上,非连续,非顺序的存储单位它是由一个个节点通过指针...

  • 即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点.zip

    即时通讯_分布式系统_WebSocket_Golang_Redis_MySQL_RabbitMQ_Gin_Logrus_Docker_微服务架构_高并发_消息队列_实时聊天_多节点

  • STM32伺服步进定位精准控制:相对与绝对定位的回原点策略及梯形加减速算法深度解析

    内容概要:本文详细介绍了如何使用STM32实现步进电机的精确运动控制,涵盖梯形加减速算法、绝对定位、相对定位和回原点功能。文章首先解释了绝对定位和相对定位的区别及其应用场景,接着深入探讨了梯形加减速算法的具体实现方法,包括动态选择梯形或三角形速度曲线以适应不同的运动距离。文中还提供了详细的回原点逻辑,确保电机能够安全可靠地返回起始位置。此外,文章讨论了运动控制状态机的设计,强调了定时器中断和服务函数的作用,以及如何通过DMA提高系统的稳定性和效率。最后,作者分享了一些实用的经验和注意事项,如定时器配置、加减速参数设置和硬件接口设计。 适合人群:对嵌入式系统和运动控制感兴趣的开发者,尤其是有一定STM32编程基础的技术人员。 使用场景及目标:适用于需要高精度步进电机控制的应用场合,如工业自动化设备、机器人等领域。主要目标是帮助读者掌握STM32在步进电机控制方面的核心技术,包括但不限于梯形加减速、定位控制和回原点等功能。 其他说明:文章不仅提供了理论讲解,还附有大量实际代码片段,便于读者理解和实践。同时,作者分享了许多实战经验和常见问题的解决方案,有助于读者避开潜在的陷阱并提高项目的成功率。

  • 西门子PLC 1200 PID程序与变频器通讯详解:Modbus RTU报文讲解,带触摸屏,手动自动功能及CAD电气详细注释

    内容概要:本文深入探讨了西门子PLC 1200与G120变频器通过Modbus RTU通讯的实现方法,涵盖硬件连接、软件配置、变频器参数设置、PID自写FB块及其手动自动切换功能、触摸屏交互设计以及CAD电气的应用。具体介绍了Modbus RTU通讯的初始化配置、报文格式、PID控制算法的手动自动无扰切换、触摸屏参数映射和动态站号切换等功能。同时提供了详细的代码示例和调试建议,强调了参数设置、实数转换、PID抗饱和等注意事项。 适合人群:从事工业自动化领域的工程师和技术人员,特别是熟悉西门子产品并有一定PLC编程基础的人群。 使用场景及目标:适用于需要构建基于西门子PLC 1200和G120变频器的自动化控制系统的企业和个人开发者。主要目标是掌握Modbus RTU通讯协议的具体实现细节,理解PID控制算法的工作原理,并能够独立完成系统的集成和调试。 其他说明:文中不仅提供了理论知识,还包括大量实战经验和常见问题的解决方案,有助于提高读者的实际操作能力。此外,还涉及了CAD电气图纸的绘制,为项目的整体规划和后续维护提供了指导。

  • **煤层瓦斯开采技术新突破:采用二阶PDE方程描述压力变化**

    内容概要:本文详细介绍了COMSOL利用二阶偏微分方程(PDE)进行煤层气开采过程中压力场模拟的方法及其显著优势。传统方法通常采用达西定律简化为一阶方程,而COMSOL则通过自定义二阶PDE,将渗透率作为动态参数,并引入非线性的解吸过程和复杂的边界条件,从而更精确地模拟了煤层内的压力变化。文中展示了具体的MATLAB代码片段,解释了如何配置模型以及处理边界条件,强调了二阶PDE在捕捉压力场细节方面的优越性能。此外,文章还提到了一些实际案例,如瓦斯涌出量预测精度提高37.6%,裂隙区压力衰减速度误差控制在8%以内等。 适合人群:从事煤层气开采研究的专业人士、数值模拟工程师、地质力学专家。 使用场景及目标:适用于需要高精度模拟煤层气开采过程中复杂压力场变化的研究项目,旨在提升预测准确性,优化开采方案,减少事故风险。 其他说明:尽管二阶PDE提供了更高的精度,但也增加了模型复杂性和计算成本。因此,在具体应用时需权衡精度与效率之间的关系。同时,良好的网格划分对于获得稳定可靠的解决方案至关重要。

  • 可再生能源_光伏发电_物联网大数据云计算_SpringBoot_Vue_ElementUI_Redis_Jwt_XXLJob_Netty_时序数据库_关系型数据库_智能监测_数据采.zip

    可再生能源_光伏发电_物联网大数据云计算_SpringBoot_Vue_ElementUI_Redis_Jwt_XXLJob_Netty_时序数据库_关系型数据库_智能监测_数据采

  • thymeleaf-2.0.9.jar中文-英文对照文档.zip

    # 压缩文件中包含: 中文-英文对照文档 jar包下载地址 Maven依赖 Gradle依赖 源代码下载地址 # 本文件关键字: jar中文-英文对照文档.zip,java,jar包,Maven,第三方jar包,组件,开源组件,第三方组件,Gradle,中文API文档,手册,开发手册,使用手册,参考手册 # 使用方法: 解压最外层zip,再解压其中的zip包,双击 【index.html】 文件,即可用浏览器打开、进行查看。 # 特殊说明: ·本文档为人性化翻译,精心制作,请放心使用。 ·只翻译了该翻译的内容,如:注释、说明、描述、用法讲解 等; ·不该翻译的内容保持原样,如:类名、方法名、包名、类型、关键字、代码 等。 # 温馨提示: (1)为了防止解压后路径太长导致浏览器无法打开,推荐在解压时选择“解压到当前文件夹”(放心,自带文件夹,文件不会散落一地); (2)有时,一套Java组件会有多个jar,所以在下载前,请仔细阅读本篇描述,以确保这就是你需要的文件;

  • 31 android 加载时闪烁点样式的启动画面

    31 android 加载时闪烁点样式的启动画面

  • GDF103C8T6的PCB制版文件

    GDF103C8T6的PCB制版文件

  • 基于MATLAB的裂缝检测系统:实现图像预处理与特征提取

    内容概要:本文详细介绍了如何使用MATLAB构建一个自动化的裂缝检测系统。首先进行图像预处理,包括直方图均衡化、中值滤波去除噪声以及对比度增强。接着通过自适应二值化将图像转换为黑白图像,并采用形态学处理和边缘检测进一步优化图像质量。最后,利用regionprops函数提取裂缝的几何特征,如面积、长轴和短轴长度等,从而实现裂缝的自动检测和分类。文中强调了每个步骤的关键技术和参数选择,并提供了具体的MATLAB代码示例。 适合人群:从事图像处理、计算机视觉领域的研究人员和技术人员,尤其是对裂缝检测感兴趣的工程师。 使用场景及目标:适用于建筑、道路等基础设施的维护检查,能够快速准确地检测并评估裂缝情况,提高工作效率和准确性。 其他说明:作者分享了许多实践经验,指出了一些常见的陷阱和注意事项,帮助读者更好地理解和应用这些技术。同时,文中提到该系统的识别率可达89%,并且可以根据不同应用场景调整参数以满足特定需求。

  • ALO-KELM回归预测MATLAB代码(电厂运行数据为例)

    内容概要:本文详细介绍了如何利用蚁狮优化算法(ALO)和核极限学习机(KELM)在MATLAB环境下进行电厂运行数据的回归预测。首先,文章解释了ALO算法的工作原理,它通过模拟蚁狮捕猎行为来优化KELM的超参数,从而提高预测准确性。接着,阐述了数据预处理步骤,包括从Excel文件读取数据、归一化处理以及特征选择。然后,深入探讨了KELM的核函数选择和训练过程,并提供了具体的MATLAB代码片段用于实现整个流程。最后,展示了该方法在实际案例中的表现,特别是在某330MW机组上的应用,证明了其优越性。 适合人群:具有一定MATLAB编程基础并对机器学习感兴趣的工程师和技术人员。 使用场景及目标:适用于电力行业或其他涉及复杂非线性系统的领域,旨在解决多参数耦合强的问题,提供高效准确的预测解决方案。 其他说明:文中提到的一些技巧如数据清洗、参数调整等对于获得更好的预测效果至关重要。此外,作者还分享了一些实用的经验教训,帮助读者避开常见错误并优化模型性能。

  • 无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失.zip

    无人机航测_大疆航线规划_KMZ文件生成与解析_基于JavaXStream注解的DJIPilot2兼容航线文件处理工具_支持航点飞行建图航拍等多种任务模板_包含航线高度速度航向角失

Global site tag (gtag.js) - Google Analytics