ホームページ  >  記事  >  Java  >  GitHub にある Java オープンソース ライブラリの詳細な説明 (写真)

GitHub にある Java オープンソース ライブラリの詳細な説明 (写真)

黄舟
黄舟オリジナル
2017-03-25 10:58:251728ブラウズ

プログラマーは、Apache Commons、Spring、Hibernate など、GitHub 上の有名な Java サードパーティ ライブラリをほぼ毎日使用することになります。これらに加えて、他のオープン ソース ライブラリに for を付けたり、スターを付けたりすることもできますが、GitHub には非常に多くのライブラリがあるため、個人が絶えず追加される新しいライブラリを見つけて理解する時間を確保するのは困難です。 . ライブラリがあり、いくつかの新興分野で役立つことがよくあります。

私は JAVA を使用してバックエンド アプリケーションを作成しており、通常は外国の技術専門家のブログ (Tapki、DZone、Google Developer などの技術ブログから) をフォローしているため、新しくて興味深いことに気づきました

Java オープンソース ライブラリ には、プロジェクトに役立つもの、Java プログラミングレベルの向上に役立つゲームの形式のもの、JAVA プログラムの よくある問題 を特定するのに役立つものもあります。 330,000 の Java オープン ソース ライブラリの中から、試してみる価値のある次の Java オープン ソース ライブラリを集めました。

Strman-java –

StringProcessing

Strmen-java は、Maven を通じてプロジェクトに導入できる文字列処理ツールです。 Java 独自の文字列処理メソッドに加えて、Apache Common

LangStringUtils を使用して文字列操作を簡素化することもできます。ただし、上記の 2 つの方法は、日常のプログラミングで遭遇する可能性が最も高い文字列処理にはまだいくらか不十分です。 Strmen-java は、ほぼすべての文字列処理シナリオを解決できる、非常に完全かつ強力なソリューションを提供します。

以下は Strman-java の一般的な使用例です:

文字列の結合

import static strman.Strman.append
append("f", "o", "o", "b", "a", "r")
// result => "foobar"

特定の位置の文字を取得

import static strman.Strman.at
at("foobar", 0)
// result => Optional("f")

2つの文字に含まれるコンテンツを取得

import static strman.Strman.between
between("[abc][def]", "[", "]")

Base64エンコーディング

import static strman.Strman.base64Encode
base64Encode("strman")
// result => "c3RybWFu"

Tablesaw – "Bigデータ「

ビッグ データというと、Hodoop とクラスターのデプロイメントを常に考えますが、ビッグ データの機能を 1 台のマシンに簡単に実装できる、より小規模な方法はあるでしょうか? Tablesaw は、高性能のメモリベースのビッグデータ ソリューションを提供します。

API を使用して RDBMS または CSV からデータを簡単にインポートし、Tablesaw が提供するインターフェイスを使用してデータの並べ替え、フィルター、グループ化、マップ/リデュースなどの操作を行うことができます。

ドキュメントに記載されている手順によれば、500,000,000 行 (1 行あたり 4 フィールド) のデータ ファイルを 10G のメモリに 22 秒でロードできます。クエリ速度はわずか 1 ~ 2 ミリ秒です。

Dex – データ視覚化

Dex は、世界地図、タイムライン、3D グラフィックスなどを含む 50 を超える異なるビュー タイプをサポートするデータ視覚化ソリューションです。 Dex は Java/JavaFX で書かれており、他のプログラム (R 言語で書かれたビッグ データ分析プログラムなど) と簡単に統合して、美しいチャートを作成できます。

Bootique - マイクロサービスフレームワーク

これまで Web アプリケーションを開発するときは、常に最初にアプリケーションを構築し、次にそれをパッケージ化し (war)、次に Tomcat などの Web コンテナーにデプロイする必要がありました。しかし、マイクロサービス

アーキテクチャの人気に伴い、より軽量な非コンテナ開発フレームワークが必要になっています。私が使用しているのは SpringBoot ですが、Bootique も間違いなく優れた選択肢です。さまざまな機能を持つモジュールを挿入して、REST サービス、Web アプリ、スケジュールされたスケジュール、データ移行などの機能をサポートできます。これを使用して作成されたプログラムは Jar ファイルとしてパッケージ化され、コマンド ラインからより柔軟に起動できます。

多くの観点から見ると、これは SpringBoot に非常に似ています。これにより、Java アプリケーションが依存する Web コンテナーから解放され、メイン プログラム

main() Function を作成することができます。追加のモジュールを追加しなくても、Bootqiue を直接使用して Java アプリケーションを実装できます。

Gumshoe – Java プログラム検出

