今天我们将整理一大波干货满满的优秀Java项目。

GitHub可谓一座程序开发的大宝库,有些项目值得fork,有些则能帮助我们改进自有代码或者学习编程技能。无论如何,开发工作当中我们几乎不可能绕得开GitHub。

下面,我们将一同分享有趣且颇为实用的Java库,大家请任取所需、不用客气~

1

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

该项目的目标在于将应用从Java容器中解放出来,允许开发者重新回归main()方法。另外其中还包含部分内置命令,因此就算各位需要处理的代码量不多或者并未向应用中导入任何模块,仍然能够利用Bootique对其加以执行。

2

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

如果大家喜欢解题,其中还提供多种不同层级的难度供各位选择。另外,如果大家将全部99道难题解决掉,则可进一步冲击Java Deathmatch。

3

Strman-java库是一套Java 8库,专门用于处理字符串。由于其可用于Maven,因此大家只需要面向选定的构建工具添加关联性即可使用。

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

4

如果大家希望通过酷炫的方式进行数据交互,那么Dex绝对不容错过。它能够帮助我们提取、转换及可视化数据,同时附带预测功能。大家可以将可视化结果发布为3D或者其它HTML变量形式。

Dex允许我们生成超过50种不同的可视化模式,其中包括世界地图、参与时间表、网络使用情况等。大家也可以利用R与其运行实例相结合,从而构建起复杂的统计分析与预测分析体系。

5

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

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

6

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

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

7

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

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

8

SoundSea允许大家搜索并下载歌曲。其内置有元数据与专辑信息,大家在查找特定歌曲时,SoundSea会在iTunes上查找相关元数据与专辑信息,并显示相关结果。如果匹配的歌曲超过一首,大家可在其中找到自己需要的条目。

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

搜索与下载

9

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

在LeakCanary设置完成后,大家可以利用其自动检查泄漏并在发现问题时给出通知。

10

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

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

11

无论大家使用哪种监控工具,Automon都能够将其与AOP(AspectJ)相结合以实现Java代码、JDK以及依赖库监控。其可与其它各知名监控工具相协作,例如JAMon、JavaSimon、Yammer Metrics以及StatsD等,同时亦支持各类日志记录库,包括perf4j、log4j、sl4j等等。

另一款出色的生产型监控工具为Takipi。它能够帮助大家了解自己的代码何时及为何发生崩溃,查看全部意外状况并获取与之相关的全部堆栈、源与状态信息。

12

Jvm-tools,或者SJK,是一套用于JVM故障排查、监控与配置的工具组合。它使用JVM的标准诊断接口(例如JMX、JVMattach与perf计数器),同时添加了更多逻辑以应对各类常见故障排查用例。

这套库允许我们对目标JVM的CPU线程使用情况进行池化,同时定期向控制台报告实时CG信息并提供基础样本分析功能。在这里,我们可以通过命令行配合MBean执行各基本操作,同时将目标Java进程的全部MBeans转储为JSON格式。

13

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

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

总结陈词

这当然只是GitHub的冰山一角,毫无疑问还有更多项目值得大家审视并用于改善自身代码工程。也欢迎大家结合自己的经验在评论中提供更多推荐!

长按二维码 ▲

订阅「架构师小秘圈」公众号

如有启发,帮我点个在看,谢谢↓

