阅读更多

30顶
0踩

编程语言

转载新闻 推荐!国外程序员整理的Java资源大全

2015-03-30 15:23 by 副主编 mengyidan1988 评论(22) 有12079人浏览

构建

这里搜集了用来构建应用程序的工具。

  • Apache Maven:Maven使用声明进行构建并进行依赖管理,偏向于使用约定而不是配置进行构建。Maven优于Apache Ant。后者采用了一种过程化的方式进行配置,所以维护起来相当困难。
  • Gradle:Gradle采用增量构建。Gradle通过Groovy编程而不是传统的XML声明进行配置。Gradle可以很好地配合Maven进行依赖管理,并且把Ant脚本当作头等公民。

字节码操作

编程操作Java字节码的函数库。

  • ASM:通用底层字节码操作及分析。
  • Javassist:尝试简化字节码编辑。
  • Byte Buddy:使用“流式API”进一步简化字节码生成。

代码分析

软件度量和质量评估工具。

  • Checkstyle:对编程规范和标准进行静态分析。
  • FindBugs:通过字节码静态分析找出潜在Bug。
  • PMD:对源代码中不良编程习惯进行分析。
  • SonarQube:通过插件集成其它分析组件,提供评估最终结果报告。

编译器

创建分析器、解释器和编译器的框架。

  • ANTLR:功能完备的自顶向下分析复杂框架。
  • JavaCC:相对ANTLR更具体,上手略为简单。支持语法语法超前预测(syntactic lookahead)。

持续集成

支持持续集成、测试和应用发布的工具。

  • Bamboo:Atlassian的持续集成(CI)解决方案,包含很多其它产品。
  • CircleCI:提供托管服务,可免费试用。
  • Codeship:提供托管服务,提供有限免费计划。
  • Go:ThoughtWork开源持续集成解决方案。
  • Jenkins:提供基于服务器的部署服务。
  • TeamCity:JetBrain持续集成方案,提供免费版。
  • Travis:提供托管服务,常用于开源项目。

数据库

简化数据库交互的工具、库。

  • Flyway:使用Java API轻松完成数据库迁移。
  • H2:小型SQL数据库,以内存操作著称。
  • JDBI:便捷的JDBC抽象。
  • jOOQ:基于SQL schema生成类型安全代码。
  • Presto:针对大数据的分布式SQL查询引擎。
  • Querydsl:针对Java的类型安全统一查询。

日期和时间

处理日期和时间的函数库。

  • Joda-Time:Java 8出现之前,它是日期、时间处理的标准函数库。
  • Time4J:Java高级日期、时间函数库。

依赖注入

帮助代码实现控制反转模式的函数库。

  • Dagger :编译期的注入框架,没有使用反射,主要用于Android开发。
  • Guice:轻量级注入框架,功能强大可与Dagger媲美。

开发库

从基础层次上改进开发流程。

  • AspectJ:面向切面编程扩展,与程序无缝连接。
  • Auto:源代码生成器集合。
  • DCEVM:通过修改JVM,在运行时可无限次重定义已加载的类。OpenJDK 7、8已提供支持,详情可查看这个分支(fork)
  • JRebel:商用软件,无需重新部署可即时重新加载代码及配置。
  • Lombok:代码生成器,旨在减少Java冗余代码。
  • RxJava:使用JVM中可观察序列,创建异步、基于事件应用程序的函数库。
  • Spring Loaded:另一个JVM类重载代理。
  • vert.x:JVM多语言事件驱动应用框架。

分布式应用

用来开发分布式、具有容错性应用程序的函数库和框架。

  • Akka:构建并发、分布式和具有容错功能的事件驱动应用程序所需的工具包和运行时。
  • Apache Storm:分布式实时计算系统。
  • Apache ZooKeeper:为大型分布式系统,使用分布式配置、同步和命名注册提供协调服务。
  • Hazelcast:分布式、高可扩展性内存网格。
  • Hystrix:为分布式系统提供延迟和容错处理。
  • JGroups:一组提供可靠消息传输的工具包,可用来创建集群。集群中的节点可互相发送消息。
  • Quasar:为JVM提供轻量级线程和Actor。

发布

