本港台开奖现场直播 j2开奖直播报码现场
当前位置: 新闻频道 > IT新闻 >

码报:Java 老矣,尚能饭否?(3)

时间:2017-06-21 17:57来源:668论坛 作者:118KJ 点击:
涉及到软件开发的方方面面,可以说当今几乎所有的中型以上 Java 应用中,都会有 Apache 开源项目的身影。国内最早参与 Apache 社区的以国外软件公司国内

涉及到软件开发的方方面面,可以说当今几乎所有的中型以上 Java 应用中,都会有 Apache 开源项目的身影。国内最早参与 Apache 社区的以国外软件公司国内研发团队成员为主,如红帽、IONA、Intel、IBM 研发中心等。如今国内互联网公司和软件公司也不断的参与,特别是开始主导一些 Apache 项目,如 Kylin 等。

JBoss 开源社区,包含了 50 多个 Java 开源项目,其中有 Hibernate、Drools、jBPM 等业界知名开源项目,也有 Undertow、Byteman、Narayana 等名气不算大,但绝对是相应领域业界的顶级优秀项目。当前 JBoss 开源社区主要以企业应用中间件软件为主,RedHat 是主要的技术贡献力量。

Eclipse 开源社区,之前主要是包含 Eclipse IDE 的项目,后来也逐步进行多方面的扩展,比如 OSGi,服务器等,目前一些知名 Java 项目,如 Jetty、Vertx 等都是 Eclipse 开源组织成员。此外 IOT 目前是 Eclispe 的一个重点方向,在这里可以找到完整的 IOT Java 开发方案。

Spring 开源社区,以 SpringFramework 为核心,包括 SpringBoot、SpringCloud、SpringSecurity、SpringXD 等开源项目,在国内有广泛的应用场景。

4目前大的玩家

Java 语言和品牌都是 Oracle 公司所有,所以 Oracle 公司是 Java 最主要的厂商。绝大多数 JSR(Java 规范提案) 的领导者都是 Oracle 的雇员。

Java 是一个庞大的生态圈,全世界的软件和互联网公司绝大多数都是 Java 用户,同时也可以参与推动 Java 语言的发展。任何组织或者个人都可以加入 JCP(Java Community Process),并提交 JSR 来给 JavaSE,JavaEE,JavaME 等提交新的 API 或者服务定义。Java 拥有当今最完备的语言生态,几乎所有能想到的应用范围,都有软件厂商提出过标准化的构想,其中很多已经被接纳为 JSR 提案。如今 JSR 总数已经都 400 多个。

JCP 是发展 Java 的国际组织,其中的执行委员会(EC)以投票的形式对 JSR 提案进行表决。目前 EC 包括 16 个合约 (Ratified) 席位,6 个选举 (Elected) 席位和 2 个合伙 (Associate) 席位,以及 Oracle 作为所有者的永久席位。非永久席位每两年重新选举一次,每次选举为 24 个席位的一半,即为 12 个。

当前 EC 委员会中,对于 Java 起到最重要作用的,无疑是 Oracle,IBM 和 Redhat 三家公司。Oracle 自然不用说;Redhat 领导着 JavaEE8 中两项 JSR,并且在操作系统,Linux,虚拟化,云计算等基础软件方面是产品领导者;IBM 是软硬件最大的厂商,拥有自己的 Unix 操作系统和 JDK 版本。这三家软件厂商也是中间件厂商的强者,它们对于 Java 的影响是至关重要的。前不久投票被否决的 JSR 376(JPMS) 模块化提案,就是 Redhat 和 IBM 先后表示要投反对票,最后才没有通过的。

另外的几个重要的 Java 参与方分别包括:巨型互联网公司,以 Twitter 为代表;大型金融公司,以高盛,瑞信为代表;强大的硬件产商,Intel,NXP,Gemalto 等;大型系统方案厂商,HP, Fijitsu;当然还有掌握先进 Java 技术的公司,如 Azul,Hazelcast,Tomitribe,Jetrains 等等。这些公司共同对 Java 的发展起到关键作用。

5GC 方面的进展

JDK 中主要的 GC 分类有:

Serial,单线程进行 GC,在它进行垃圾收集时,必须暂停其他所有的工作线程,直到它收集结束。

Parallel,相比 Serial 收集器,Parallel 最主要的优势在于使用多线程去完成垃圾清理工作,这样可以充分利用多核的特性,大幅降低 GC 时间。

CMS(Concurrent Mark-Sweep),是以牺牲吞吐量为代价来获得最短回收停顿时间的垃圾回收器。实现 GC 线程和应用线程并发工作,不需要暂停所有应用线程。

G1(Garbage First Garbage Collector),G 设计初衷是为了尽量缩短处理超大堆(大于 4GB)时产生的停顿。相对于 CMS 的优势而言是内存碎片的产生率大大降低。

目前在 JDK8 中以上 4 种 GC 都可以使用,而在 JDK9 中 G1 GC 会成为默认的垃圾收集器。

在 OpenJDK 方面,Redhat 开源并贡献了 Shenandoah GC。这是一种新的 Java 虚拟机 GC 算法,目标是利用现代多核 CPU 的优势,减少大堆内存在 GC 处理时产生的停顿时间。在使用大内存的应用上使用,如>20G 堆空间。Fedora24 以后,官方源中的 OpenJDK 即带有 Shenandoah 算法,不过 JDK9 中还不会被加入。

无停顿的高性能 GC 就是 Azul 公司的 C4(Continuously Concurrent Compacting Collector) GC 了,但只提供商业版本使用。

另外 IBM J9 中 Balanced GC,表现也很出色,能够保证相对一致的暂停时间而避免破坏性的长时间停顿。Balanced GC 应用在各类 IBM 中间件产品之中。

6Java 9 目前已经可以确认的特性介绍

Java9 中,最受人关注的新特性就是 Jigsaw 项目带来的模块化技术特性。

(责任编辑:本港台直播)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
栏目列表
推荐内容