立足GitHub学编程:13个不容错过的Java项目相关推荐

  1. GitHub 上最受欢迎的 5 大 Java 项目

    导读:GitHub 上有大约有 744K 多的 Java 项目,但是最让开发人员感兴趣的有哪些项目?本文列举了 GitHub 上最受欢迎的 5 个 Java 项目,从 Mockitos 到 Guava ...

  2. 几天后自动领取java怎么做的_学了14天,终于把Java项目一做完啦

    原标题:学了14天,终于把Java项目一做完啦 今天是刘小爱自学Java的第113天. 感谢你的观看,谢谢你. 话不多说,开始今天的学习: 今天过后项目一也就算是结束了. 明天开始学SSM框架,再用S ...

  3. java web开源项目源码_适合Java新手的开源项目集合——在 GitHub 学编程

    作者:HelloGitHub-老荀 当今互联网份额最大的编程语言是哪一个?是 Java!这两年一直有听说 Java 要不行了.在走下坡路了.没错,Java 的确在走下坡路,未来的事情的确不好说,但是瘦 ...

  4. java串口编程程序_想成为程序员,学编程,Python、Go、Java、C++,你选什么?

    很多时候,我们都不得不做出选择.就拿想成为程序员学编程这件事来说,想学一门编程语言,是选择最新潮的Python.Go,还是选择比较传统的JAVA和C++呢? 要做出选择,就得先进行比较. 其实不同编程 ...

  5. GitHub上最牛逼的10个Java项目,号称Star收割机,Dubbo只能排 12

    点击上方蓝色"程序猿DD",选择"设为星标" 回复"资源"获取独家整理的学习资料! 来源 | 公众号「阿飞的博客」 1. CS-Notes ...

  6. GitHub上最受欢迎的 5 大 Java 项目

    1. Mockito Mockito 并不是无酒精混合饮料的意思.Mockito 是一个针对 Java 的 mocking 框架.它与 EasyMock 和jMock 很相似,但是通过在执行后校验什么 ...

  7. pyqt快速编程指南 源码_适合 C++ 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 俗话说:万事开头难,学习编程也是一样.在 HelloGitHub 的群里,经常遇到有小伙伴询问编程语言如何入门方面的问题,如: 我要学习某一门编程语言,有什么开源 ...

  8. 游戏中学会撸代码:这些编程学习网站不容错过

    下面这些网站是从200多个游戏编程网站选出的12个网站,你可以通过下面的网站在游戏中学习编程. 当然这些网站都是免费的,Mybridge A.I也评估了这些,这些网站可以帮助喜欢编程的人员学习编程语言 ...

  9. 适合 JS 新手学习的开源项目——在 GitHub 学编程

    作者:HelloGitHub-小鱼干 这里是 HelloGitHub 的<GitHub 上适合新手的开源项目>系列的最后一篇,系列文章: C++ 篇 Python 篇 Go 篇 Java ...

最新文章

  1. 三层代码讲解--第一课
  2. 备份软件 FreeFileSync 怎么用
  3. ans_rproxy 说明
  4. 速率法和终点法的区别_生化分析仪检测中的终点法、两点法、双波长法有什么区别...
  5. C++的字符串分割函数
  6. 转:使用XMLSerializer类持久化数据
  7. java sleep方法_一文搞懂 Java 线程中断!
  8. python操作内置Sqlite数据库
  9. C++特殊符号:【优先级】
  10. 一口气看完了蔡学镛的--爪哇夜未眠(第二版)
  11. CODING Pages 服务全面升级,更快更稳更可靠!
  12. 龙果学院Elasticsearch顶尖高手系列-高手进阶篇完整版
  13. 计算机启动显示安装程序正在启动服务,电脑停在“安装程序正在启动服务”解决办法...
  14. java有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡报到3的人退出圈子,问最后留下的是原来第几号的那位。
  15. java整理快捷鍵_常用Eclipse快捷键整理
  16. 科普:Flutter应用打包、修改图标、修改启动页和app名字、加固后重新V1V2签名
  17. Java设置定时器一种简单方法
  18. 【连载】线性代数笔记——第二章矩阵2
  19. 掌握这5款 Edge插件,让你的浏览器使用更高效!
  20. 获取当前登录用户的IP地址代码

热门文章

  1. java生成验证码图片中仅有线条_java生成验证码步骤归纳总结
  2. linux yum安装分区工具,搭建本地和网络yum源、源码编译安装软件及磁盘分区管理...
  3. oracle sql 全是子查询查询速度太慢如何优化_如果面试官问你如何优化mysql分页查询,请把这篇文章甩给他!...
  4. easyui数据表格重置_Python办公自动化,自动更新表格,告别繁琐
  5. xp用光盘安装linux系统安装教程视频,光盘重装xp系统图文教程
  6. Linux命令CURL用法
  7. GitHub Checks API帮助应用实现进一步的持续集成
  8. 芝麻HTTP:TensorFlow基础入门
  9. 产品设计体会(3000)项目与文档,系列说明
  10. Swift - 简单的原生与网页交互