使用本机格式分发Java应用程序的工具。

  • Bintray:对二进制发布进行版本控制,可与Maven或Gradle配合使用。
  • IzPack:为跨平台部署建立授权工具。
  • Launch4j:将JAR包装为小巧的Windows可执行文件。
  • packr:将程序JAR、资源和JVM打包成Windows、Linux和Mac OS X的本机文件。

文档处理

用来处理Office格式文档的函数库。

  • Apache POI:支持OOXML (XLSX、DOCX、PPTX)以及 OLE2 (XLS, DOC or PPT)格式的文档。
  • jOpenDocument:处理OpenDocument格式文档。

游戏开发

游戏开发框架。

  • jMonkeyEngine:支持现代3D开发的游戏引擎。
  • libGDX:全面的跨平台高级开发框架。
  • LWJGL:抽象了OpenGL、CL、AL等函数库的健壮框架。

GUI

用来创建现代图形用户界面的函数库。

高性能

与高性能计算有关的资源,包括集合以及很多具体功能的函数库。

  • Disruptor:线程间消息函数库。
  • fastutil:快速紧凑的Java类型安全集合。
  • GS Collections:受Smalltalk启发的集合框架。
  • hftc:Hash set和hash map。
  • HPPC:基本类型集合。
  • Javolution:针对实时嵌入式系统的函数库。
  • Trove:基本类型集合。

IDE

视图简化开发的集成开发环境。

  • Eclipse:后台做了很多工作,以其丰富插件著称。
  • IntelliJ IDEA:支持很多JVM语言,为Android开发提供了很多不错的选项。其商业版本主要面向企业用户。
  • NetBeans:集成了很多Java SE和Java EE特性,包括数据库访问、服务器、HTML5以及AngularJS。

图像处理

用来帮助创建、评估或操作图形的函数库。

  • Picasso:Android下载图像和图像缓存函数库。
  • ZXing:多种格式的一维、二维条形码处理函数库。

JSON

简化JSON处理的函数库。

  • Gson:将Java对象序列化为JSON及反向操作。使用时提供了很好的性能。
  • Jackson:与GSON类似,但如果需要频繁初始化Jackson库会带来性能问题。

JVM和JDK

目前的JVM、JDK实现。

  • JDK 9:JDK 9早期访问版本。
  • OpenJDK:开源实现。

日志

记录应用程序的日志函数库。

  • Apache Log4j 2:对之前版本进行了完全重写。现在的版本具备一个强大的插件和配置架构。
  • kibana:对日志进行分析并进行可视化。
  • Logback:Log4j原班人马作品。被证明是一个强健的日志函数库,通过Groovy提供了很多有意思的配置选项。
  • logstash:日志文件管理工具。
  • SLF4J:日志抽象层,需要与某个具体日志框架配合使用。

机器学习

提供具体统计算法的工具。其算法可从数据中学习。

  • Apache Hadoop:对商用硬件集群上大规模数据存储和处理的开源软件框架。
  • Apache Mahout:专注协同过滤、聚类和分类的可扩展算法。
  • Apache Spark:开源数据分析集群计算框架。
  • h2o:用作大数据统计的分析引擎。
  • Weka:用作数据挖掘的算法集合,包括从预处理到可视化的各个层次。

消息

在客户端之间进行消息传递,确保协议独立性的工具。

  • Apache ActiveMQ:实现JMS的开源消息代理(broker),可将同步通讯转为异步通讯。
  • Apache Kafka:高吞吐量分布式消息系统。
  • JBoss HornetQ:清晰、准确、模块化且方便嵌入的消息工具。
  • JeroMQ:ZeroMQ的纯Java实现。

其它

其它资源。

  • Design Patterns:实现并解释了最常见的设计模式
  • Jimfs:内存文件系统。
  • Lanterna:类似curses的简单console文本GUI函数库。
  • LightAdmin:可插入式CRUD UI函数库,可用于快速应用开发。
  • Metrics:创建自己的软件度量或者为支持框架添加度量信息,通过JMX或HTTP进行发布或者发送到数据库。
  • OpenRefine:用来处理混乱数据的工具,包括清理、转换、使用Web Service进行扩展并将其关联到数据库。
  • RoboVM:Java编写原生iOS应用。

自然语言处理