Gumshoe は、プログラムの負荷とパフォーマンスの追跡に役立つ JAVA プログラム検出ツールです。 TCP、UDP、CPU 使用率などの情報を測定することでリソースの使用状況を分析するのに役立ちます。同時に、特定の呼び出しの数や頻度を提供するなど、Java プログラムのコール スタックの分析機能も提供します。方法。

LeakCanary – 内存泄漏监控

内存泄漏一直是令Java程序员苦恼的问题,因为在你开发阶段很难察觉内存泄漏问题,而一旦到了生产环境,则可能因为它而造成严重的后果。LeakCanary是一个内存泄漏检查工具,只需要像下面这样简单加入LeakCanary,它便能全程监控你的应用,并在出现内存泄漏时给你发出警告。LeakCanary同时支持Android和Java,下面是在Android应用中使用的例子。

public class ExampleApplication extends Application {

  @Override public void onCreate() {
    super.onCreate();
    LeakCanary.install(this);
  }
}

awesome-java – JAVA资源大集合

Awesome-java得到了7490个Star,作者将JAVA中那些最常用的第三方库按照分类整理成了一个列表。包含Ancients(古老,但常用的),Bean Mapping,Build,Bytecode Manipulation,Code Analysis,Command-line Argument Parsers,Configuration,Continuous Integration,CSV,Database等等,简直是一本jiava第三方库大全,如果你对项目中应该使用哪一个库不确定,或希望选择几个库来做比较,都可以到awesome-java上进行参考。

99-Problems – 学习JAVA8

99-Problems是一个很有意思的GitHub项目,它对三种不同的语言Java 8,Scala和Haskell分别提出了99个问题,让你通过使用特定语言编程来提供一个最优的解决方案。

这些问题分为不同的难度等级,用*表示,一个星号表示在15分钟内解决,2个星号可能需要30-69分钟,而最难的3个星号,则需要更长时间(90分钟左右),如果你能在限定的时间内使用JAVA8的特性解决所有的问题,那说明你对JAVA8的掌握程度已经非常牢固了。如果你没办法解决所有问题也没关系,你可以查看作者提供的代码示例,这也是你学习JAVA8很好的途径。

Chronicle Map – 高效键值对存储

Chronicle Map是一个基于内存的键值对存储方案。以其低延迟、高并发的特性著称,并在交易及金融系统中得到应用。另外,他还支持持久化到磁盘,以及多键值查询的功能。

下面是官方文档中一段对于从JAVA角度描述Chronicle Map的说明:

From Java perspective, ChronicleMap is a ConcurrentMap implementation which stores the entries off-heap, serializing/deserializing key and value objects to/from off-heap memory transparently. Chronicle Map supports

  • Key and value objects caching/reusing for making zero allocations (garbage) on queries.

  • Flyweight values for eliminating serialization/deserialization cost and allowing direct read/write access to off-heap memory.

ND4J – 科学计算

ND4J是一个开源的数值计算扩展 ,它将 Python中著名的numpy库的很多特性带到了Java中。ND4J可以用来存储和处理大型多维矩阵。它的计算和处理速度很快,但占用的内存却很少,程序员们可以很容易地使用它来与其他JAVA或Scala库作接口。

ND4J主要包括了:一个强大的N维数组对象Array,比较成熟的函数库;实用的线性代数、傅里叶变换和随机数生成函数等。它可以与Hadoop或者Spark这样的工具整合使用。

Automon – Java监控

Automon是一个非常灵活的JAVA监控工具,它结合了AOP(AspectJ)以及JDK和其他依赖库的功能特性,以声明方式去监控你的Java代码。它可以与JAMon,JavaSimon,Yammer Metrics,StatsD和像 perf4j,log4j,sl4j这样的logging库结合使用。

Automon最常被用于跟踪Java方法的调用时长,异常次数等信息,并在你选择的工具中显示监控结果。它并不自己进行任何监控动作,但却很好地扮演了“我应该监控什么”以及“我如何进行监控”这两者之间中间人的角色。而且它的安装也非常简单,只需要简单进行配置便可使用。

Swiss Java Knife – JAVA ツールセット

SJK (Java Swiss Army Knife) は、JVM の監視、デバッグ、チューニングのためのツール セットです。これはコマンド ライン ツールですが、JVM のスレッドの CPU 使用率、GC リアルタイム情報、および基本的なチューニング オプションを照会するために使用すると非常に便利です。 MBean を組み合わせて、必要なすべての情報を JSON 形式でエクスポートすることもできます。

以上がGitHub にある Java オープンソース ライブラリの詳細な説明 (写真)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。