Java常用框架

本文介绍了Java的生态环境,包括SpringBoot、SpringCloud、Hadoop、Spark、Kafka、ElasticSearch、Nutch、ethereumj、Deeplearning4J等开源框架,以及Groovy、Scala、Kotlin、Clojure等JVM上的语言。
摘要由CSDN通过智能技术生成

Java 生态圈

Java 的生态环境开放、自由,在Sun/Oracle、Google、Apache、Eclipse基金会等各大厂商,还有技术大牛的共同努力下,Java 的生态圈异常繁荣,各种优秀的开源框架层出不穷。

Spring Boot

Spring Boot 是 Pivotal 团队推出的一个支持快速开发的框架,伴随 Spring4.0 而生,继承了 Spring 的优秀特质,简化了使用 Spring 编码、配置、部署的过程,使项目的开发变得简单、敏捷。

Spring Cloud

Spring Cloud 是基于 Spring Boot 的一整套分布式系统下的微服务构建框架,包含了众多的子项目,如 Spring Cloud Config 、Spring Cloud Stream 等。

具体可参考:http://projects.spring.io/spring-cloud/

Hadoop/Spark

Hadoop 是首个获得极大应用的大数据框架,是大数据领域标志性的解决方案。

Spark 通过完善的内存计算和处理优化,极大的提升了速度,是具备流处理能力的下一代批处理框架。

Spark 体系还包括一系列附加库,如Spark Streaming 、Spark MLlib、Spark GraphX、SparkNet、CaffeOnSpark等。

Kafka

Kafka 是 LinkedIn 使用 Scala 开发的一个分布式消息中间件,可以实现不同应用之间的松耦合,由于其可扩展、高吞吐、低延迟、高可靠等特性而被广泛使用。

具体可参考:https://kafka.apache.org/intro

ElasticSearch

ElasticSearch 是基于 Lucene 的实时分布式搜索引擎,由于其搜索稳定、可靠,速度快、安装方便等特点,是使用最广泛的开源搜索引擎之一。

具体可参考《Elasticsearch: 权威指南》:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

Nutch

Nutch 是 Apache 旗下的高度可扩展、可伸缩、可插拔的开源网络爬虫框架,功能完整。

当然爬出框架还有很多:Heritrix、Crawler4j、WebCollector、WebMagic、SeimiCrawler、HtmlUnit 等,可根据实际项目需要选择。

在爬虫领域,Python 可能使用的更多一些,入门也简单。

爬虫的难点不在于语言的选择,无论 Java 、Python 都可以胜任,关键还是反反爬策略的制定,以及各种实战的积累。

ethereumj

ethereumj 是以太坊协议的纯 Java 实现。不过在区块链领域,Go 语言的使用率可能更高一些。开发人员可以酌情选择。

代码可参考:https://github.com/ethereum/ethereumj

Deeplearning4J

DeepLearning4J(DL4J)是基于Java语言的分布式深度学习框架,在机器学习领域应用广泛。

入门可以参考《DL4J快速入门》:https://deeplearning4j.org/cn/quickstart

不过由于谷歌的 TensorFlow 提供的 java API 也会日趋完善,目前不少 java 程序员也会选择 TensorFlow 作为机器学习的首选框架。

以上只是个人正在使用或练手,并且比较看好的一些开源框架。如果想了解更多,可以去 Github 上搜索。

譬如,在 GitHub 的 Search 框,输入 java stars:>10000,可以搜索到星数最多、最热门的一些 Java 开源框架,如图:

如果想发掘 Java 前沿的开源项目,可以选择 Explore,点击 Trending 按钮,就可以看到近期热门的一些开源项目。

可以选择 today「当天热门」、this week「一周热门」和 this month「一月热门」,还可以在右侧选择语言来查看,比如选择 Java 语言,如图:

注:觉得好的,记得点击 star,大神贡献代码也需要鼓励 ?

可以看到,得益于最近被谷歌钦点为 Android 的官方语言,JetBrains 的 Kotlin 这一周成了最大的热门。

Java 的生态圈如此繁盛,Java 离陨落还尚需时日吧。

普通的 Java 程序员能更多的学习、使用这些优秀的框架,有能力的还可贡献一些代码,融入这个繁荣的生态,在我看来是上上策。
JVM 语系

Java 功能强大、生态丰富,已无需多言。但类型、语法与编程范式方面,存在一些局限性,也长期为人所诟病。

所以,有不少开发人员试图去寻求其他语言,既可以突破 Java 的这些局限,又可以与 Java 和谐共处。

Java 的祖师爷们也是非常明智,一开始就将编程语言 Java 与运行时环境 JVM 分离。

JVM 负责与操作系统的交互,屏蔽了具体操作系统的细节,制订了一整套生成字节码的规范,使得前面这一构想得以顺利实施。

如今有众多语言运行在 JVM 上,Groovy、Scala、Kotlin、Clojure 可能算得上是其中的佼佼者。

Groovy

Groovy 是类似 Ruby 的动态语言,适合编写脚本、插件、测试例,DSL (领域特定语言)等。知名的自动化建构工具 Gradle 主要就基于 Groovy 。

Scala

Scala 的设计初衷,就是在 JVM 上整合面向对象与函数式编程的各种特性。

大名鼎鼎的大数据处理框架 Spark、消息中间件 Kafka、用于构建可容错,可扩展、高并发应用的Akka,都是基于 Scala 语言编写。

Kotlin

前几日刚升级为 Android 官方开发语言的 Kotlin ,近期是一个热门。从前面讲到的 Github 上的 star 指数也可窥见一斑。

基于 Kotlin 的库和框架、官方工具的支持、教学视频、文档等,也肯定会层出不穷。

Clojure

Clojure 被认为是基于 JVM 的 Lisp 方言,是函数式编程的铁杆。知名的大数据处理框架 Storm 主要就是由 Clojure 语言编写而成。

Ceylon

Ceylon 是面向企业级应用设计开发的强静态类型编程语言,支持 Java 和 JavaScript 虚拟机。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值