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

文章转自《http://developer.51cto.com/art/201607/514785.htm》,感谢作者分享!

---------------------------------------------------------------------------------------

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

GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自有代码或者学习编程技能。无论如何,开发工作当中我们几乎不可能绕得开GitHub。下面,我们将一同分享各有趣且颇为实用的Java库,大家请任取所需、不用客气~

今天我们将整理一大波干货满满的Java示例代码与能力展示素材。

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

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

1.极致精简的Java

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.键值存储

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

其主要用途包括在单一服务器(例如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。其面向生产环境设计,因此运行速度很快但对内存容量却要求不高。在它的帮助下,工程师们能够轻松将算法及接口移植到Java与Scala库当中。

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

11.监控Java

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

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

12.打理Java

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

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

13.最佳Java

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

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

总结陈词

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

时间: 2024-09-14 19:46:55

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

hadoop-Hadoop刚开始学,请问如何创建MapReduce的Java项目

问题描述 Hadoop刚开始学,请问如何创建MapReduce的Java项目 我在虚拟机里搭了一个Hadoop的伪分布式,版本是2.7.0,然后希望在Windows的eclipse里进行开发. 在eclipse中创建了Java项目,不知道要添加哪些jar,在网上找了半天了,也没有找到答案. 一般来说,用eclipse开发必须要安装插件吗?我无论是自已编译插件还是从网上下载别人编译好的插件,eclipse里都会提示缺少类 解决方案 http://blog.csdn.net/liuc0317/art

我姐和我女友这样学编程:坚守五个原则

就像我前面日志里提到的,伊娃和芳来旧金山跟我学编程.在这篇博客中,我会介绍我是怎么教她们的,我构建教她们的方式的理由,以及这种方法是怎么起作用的.按时间顺序去列明她们所学到.做到的那些事儿很简单,但是,这没什么帮助,而且你也容易错过重点.重要的是要了解详情,以及为什么它管用,所以我将从基本原则来开始.做好准备,文章比较长. 在你的整个编程历程中,以下原则要牢牢记住: 1)传播: 在伊娃和方开始之前,我为她们创建了个博客.我告诉她们,记录下她们的编程之旅和她们所学到的.在开始的时候是很难的,你可以

《趣学JavaScript——教孩子学编程》——导读

前言 趣学JavaScript--教孩子学编程 欢迎阅读本书!在本书中,你将学习用一种Web语言(JavaScript)来编写程序.但是更重要的是,你将成为一名程序员,即不仅会使用计算机而且会控制计算机的人.一旦学会了编程,你可以让计算机遵从你的意愿去做你想做的任何事情. JavaScript是一门不错的语言,值得学习,因为它随处可用.诸如Chrome.Firefox和Internet Explorer这样的Web浏览器,都使用JavaScript.借助JavaScript的强大功能,Web程序

Black Hat 2017:不容错过的七大主题演讲

激动人心的Black Hat 2017美国黑帽大会即将拉开帷幕,列出今天这份重要演讲清单,来看看今年都涉及哪些主题. 今年的这些演讲将涵盖移动网络安全漏洞.入侵电子门锁到监控家庭网络流量等极为广泛的研讨方向.下面E安全带大家进入不容错过的七大2017美国黑帽大会主题演讲(排名不分先后,仅遵循其在本次会议上进行的具体时间顺序). 一.风力发电场控制网络攻击风险 主讲人: 杰森·斯塔格斯(Jason Staggs),塔尔萨大学安全研究员 地点: Lagoon ABCGHI 日期: 7月26日星期三,

科技圈下一个风口 智能家居不容错过

会学习无人车目标锁定"零事故" 如今,越来越多的车辆开始具备学习能力,能够感知.推理并采取行动,以适应真实的世界.无人驾驶汽车能够从数百万辆汽车的数据和经验中学习,从而最终实现零事故.更安全的道路.更令人愉悦的出行.百度无人车去年在乌镇世界互联网大会上大放异彩,在无人驾驶的情况下,可以准确地辨识红绿灯.超车.换道等等. 今年CES上,一辆崭新的宝马BMW i8汽车引起了不少人的关注.当乘客进入到驾驶舱,只需戴上微软HoloLens头戴式显示器,眼前便会呈现关于行驶数据.交通和天气状况以

SDCC 2017·深圳站八大不容错过的理由

在互联网大潮下,2017年的就业环境越发恶劣,技术人如何去适应技术变革和学习新技术,以及如何快速增强自身的技术实力成为亟需解决的问题.如果你在看完一本技术图书后还是疑惑不解,处于目前项目遇到困难时无人请教的尴尬境地,亦不清楚业界同行在使用什么技术以及用得如何.还在做一名劣质的勤奋者--你或许需要别人醍醐灌顶的几句话,优秀的技术人才思考和解决问题的方式,甚而他们在面对成长瓶颈时的晋升之道. 成长固然没有固定的公式可循,但可以通过别人处事之道来启发自己,而技术人也理应时刻为自己充电,从而有效地为自己

想学编程并不难 这样做就可以了

不论你是想自己设计游戏,还是开发iPhone或安卓手机上的应用,还是仅仅为了娱乐,学习编程语言都是一条必经之路.编程语言种类繁多,用途各 异,然而一旦掌握其中之一,其他的也就迎刃而解.作为初学者,你可能要先从Java或HTML开始学,一旦掌握了一门编程语言,你就发挥无穷的想象,开发 各种神奇的软件啦. 步骤 1.确定目标 Learn a Programming Language Step 1 Version 2.jpg 学习编程语言既充满乐趣,又充满挑战.有些花费多年时间学习一门编程语言的大学生

《趣学JavaScript——教孩子学编程》——第1章 认识JavaScript1.1 认识JavaScript

第1章 认识JavaScript 趣学JavaScript--教孩子学编程 计算机是功能强大到令人难以置信的工具,它能够执行很多惊人的操作,例如,下国际象棋比赛.提供数以千计的Web页面,或者在数秒钟之内执行数百万次复杂的计算.但是,深入去看,计算机实际上是很傻的.计算机只能够执行人类告诉它的事情.我们使用计算机程序告诉计算机采取什么动作,而程序只是令计算机遵从的指令集合.没有程序的话,计算机什么也干不了. 1.1 认识JavaScript 更糟糕的是,计算机不能理解英语或任何人类语言.计算机程

人人都该学编程时 这些孩子已经玩转编程

近日,"人人都该学编程"成了大家热议的话题.除了程序员岗位的急缺以外,工作本身所要求的语言.逻辑.严谨等也被大家称道,遗憾自己没有程序员的思维看问题.其实,在大家后悔之时,已经有一批孩子从小就深度接触编程,十几岁时就已凭借"过硬"的本事,名声大震. 童阿扬.库雷(Ayan Qureshi) 6岁 全球最小的微软认证专家(Microsoft Certified Professional,简称MCP).据悉,阿扬.库雷在5岁11个月大时便已获得了微软专家认证资格.此前通