>  기사  >  Java  >  GitHub의 Java 오픈 소스 라이브러리에 대한 자세한 설명(그림)

GitHub의 Java 오픈 소스 라이브러리에 대한 자세한 설명(그림)

黄舟
黄舟원래의
2017-03-25 10:58:251704검색

프로그래머로서 귀하는 GitHub에서 Apache Commons, Spring, Hibernate 등과 같은 유명한 Java 타사 라이브러리를 거의 매일 사용하게 됩니다. 이 외에도 fork 또는 Star의 다른 오픈 소스 라이브러리를 사용할 수도 있지만 GitHub에는 라이브러리가 너무 많아서 개인이 새로운 라이브러리를 발견하고 이해할 시간을 갖기가 어렵습니다. 지속적으로 추가되고 있으며 일부 신흥 분야에서 종종 도움이 될 수 있습니다.

저는 JAVA를 사용하여 백엔드 애플리케이션을 작성해 왔으며 주로 외국 기술 전문가의 블로그(Tapki, DZone, Google Developer 등의 기술 블로그)를 팔로우하여 몇 가지 새롭고 흥미로운 것Java 오픈 소스 라이브러리 중 일부는 프로젝트에 도움이 될 수 있고, 일부는 Java 프로그래밍 수준을 향상시키는 데 도움이 되는 게임 형태이며, 다른 일부는 귀하의 프로젝트에 도움이 될 수 있습니다. 에서 JAVA 프로그램 FAQ를 확인하세요. 330,000개의 JAVA 오픈소스 라이브러리 중 시도해 볼 가치가 있는 다음과 같은 Java 오픈소스 라이브러리를 모아봤습니다.

Strman-java – 문자열처리

Strmen-java는 Maven을 통해 프로젝트에 도입할 수 있는 문자열 처리 도구입니다. Java의 자체 문자열 처리 방법 외에도 Apache Common LangStringUtils를 사용하여 문자열 작업을 단순화할 수도 있습니다. 그러나 위의 두 가지 방법은 일상적인 프로그래밍에서 가장 흔히 접할 수 있는 문자열 처리에는 여전히 다소 부족합니다. 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")

특정 문자 가져오기 두 글자에 담긴 내용

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

Base64 인코딩

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

Tablesaw – “빅 데이터”

빅 데이터라고 하면 항상 Hodoop과 클러스터 배포를 떠올리지만, 단일 머신에서 빅데이터의 기능을 쉽게 구현할 수 있는 더 작은 방법이 있을까요? Tablesaw는 고성능 메모리 기반 빅데이터 솔루션을 제공합니다. API를 사용하여 RDBMS 또는 CSV에서 데이터를 쉽게 가져온 다음 Tablesaw에서 제공하는 인터페이스를 사용하여 데이터에 대한 정렬, 필터링, 그룹화, 매핑/축소 및 기타 작업을 수행할 수 있습니다.

문서에 제공된 지침에 따르면 500,000,000행(행당 4개 필드)의 데이터 파일을 22초 만에 10G 메모리에 로드할 수 있습니다. 쿼리 속도는 1-2ms에 불과합니다.

Dex – 데이터 시각화

Dex는 세계 지도, 타임라인, 3D 그래픽 등을 포함하여 50가지 이상의 다양한 보기 유형을 지원하는 데이터 시각화 솔루션입니다. Dex는 Java/JavaFX로 작성되었으며 다른 프로그램(예: R 언어로 작성된 빅데이터 분석 프로그램)과 쉽게 통합하여 아름다운 차트를 만들 수 있습니다.

Bootique – 마이크로서비스 프레임워크

과거에는 웹 애플리케이션을 개발할 때 항상 애플리케이션을 먼저 구축해야 했습니다. 그런 다음 이를 패키지(war)하고 Tomcat과 같은 웹 컨테이너에 배포합니다. 하지만 마이크로서비스 아키텍처 의 인기로 인해 더 가볍고 컨테이너가 아닌 개발 프레임워크가 필요합니다. SpringBoot는 제가 사용해 왔고 Bootique는 확실히 또 다른 훌륭한 옵션입니다. REST 서비스, 웹 앱, 예약 일정, 데이터 마이그레이션 등과 같은 기능을 지원하기 위해 다양한 기능을 가진 모듈을 삽입할 수 있습니다. 이를 사용하여 작성된 프로그램은 Jar 파일로 패키지되며 명령줄을 통해 보다 유연하게 시작할 수 있습니다.

여러 관점에서 보면 SpringBoot와 매우 유사하며, Java 애플리케이션이 의존하는 웹 컨테이너에서 벗어날 수 있어 프로그래머는 기본 프로그램main()을 작성할 수 있는 자율성을 높일 수 있습니다. 기능. 추가 모듈을 추가하지 않더라도 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.