GitHub旅行者指南:您应该尝试的13个Java项目

2023-11-06 00:51

本文主要是介绍GitHub旅行者指南:您应该尝试的13个Java项目,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

我们已经在GitHub上收集了一些实用且简单的Java存储库

GitHub上有很多存储库。 有些您想分叉,有些可能会帮助您编写自己的代码,有些则是为了帮助您了解有关编程的更多信息。 无论哪种方式,都有很多可以看的东西,而没有足够的时间来使用它们。

在接下来的文章中,我们收集了一些最有趣,最有用的Java存储库,这些存储库在过去的几个月中引起了我们的注意。 愿叉子与你同在。

在回购中寻找针头

git存储库托管服务GitHub为来自全球3,800万个存储库的1500万开发人员提供服务。 330,550个存储库是Java。 简而言之,GitHub拥有来自众多开发人员的大量信息。

这些可能包括与您当前项目相关的代码,或者是旨在帮助您使用其他编程语言的简单游戏。 无论您要寻找什么,都可以找到数百种,这才是真正的问题。

这就是为什么我们决定帮助您寻找存储库的原因,因此您至少会知道从哪里开始。

1.最小的Java简单性

Bootique是用于构建无容器可运行Java应用程序的最低要求的技术。 该项目允许您创建基于模块的REST服务,Web应用程序,作业,数据库迁移任务等。 这样,您将能够像简单命令一样运行它们。

该项目的目标是从Java容器中释放应用程序,并让开发人员收回其main()方法。 有一个好处-有一些内置命令,因此,如果您没有那么多代码,或者如果您没有将任何模块导入到您的应用程序中,您仍然可以使用Bootique来执行它们。

2.优雅的问题解决

这个名字说明了一切: 99问题 。 如您所料,这是一系列问题,旨在帮助您练习逻辑编程技能。 您可以选择使用Java 8,Scala或Haskell解决问题,最终目标是找到最优雅的解决方案。

如果您是拼图大师–不用担心。 难度级别不同,每个级别的时间范围从15分钟到几个小时不等。 没有人会检查您实际解决每个问题所需的时间,但是它使您基本了解应该花多长时间。

如果您已经解决了这99个问题,那么您可能会面临另一个挑战。 您应该查看面向开发人员的迷你益智游戏: Java Deathmatch 。 万一您陷入困境,解决方案就在这里 ,但是,嘿! 不要偷看

3.字符串操作

Strman-java存储库是一个Java 8库,专门用于处理String。 如您所知,这很简单。 由于它在Maven上可用,因此您要做的就是向您选择的构建工具添加依赖项。

如果您使用过Kik (Node.js的扩展名),并且听说过拆掉leftPad危机时,您可能会喜欢Strman的选择,即返回给定长度的新字符串,以便填充字符串的开头。

import static strman.Strman.leftPad
leftPad("1", "0", 5)// result => "00001"

除此之外,您还将找到一个函数列表,其中包括将字符串追加到值,在特定索引处获取字符并返回一个从头到尾之间包含字符串的数组等等。

4.数据浏览器

如果您想以一种很酷的方式与您的数据进行交互,则应查看Dex 。 有了它,您可以提取,转换和可视化数据,同时还具有预测功能。 您可以将可视化内容发布为3D或任何其他想要HTML变量。

Dex使您可以生成50多种不同的可视化模式,包括世界地图,参与时间轴,网络使用情况等等。 您可以将其与正在运行的R实例集成,并利用复杂的统计分析和预测分析。

弦

民主还是共和党? 用和弦图显示关系

5.小大数据

Tablesaw是内存中的数据表,其中包括数据工具和面向列的存储格式。 它的设计理念是,没有人需要为较小的任务进行分布式分析,并且您可以在单个服务器上与2M行表进行交互工作。

您可以使用Tablesaw来应用规则,以确定显示演示文稿的布局,数据优先级,或添加一系列扩展以使用户可以控制数据显示和交互。 使用它,您可以从RDBMS和CSV文件导入数据,添加和删除列,执行映射和简化操作或以压缩的列存储格式存储表。

6.关键值存储

编年史地图是内存中的键值存储。 它设计用于低延迟和/或多进程应用程序,例如交易和金融市场应用程序。 该存储库的目标是读写查询的中值延迟,并使您编写的查询可以扩展到服务器中硬件执行线程的数量。

