13 Java Projects You Can't Miss

GitHub is a great treasure trove for program development. Some materials are worth forking, while others can help us improve our own code or learn programming skills. In any case, it is almost impossible for us to bypass GitHub in our development work.

Below, we will share interesting and practical Java libraries together, please take whatever you need, you are welcome~

 

1. Extremely lean Java

Bootique is a minimalist technology for building containerless Java applications that can run. The project allows you to create REST services, web applications, tasks, database migrations, and more, all based on modules. Alternatively, you can use it as a simple command.

The goal of this project is to free the application from the Java container, allowing developers to return to the main() method. It also includes some built-in commands, so even if you don't have much code to deal with or you haven't imported any modules into your application, you can still use Bootique to execute them.

2. An elegant approach to problem solving

99-problems , you can know a thing or two about its function just by looking at the name. Obviously, its role is to help you hone specific skills in logic programming. You can choose to use Java 8, Scala or Haskell for problem solving and finally find the most refined solution.

If you like solving problems, there are also a variety of different levels of difficulty for you to choose from. In addition, if you solve all 99 puzzles, you can further attack the Java Deathmatch. If you're stumped, check out the puzzle here - but be warned, it's better to read it after thinking about it.

3. String manipulation

The Strman-java library is a set of Java 8 libraries dedicated to working with strings. Since it's available for Maven, you just need to add dependencies to your chosen build tool to use it.

If you've used Kik and heard about the leftPad problem it has, then Strman might be a better choice - it returns a new string of a certain length, with the beginning automatically filled in. In addition, there is a full list of functions, including appending strings to values, extracting characters from a specific directory, and returning arrays between the beginning and end with strings, and more.

4. Data browsing

If you want to interact with data in a cool way, Dex is definitely not to be missed. It helps us extract, transform, and visualize data, along with predictive capabilities. You can publish visualizations as 3D or other HTML variables.

Dex allows us to generate over 50 different visualization modes, including world maps, engagement timelines, network usage, and more. You can also use R to combine with its running examples to build complex statistical analysis and predictive analysis systems.


Who will win the Democrats or the Republicans? Use a chord diagram to find out.

 

5. Little Big Data

Tablesaw is a suite of in-memory data tables that includes a variety of data tools and column-oriented storage formats. It was designed so that no one is going to perform distributed analysis for small tasks, and that people can interact with tables of the order of 2 million rows on a single server.

You can use Tablesaw to enforce various rules to check display layout, data prioritization, or to provide specific users with extended control over data display and interaction. With its help, we can use RDBMS and CSV files to import data, add and delete columns, perform map and reduce operations, or save tables in compressed columnar storage format.

6. Key-value store

Chronicle Map is an in-memory key-value store designed for low-latency and/or multi-process applications, such as trading and financial market applications. This set of libraries is mainly aimed at moderate read and write query latency scenarios, allowing users to write appropriate query mechanisms based on the number of hardware execution threads in the server.

Its main uses include replacing low-speed key-value storage solutions in a single server (such as Redis), or replacing comparable JVM-oriented solutions for speed gains. You can also move some application state out of the Java heap to reduce heap size and GC pressure.

7. Load Survey Tool

Gumshoe allows you to monitor your application performance statistics. With it, we can pinpoint specific lines of code and understand statistics related to stack calls and individual stack frames to analyze exactly resource usage (e.g. TCP, UDP, file system or processor usage).

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

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框架、库与软件合集。如果大家不太清楚自己应当如何选择具体方案,请务必参考这套清单 ,其中甚至根据类别对各条目加以划分。

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

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=326514444&siteId=291194637