本文转自互联网,个人收藏所用。

下面,我们将一同分享各有趣且颇为实用的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的冰山一角,毫无疑问还有更多项目值得大家审视并用于改善自身代码工程。也欢迎大家结合自己的经验在评论中提供更多推荐!

Java框架介绍-13个不容错过的框架项目的更多相关文章

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

    立足GitHub学编程:13个不容错过的Java项目 今天我们将整理一大波干货满满的Java示例代码与能力展示素材. GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自 ...

  2. 13个不容错过的Java项目

    今天我们将整理一大波干货满满的Java示例代码与能力展示素材. GitHub可谓一座程序开发的大宝库,有些素材值得fork,有些则能帮助我们改进自有代码或者学习编程技能.无论如何,开发工作当中我们几乎 ...

  3. Java常用日志框架介绍

    Java常用日志框架介绍 java日志概述 对于一个应用程序来说日志记录是必不可少的一部分.线上问题追踪,基于日志的业务逻辑统计分析等都离不日志.java领域存在多种日志框架,目前常用的日志框架包括L ...

  4. java常用的框架介绍

    一.SpringMVC http://blog.csdn.net/evankaka/article/details/45501811 Spring Web MVC是一种基于Java的实现了Web MV ...

  5. Java常用日志框架介绍(转)

    Java常用日志框架介绍 java日志概述 对于一个应用程序来说日志记录是必不可少的一部分.线上问题追踪,基于日志的业务逻辑统计分析等都离不日志.java领域存在多种日志框架,目前常用的日志框架包括L ...

  6. .NET平台开源项目速览(13)机器学习组件Accord.NET框架功能介绍

    Accord.NET Framework是在AForge.NET项目的基础上封装和进一步开发而来.因为AForge.NET更注重与一些底层和广度,而Accord.NET Framework更注重与机器 ...

  7. java三大框架介绍

    常听人提起三大框架,关于三大框架,做了如下了解: 三大框架:Struts+Hibernate+Spring java三大框架主要用来做WEN应用. Struts主要负责表示层的显示 Spring利用它 ...

  8. 十款不容错过的Swift iOS开源项目及介绍

    1.十款不容错过的Swift iOS开源项目. http://www.csdn.net/article/2014-10-16/2822083-swift-ios-open-source-project ...

  9. golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍

    golang学习笔记17 爬虫技术路线图,python,java,nodejs,go语言,scrapy主流框架介绍 go语言爬虫框架:gocolly/colly,goquery,colly,chrom ...

随机推荐

  1. LinuxMM--Memory Pressure

    Memory pressure定义在操作系统中,用户分配.文件缓存.网卡包缓冲区等等都会消耗内存.一旦出现内存紧张就会导致memory pressure.引发当某个任务需要请求内存时就有可能引发mem ...

  2. H5前端性能测试快速入门

    前言 说到H5测试,对于做WEB测试的同学来说再熟悉不过了,它包括页H5功能测试,前端性能测试,浏览器兼容性能测试,以及服务端性能测试.那本文谈到的则是H5前端性能测试,并希望通过阅读本文后,能够知道 ...

  3. DbExpressionBinding requires an input expression with a collection ResultType. 参数名: input

    使用linq多表连接遇到的问题: 解决方案:注释为出错代码,更改使用GroupBy解决问题 context.ERG_TipOffsInfo.GroupBy(x => x.Data,(Data,C ...

  4. js高阶函数

    我是一个对js还不是很精通的选手: 关于高阶函数详细的解释 一个高阶函数需要满足的条件(任选其一即可) 1:函数可以作为参数被传递 2:函数可以作为返回值输出 吧函数作为参数传递,这代表我们可以抽离一 ...

  5. redis客户端连接异常

    本文参考:http://mdba.cn/2015/04/02/redistwemproxy-%e5%ae%a2%e6%88%b7%e7%ab%af%e8%bf%9e%e6%8e%a5%e5%bc%82 ...

  6. Combination Sum II Combinations

    https://leetcode.com/problems/combination-sum-ii/ 题目跟前面几道题很类似,直接写代码: class Solution { public: vector ...

  7. oracle入门必备

    //................创建表空间 \  赋予角色  \ 创建数据表  \  插入数据  \  创建序列  \ 添加注释   ........................... --创 ...

  8. ARCgis已知线裁剪已知面

    经常遇到需要在ArcGIS中,根据已知线图层(要素)切分已知面图层(要素).经过研究,利用topology拓扑菜单中的construct features可以实现.具体如下 现有用线图层A.面图层B, ...

  9. Hyper-V初涉_共享式网络链接

    任何一台计算机,如果不能与网络连通,可以说已经失去了大部分的功能,Windows 8尤是如此,虚拟机亦是如此. Hyper-V并不能对物理机的网卡进行识别,所以需要借助虚拟网卡通过物理机的网络共享实现 ...

  10. Mac OS X双系统变回虚拟机

    Mac OS X双系统变回虚拟机 自从装了双系统后,感觉不要太好,装了虚拟机就开始有工作的干劲了.不妙的是,我在Win7系统里并没有装office,用不了word文档就写不了笔记和总结.我不太想在Wi ...