这里的主要用例是在单个服务器(如Redis)中使用时替换较慢的键值存储,或替换类似的以JVM为中心的解决方案以加速它们。 您还可以将部分应用程序状态移出Java堆,并减少堆大小和GC压力。

7.负载调查器

Gumshoe使您可以监视应用程序性能统计信息。 使用它,您可以查明代码行,并获取与调用堆栈和单个堆栈框架相关的统计信息。 这意味着您将能够分析资源使用情况(TCP,UDP,文件系统或处理器使用情况)。

该存储库允许捕获,过滤和可视化生成的统计信息,并为您提供火焰图和根图的直观视图。 如果您正在寻找应用程序中更具体的内容,则还可以在捕获和/或可视化期间过滤堆栈帧,并在运行时对其进行更改。

8. Java音乐

SoundSea可让您搜索和下载内置了元数据和专辑封面的歌曲。当您搜索某首歌曲时,SoundSea会在iTunes上查找相关的元数据和专辑封面,并将其呈现给您。 如果有不止一首歌曲,则可以搜索正确的歌曲。

歌曲本身是从Pleer.com下载的,您可以过滤高,低或VBR比特率。 如果您感到幸运,甚至可以将其配置为立即下载第一个搜索结果。 它也是一个迷你播放器,因此您可以简单地听这首歌而不会超载音乐库。

声海

搜索并下载

9.检测您的泄漏

LeakCanary是一个开放源代码库,旨在帮助您阻止内存泄漏。 您可以在调试版本中使用它来检测Java(和Android)中的内存泄漏。 正如他们在GitHub页面上所写的那样,“小小的泄漏将击沉一艘大船。” (-本杰明·富兰克林)。

设置LeakCanary后,可以对其进行配置,以在检测到活动内存泄漏时自动显示通知。 另一个可能的用途是设置智能销,以检测是否已对某些收藏品进行了垃圾收集。

10.多维数组

ND4J是一个开放源代码库,它将来自Python社区的直观科学计算工具引入JVM。 它专为生产环境而设计,因此运行速度很快,但对RAM的要求却最低。 有了它,工程师可以轻松地将算法和接口移植到其他Java和Scala库中。

该库提供的主要功能是通用的n维数组对象,包括GPU和线性代数以及信号处理功能在内的多平台功能。 它与Hadoop和Spark集成在一起,其API模仿了流行的Python数学库Numpy的语义。

11.监视Java

不管使用哪种监视工具, Automon都将其功能与AOP(AspectJ)结合在一起,以声明方式监视Java代码,JDK和相关库。 它可与已知的监视工具(如JAMon,JavaSimon,Yammer Metrics,StatsD)以及包括perf4j,log4j,sl4j等在内的日志记录库一起使用。

Automon通常用于跟踪方法调用时间和异常计数,在所选工具内部存储和显示数据。 您应该意识到,它本身并没有进行任何监视,而是充当“我应该监视什么”和“我如何监视它”之间的中间人,但是它仍然对您很有用。

您可以尝试用于生产监控的另一个很酷的工具是Takipi 。 有了它,您将能够知道何时以及为什么代码中断,查看所有异常并获取它们的完整堆栈,源和状态。

12.照顾好您的Java

Jvm-tools或SJK是用于JVM故障排除,监视和分析的一组工具。 它是一种命令行工具,可利用JVM的标准诊断接口(例如JMX,JVM附加和性能计数器),同时在顶部添加更多逻辑以用于常见的故障排除情况。

该库允许池化目标JVM的线程CPU使用率,并定期向控制台报告,实时报告有关GC的信息并获得基本的样本探查器功能。 在其中,您还将找到从命令行对MBean进行基本操作的工具,并将目标Java进程的所有MBean转储到JSON。

13.有史以来最好的Java

认识awesome-java 。 这是精选的Java框架,库和软件的清单。 如果您不确定要选择什么,请查看以下列表。 它甚至被过滤到不同的类别中,因此您将了解要关注的内容。

您可以找到仍在使用的古老工具,简化Bean映射的框架,处理构建周期和应用程序依赖性的工具以及以编程方式操作字节码的库。

最后的想法