用来专门处理文本的函数库。

  • Apache OpenNL:处理类似分词等常见任务的工具。
  • CoreNLP:斯坦佛的CoreNLP提供了一组基础工具,可以处理类似标签、实体名识别和情感分析这样的任务。
  • LingPipe:一组可以处理各种任务的工具集,支持POS标签、情感分析等。
  • Mallet:统计学自然语言处理、文档分类、聚类、主题建模等。

网络

网络编程函数库。

  • Netty:构建高性能网络应用程序开发框架。
  • OkHttp :一个Android和Java应用的HTTP+SPDY客户端。

ORM

处理对象持久化的API。

  • EclipseLink:支持许多持久化标准,JPA、JAXB、JCA和SDO。
  • Hibernate:广泛使用、强健的持久化框架。Hibernate的技术社区非常活跃。
  • Ebean:支持快速数据访问和编码的ORM框架。

PDF

用来帮助创建PDF文件的资源。

  • Apache FOP:从XSL-FO创建PDF。
  • Apache PDFBox:用来创建和操作PDF的工具集。
  • DynamicReports:JasperReports的精简版。
  • iText:一个易于使用的PDF函数库,用来编程创建PDF文件。注意,用于商业用途时需要许可证。
  • JasperReports:一个复杂的报表引擎。

REST框架

用来创建RESTful 服务的框架。

  • Dropwizard:偏向于自己使用的Web框架。用来构建Web应用程序,使用了Jetty、Jackson、Jersey和Metrics。
  • Jersey:JAX-RS参考实现。
  • RESTEasy:经过JAX-RS规范完全认证的可移植实现。
  • Retrofit:一个Java类型安全的REST客户端。
  • Spark:受到Sinatra启发的Java REST框架。
  • Swagger:Swagger是一个规范且完整的框架,提供描述、生产、消费和可视化RESTful Web Service。

科学

用于科学计算和分析的函数库。

  • SCaVis:用于科学计算、数据分析和数据可视化环境。

搜索

文档索引引擎,用于搜索和分析。

  • Apache Solr :一个完全的企业搜索引擎。为高吞吐量通信进行了优化。
  • Elasticsearch:一个分布式、支持多租户(multitenant)全文本搜索引擎。提供了RESTful Web接口和无schema的JSON文档。

安全

用于处理安全、认证、授权或会话管理的函数库。

  • Apache Shiro:执行认证、授权、加密和会话管理。
  • Cryptomator:在云上进行客户端跨平台透明加密。
  • Keycloak:为浏览器应用和RESTful Web Service集成SSO和IDM。目前还处于beta版本,但是看起来非常有前途。
  • PicketLink:PicketLink是一个针对Java应用进行安全和身份认证管理的大型项目(Umbrella Project)。
  • Spring Security:专注认证、授权和多维度攻击防护框架。

序列化

用来高效处理序列化的函数库。

  • FlatBuffers:序列化函数库,高效利用内存,无需解包和解析即可高效访问序列化数据。
  • Kryo:快速和高效的对象图形序列化框架。
  • MessagePack:一种高效的二进制序列化格式。

服务器

用来部署应用程序的服务器。

  • Apache Tomcat:针对Servlet和JSP的应用服务器,健壮性好且适用性强。
  • Apache TomEE:Tomcat加Java EE。
  • GlassFish:Java EE开源参考实现,由Oracle资助开发。
  • Jetty:轻量级、小巧的应用服务器,通常会嵌入到项目中。
  • WildFly:之前被称作JBoss,由Red Hat开发。支持很多Java EE功能。

模版引擎

对模板中表达式进行替换的工具。

  • Apache Velocity:提供HTML页面模板、email模板和通用开源代码生成器模板。
  • FreeMarker:通用模板引擎,不需要任何重量级或自己使用的依赖关系。
  • Handlebars.java:使用Java编写的模板引擎,逻辑简单,支持语义扩展(semantic Mustache)。
  • JavaServer Pages:通用网站模板,支持自定义标签库。
  • Thymeleaf:旨在替换JSP,支持XML文件。

测试

