你不容错过的12个Java项目

GitHub可谓是一座程序开发的大宝库,有些素材值得fork,有些则能帮助咱们改进自有代码或者学习编程技能。所以在开发工做当中咱们几乎不可能绕得开GitHub。
下面,本文将同你们分享一些有趣且颇为实用的Java库。java

1.极致精简的Java算法

Bootique是一项用于构建无容器可运行Java应用的极简技术。该项目容许你们建立REST服务、Web应用、任务、数据库迁移等等,且一切都立足于模块实现。另外,你们也能够将其做为简单的命令进行使用。数据库

该项目的目标在于将应用从Java容器中解放出来,容许开发者从新回归main()方法。另外其中还包含部份内置命令,所以就算须要处理的代码量很少或者并未向应用中导入任何模块,仍然可以利用Bootique对其加以执行。编程

2.监控Java数组

不管你们使用哪一种监控工具,Automon都可以将其与AOP(AspectJ)相结合以实现Java代码、JDK以及依赖库监控声明。其可与其它各知名监控工具相协做,例如JAMon、JavaSimon、Yammer Metrics以及StatsD等,同时亦支持各种日志记录库,包括perf4j、log4j、sl4j等等。服务器

3.数据浏览网络

若是你但愿经过酷炫的方式进行数据交互,那么Dex绝对不容错过。它可以帮助咱们提取、转换及可视化数据,同时附带预测功能。你们能够将可视化结果发布为3D或者其它HTML变量形式。框架

Dex容许咱们生成超过50种不一样的可视化模式,其中包括世界地图、参与时间表、网络使用状况等。你们也能够利用R与其运行实例相结合,从而构建起复杂的统计分析与预测分析体系。分布式

4.键值存储ide

Chronicle Map是一套内存内键值存储方案,其设计目标在于实现低延迟与/或多进程应用,例如贸易与金融市场应用。这套库主要面向中等读取与写入查询延迟场景,容许用户根据服务器中的硬件执行线程数量编写合适的查询机制。

其主要用途包括在单一服务器(例如Redis)中替代低速键值存储方案,或者取代同类面向JVM的解决方案以实现速度提高。你们也能够将部分应用状态移出Java堆,从而下降堆体积及GC压力。

5.检查泄漏问题

LeakCanary是一套开源库,旨在帮助咱们解决内存泄漏问题。你们能够利用它在Java(与Android)中检查内存泄漏。正如其GitHub页面中所言,“千里之堤溃于蚁穴”。

在LeakCanary设置完成后,你们能够利用其自动检查泄漏并在发现问题时给出通知。

6.字符串操做

Strman-java库是一套Java 8库,专门用于处理字符串。因为其可用于Maven,所以你们只须要面向选定的构建工具添加关联性便可使用。

若是你们使用过Kik并据说过其遭遇的leftPad问题,那么Strman多是个更好的选择——其可以返回特定长度的新字符串,且自动填充开头部份内容。另外,其中还提供一整套功能列表,包括向值附加字符串、从特定目录中提取字符以及利用字符串在开始与结束间返回数组等等。

7.优雅的问题处理方式

99-problems,光看名字就能对其功能了解一二。很明显,它的做用是帮助你们磨练逻辑编程中的具体技能。你们能够选择利用Java 八、Scala或者Haskell进行问题解决,并最终找到最实用的解决办法。

若是你们喜好解题,其中还提供多种不一样层级的难度供各位选择。另外,若是你们将所有99道难题解决掉,则可进一步冲击Java Deathmatch。若是你们被难住了,请点击此处查看难题——但请注意,认真思考以后再参阅比较好哦。

8.负载调查工具

Gumshoe容许你们监控本身的应用性能统计指标。有了它,咱们能够精确到具体代码行并了解与堆栈调用及个别栈帧相关的统计数据,从而确切分析资源使用状况(例如TCP、UDP、文件系统或处理器使用量)。

这套库可以在统计数据生成时对其进行捕捉、过滤与可视化处理,从而更为直观地实现数据结论查阅。若是须要更为具体地使用,你们还能够在数据捕捉与/或可视化处理过程当中过滤栈帧,并在其运行中加以变动。

9.小小大数据

Tablesaw是一套内存内数据表,其中包含多种数据工具与面向列的存储格式。其设计思路认为没人会面向小型任务执行分布式分析,而你们能够在单一服务器上对200万行级别的表进行交互。

你可以利用Tablesaw执行各类规则,从而检查显示布局、数据优先级或者针对数据显示及交互向特定用户提供扩展控制范围。在它的帮助下,咱们能够利用RDBMS与CSV文件导入数据,添加及删除列,执行映射与规约操做或者将表保存在通过压缩的列式存储格式当中。

10.Java音乐

SoundSea容许你们搜索并下载歌曲。其内置有元数据与专辑信息,你们在查找特定歌曲时,SoundSea会在iTunes上查找相关元数据与专辑信息,并显示相关结果。若是匹配的歌曲超过一首,你们可在其中找到本身须要的条目。

歌曲自己下载自Pleer.com,你们还能够根据高品质、低品质或者VBR码率进行过滤。这同时也是一款迷你播放器,供咱们直接聆听歌曲而再也不经由其它音乐库。

11.多维数组

ND4J是一套开源库,可以将多种来自Python社区的科学计算工具引入JVM。其面向生产环境设计,所以运行速度很快但对内存容量却要求不高。在它的帮助下,工程师们可以轻松将算法及接口移植到Java与Scala库当中。

这套库的主要贡献是提供一套通用型n维数组对象,其多平台功能包括GPU与线性代数外加信号处理能力。其与Hadoop及Spark相集成,且提供API以模拟Numpy——一款高人气Python数学库。

12.最佳Java

awesome-java是一套出色的Java框架、库与软件合集。若是你们不太清楚本身应当如何选择具体方案,请务必参考这套清单 ,其中甚至根据类别对各条目加以划分。

其中还包含一部分仍在使用的古老工具,包括可以简化映射的框架,可构建应用周期与依赖性的工具以及负责处理字节码编程的库等等。

相关文章
相关标签/搜索