这只是GitHub冰山一角,我们确信还有更多项目可以帮助您度过时光或增加您的代码。 如果我们错过了某些事情,而您认为必须在列表中,请在下面给我们一行。

翻译自: https://www.javacodegeeks.com/2016/07/hitchhikers-guide-github-13-java-projects-try.html

这篇关于GitHub旅行者指南:您应该尝试的13个Java项目的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/353527

相关文章

在C#中分离饼图的某个区域的操作指南

《在C#中分离饼图的某个区域的操作指南》在处理Excel饼图时,我们可能需要将饼图的各个部分分离出来,以使它们更加醒目,Spire.XLS提供了Series.DataFormat.Percent属性,... 目录引言如何设置饼图各分片之间分离宽度的代码示例:从整个饼图中分离单个分片的代码示例:引言在处理

Java实现字符串大小写转换的常用方法

《Java实现字符串大小写转换的常用方法》在Java中,字符串大小写转换是文本处理的核心操作之一,Java提供了多种灵活的方式来实现大小写转换,适用于不同场景和需求,本文将全面解析大小写转换的各种方法... 目录前言核心转换方法1.String类的基础方法2. 考虑区域设置的转换3. 字符级别的转换高级转换

Python列表的创建与删除的操作指南

《Python列表的创建与删除的操作指南》列表(list)是Python中最常用、最灵活的内置数据结构之一,它支持动态扩容、混合类型、嵌套结构,几乎无处不在,但你真的会创建和删除列表吗,本文给大家介绍... 目录一、前言二、列表的创建方式1. 字面量语法(最常用)2. 使用list()构造器3. 列表推导式

SpringBoot简单整合ElasticSearch实践

《SpringBoot简单整合ElasticSearch实践》Elasticsearch支持结构化和非结构化数据检索,通过索引创建和倒排索引文档,提高搜索效率,它基于Lucene封装,分为索引库、类型... 目录一:ElasticSearch支持对结构化和非结构化的数据进行检索二:ES的核心概念Index:

Python数据验证神器Pydantic库的使用和实践中的避坑指南

《Python数据验证神器Pydantic库的使用和实践中的避坑指南》Pydantic是一个用于数据验证和设置的库,可以显著简化API接口开发,文章通过一个实际案例,展示了Pydantic如何在生产环... 目录1️⃣ 崩溃时刻:当你的API接口又双叒崩了!2️⃣ 神兵天降:3行代码解决验证难题3️⃣ 深度

Python+FFmpeg实现视频自动化处理的完整指南

《Python+FFmpeg实现视频自动化处理的完整指南》本文总结了一套在Python中使用subprocess.run调用FFmpeg进行视频自动化处理的解决方案,涵盖了跨平台硬件加速、中间素材处理... 目录一、 跨平台硬件加速:统一接口设计1. 核心映射逻辑2. python 实现代码二、 中间素材处

Java方法重载与重写之同名方法的双面魔法(最新整理)

《Java方法重载与重写之同名方法的双面魔法(最新整理)》文章介绍了Java中的方法重载Overloading和方法重写Overriding的区别联系,方法重载是指在同一个类中,允许存在多个方法名相同... 目录Java方法重载与重写:同名方法的双面魔法方法重载(Overloading):同门师兄弟的不同绝

Spring配置扩展之JavaConfig的使用小结

《Spring配置扩展之JavaConfig的使用小结》JavaConfig是Spring框架中基于纯Java代码的配置方式,用于替代传统的XML配置,通过注解(如@Bean)定义Spring容器的组... 目录JavaConfig 的概念什么是JavaConfig?为什么使用 JavaConfig?Jav

Java数组动态扩容的实现示例

《Java数组动态扩容的实现示例》本文主要介绍了Java数组动态扩容的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录1 问题2 方法3 结语1 问题实现动态的给数组添加元素效果,实现对数组扩容,原始数组使用静态分配

Java中ArrayList与顺序表示例详解

《Java中ArrayList与顺序表示例详解》顺序表是在计算机内存中以数组的形式保存的线性表,是指用一组地址连续的存储单元依次存储数据元素的线性结构,:本文主要介绍Java中ArrayList与... 目录前言一、Java集合框架核心接口与分类ArrayList二、顺序表数据结构中的顺序表三、常用代码手动