测试内容从对象到接口,涵盖性能测试和基准测试工具。

  • Apache JMeter:功能性测试和性能评测。
  • Arquillian:集成测试和功能行测试平台,集成Java EE容器。
  • AssertJ:支持流式断言提高测试的可读性。
  • JMH:JVM微基准测试工具。
  • JUnit:通用测试框架。
  • Mockito:在自动化单元测试中创建测试对象,为TDD或BDD提供支持。
  • Selenium:为Web应用程序提供可移植软件测试框架。
  • Selenide:为Selenium提供精准的周边API,用来编写稳定且可读的UI测试。
  • TestNG :测试框架。
  • VisualVM:提供可视化方式查看运行中的应用程序信息。

工具类

通用工具类函数库。

  • Apache Commons:提供各种用途的函数,比如配置、验证、集合、文件上传或XML处理等。
  • Guava:集合、缓存、支持基本类型、并发函数库、通用注解、字符串处理、I/O等。
  • javatuples:正如名字表示的那样,提供tuple支持。尽管目前tuple的概念还有留有争议。

网络爬虫

用于分析网站内容的函数库。

  • Apache Nutch :可用于生产环境的高度可扩展、可伸缩的网络爬虫。
  • Crawler4j:简单的轻量级爬虫。
  • JSoup :刮取、解析、操作和清理HTML。

Web框架

用于处理Web应用程序不同层次间通讯的框架。

  • Apache Tapestry:基于组件的框架,使用Java创建动态、强健的、高度可扩展的Web应用程序。
  • Apache Wicket:基于组件的Web应用框架,与Tapestry类似带有状态显示GUI。
  • Google Web Toolkit:一组Web开发工具集,包含在客户端将Java代码转为JavaScript的编译器、XML解析器、RCP API、JUnit集成、国际化支持和GUI控件。
  • Grails:Groovy框架,旨在提供一个高效开发环境,使用约定而非配置、没有XML并支持混入(mixin)。
  • Play: 使用约定而非配置,支持代码热加载并在浏览器中显示错误。
  • PrimeFaces:JSF框架,提供免费版和带技术支持的商业版。包含一些前端组件。
  • Spring Boot:微框架,简化了Spring新程序的开发过程。
  • Spring:旨在简化Java EE的开发过程,提供依赖注入相关组件并支持面向切面编程。
  • Vaadin:基于GWT构建的事件驱动框架。使用服务端架构,客户端使用Ajax。
  • Ninja:Java全栈Web开发框架。非常稳固、快速和高效。
  • Ratpack:一组Java开发函数库,用于构建快速、高效、可扩展且测试完备的HTTP应用程序。

资源

社区

活跃的讨论区。

参与贡献

热烈欢迎参与贡献此列表!

请参阅CONTRIBUTING加入贡献。

30
0
评论 共 22 条 请登录后发表评论
2 楼 webeasymail 2015-03-30 20:50
真全面!!!!!
1 楼 zaq369cde 2015-03-30 19:35
mark!!!

发表评论

您还没有登录,请您登录后再发表评论

相关推荐

  • 推荐!国外程序员整理的机器学习资源大全

    ">OpenCV—它提供C++, C, Python, Java 以及 MATLAB接口,并支持Windows, Linux, Android and Mac OS操作系统。</li></ul>; margin: -6px 0px 0px; padding: 0px; font-size: 16px; font-weight: normal; line-...

  • 推荐!国外程序员整理的C++资源大全

    关于 C++ 框架、库和资源的一些汇总列表,由 fffaraz 发起和维护。 内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。   标准库 C++标准库,包括了STL容器,...

  • 前18大旋转修整器企业占据全球87%的市场份额.docx

    前18大旋转修整器企业占据全球87%的市场份额

  • Planet-SkySat-Imagery-Product-Specification-Jan2020.pdf

    SKYSAT IMAGERY PRODUCT SPECIFICATION PLANET.COM VIDEO Full motion videos are collected between 30 and 120 seconds by a single camera from any of the active SkySats. Videos are collected using only the Panchromatic half of the camera, hence all videos are PAN only. Videos are packaged and delivered with a video mpeg-4 file, plus all image frames with accompanying video metadata and a frame index file (reference Product Types below)

  • Screenshot_20240506_133458_com.netease.yhtj.vivo.jpg

    Screenshot_20240506_133458_com.netease.yhtj.vivo.jpg

  • 2019年A~F题特等奖论文合集.pdf

    大学生,数学建模,美国大学生数学建模竞赛,MCM/ICM,历年美赛特等奖O奖论文

  • 雷达物位变送器安装和操作手册

    雷达物位变送器安装和操作手册

  • node-v11.6.0-linux-armv7l.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

  • Python3实现快速排序(源代码)

    快速排序是一种基于分治策略的排序算法,通过选择一个基准元素,将待排序的数组划分为两个子数组,一个包含所有小于基准的元素,另一个包含所有大于基准的元素,然后递归地对这两个子数组进行快速排序。快速排序在平均情况下具有O(n log n)的时间复杂度,是一种非常高效的排序算法。然而,在最坏情况下,当输入数据已经有序或接近有序时,快速排序的性能会退化为O(n^2)。此外,快速排序是不稳定的排序算法,即相等的元素可能在排序过程中改变相对位置。尽管如此,快速排序仍然因其高效的平均性能而在实际应用中广泛使用。在Python3中,可以通过递归或迭代的方式实现快速排序算法,但为了避免额外的空间开销,通常会采用原地排序的方式来实现。

  • 毕业课设基于51单片机的出租车计价器(昼夜)

    【作品名称】:基于51单片机的出租车计价器(昼夜) 含(程序、仿真图、流程图、原理图) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 出租车计价器: 1、不同情况具有不同的收费标准,具有白天和夜晚不同的计价能力 2、能进行手动修改单价 3、具有数据的复位功能(起步价,起步公里数,里程单价,白天晚上不一样) 4、能够在掉电的情况下存储单价等数据 5、步进电机模拟里程,一圈表示一里路

  • 2024年中国API 11P往复式气体压缩机行业研究报告.docx

    2024年中国API 11P往复式气体压缩机行业研究报告

  • Windows 10系统上安装和配置Tomcat的步骤

    附件是Windows 10系统上安装和配置Tomcat的步骤,文件绿色安全,请大家放心下载,仅供交流学习使用,无任何商业目的!

  • 广东工业大学《计算网络A》实验报告期末考试试题回忆版.doc

    此试题是考试后回忆版本,你会发现是惊喜。恭喜你考个好成绩。

  • 数据库+人大金仓+Linux系统安装

    数据库+人大金仓+Linux系统安装

  • 2023年美赛特等奖论文-C-2309397-解密.pdf

    大学生,数学建模,美国大学生数学建模竞赛,MCM/ICM,2023年美赛特等奖O奖论文

  • opencv-python-4.5.4.60-cp36-cp36m-win-amd64.whl

    opencv-python-4.5.4.60-cp36-cp36m-win-amd64.whl

  • 减肥管理,全球前10强生产商排名及市场份额.docx

    减肥管理,全球前10强生产商排名及市场份额

  • 上海大学大学生创新创业训练计划申请书(创新训练项目).doc

    内容概要:《上海大学大学生创新创业训练计划申请书(创新训练项目)》是用于申请参加上海大学的大学生创新创业训练计划的申请书,旨在帮助学生提出创新项目计划,获得培训和支持,促进学生创新创业能力的提升。 适用人群:适合上海大学的在校大学生,特别是对创新创业感兴趣、有创新想法和创业计划的学生,希望通过该计划获得指导和资源支持,实现自己的创业梦想。 使用场景及目标:申请书的使用场景是为了参加上海大学的大学生创新创业训练计划,目标是通过提交详细的创新项目计划,获得评审通过并获得培训、指导和资金支持,从而推动学生的创新创业实践和能力提升。 其他说明:申请书应包括清晰的创新项目描述、项目可行性分析、预期目标和计划、团队介绍等内容,以展现学生的创新能力和项目潜力。申请书的撰写需要认真准备,体现出学生对创新创业的热情和才华,以提高申请成功的机会。

  • IEC 60364-7-716-2023 第7-716部分:特殊装置或场所要求.信息和通信技术ICT电缆基础设施上ELV直流配电

    IEC 60364-7-716-2023 低压电气装置.第7-716部分:特殊装置或场所的要求.信息和通信技术(ICT)电缆基础设施上的ELV直流配电.pdf

Global site tag (gtag.js) - Google Analytics