Java 完成了 25 年的编程生涯,仍然更贴近开发者的思想;即使是现在,全球开发人员社区中仍有近 69% 的人仍然使用 Java 进行编码。

Java 完成了 25 年的编程生涯,仍然更贴近开发者的思想;即使是现在,全球开发人员社区中仍有近 69% 的人仍然使用 Java 进行编码。Oracle 最近发布了 Java 15,其中包含大量特性,例如密封类、隐藏类、爱德华曲线数字签名算法 (EdDSA)、文本块等等。这使得 Java 15 成为 25 岁而不是 25 岁的编程语言。

Java 的历史和演变

当 1990 年代初期有几十种非常稳定的编程语言时,如 FORTRAN、COBOL、Pascal、C++ 和 Visual Basic,Windows、Mac、Unix、Linux 和 Mobile 平台等许多平台都要求在程序开发和架构设计。James Gosling 和他的朋友们在 James 办公室附近的一棵橡树下讨论了这些方面,他们认为需要开发一种新的编程语言来解决这些差距。他们在开发一种名为Oak 的新语言时非常注重基础方面,该语言后来被命名为Green(因为团队被命名为 Green team)和后来的Java(基于他们最喜欢的印度尼西亚咖啡 Java Coffee)。

James Gosling 在 1995 年引入了 Java,在此期间,其他语言 C、C++、VC++、Visual Basic、Python 都有自己的市场和开发人员、部署。Java 提出了 WORA(一次编写并随处运行)概念、简单性、面向对象编程,并消除了 C++ 的所有痛点。最重要的是,带有 Applet 支持的 Web 编程以及丰富的 UI 设计(抽象窗口工具包)。

由于它的简单性,它吸引了更多的开发人员,并且在 1998-2001 年成为所有开发人员在国际公司(美国、英国)工作的“通行证”。然而,与此同时,在 2001 年期间,Dotcom 出现了大量裁员,为 Java 增加了新的开发人员。尽管如此,在后期阶段,在 RMI 之上使用 JSP、Servlet 和中间层体系结构 EJB 进行 Web 编程中的附加功能带来了对 JAVA 企业应用程序空间的更多思考。Java 还引入了移动编程以进入移动应用程序,因此引入了 J2ME。因此,Java 提出了 J2SE、J2ME 和 J2EE。

但是,它们都使用 CORE-JAVA 作为基础语言。Java 还与 IBM 和 Java Sound Library 合作;Java Media Framework 与 Java 运行时结合使用 IBM 通过 Voice 的语音合成未来是媒体和教育领域人们的另一个重要里程碑。随着时间的推移,Java 的开发者数量增加,同时 JUG 被引入。Java 错误跟踪和错误报告很棒。

由于简单而强大,随后几年的更多部署增长显着,它从市场中推出了 C++、VC++、Visual Basic Java 已经领先开发者社区近 5-6 年。它甚至将 Python 语言搁置一旁,并带来了 JavaScript Web 编程等功能(CSS+HTML 之上的动态支持)。Java 有大量的转换,它与新引入的语言 GO、RUBY、SCALA 等竞争,并且它也占领了自己的市场。

Java的基础块

在 Java 编程语言的最初概念化过程中,Green 团队计划的基本方面使得 Java 编程语言的创始块是:

  • 构建一种对 C++ 程序员来说很容易的简单、面向对象的语言。
  • 使其平台中立和架构中立。
  • 具有许多内存中功能和使用命令行参数进行性能调整的高性能。
  • 使其成为多线程、动态和可解释的。
  • 包括安全性和强大的功能。
    image.png

由于这些创始块足够强大,Java 仍然没有妥协任何这些特性,因此迅速采用现代编程语言中的新变化,如 Lambda 表达式、Switch 表达式和密封类等等。因此,许多新的编程框架,包括 Hadoop 和许多大数据框架,云函数都采用 Java 作为本机工具。这就是 Java 在 25 年后仍然与 Scala、Go 和 Python 等新时代编程语言抗争的原因。

从 Sun Microsystems 过渡到 Oracle Inc.

Sun 微系统已被 Oracle 收购,因此,他们从 2010 年开始管理 Java。Oracle 将 Java 从 1-2 年的发布控制运动开始,改为 6 个月一次。发生了巨大的变化,增加了新的功能。Java 8 是吸引开发者重新夺回市场空间的卓越版本之一。尽管 oracle 引入了 JAVA 14。仍然是所有开发人员,部署仍然完整,具有更稳定的 J2SE 1.8 版本。
!image.png
甲骨文接手Java后,以J2EE JAKARTA Eclipse社区基金会项目的名义,从Sun的J2SE(OpenJDK)和甲骨文的J2EE开放性开始考虑OpenSource和支持开放性的思考过程。

Java 已广泛用于所有领域,无论是制造、零售、银行、电信,在 Java 语言成为必需语言的任何地方,每个开发人员都应该了解 Java。正因为如此,它在全球范围内为该行业创造了更多机会。2006-2013 年间,甲骨文出现了困难。但是,在 oracle 接手 Java 之后,这种缓慢或开发/部署的问题已被彻底消除。Sun Microsystems 举办了 Java ONE 会议,每个版本都会有一次全球性的技术讨论,届时将与更多的技术受众讨论和辩论 Java 的整个新孩子(特性、未来 JSR)。

正如我们所讨论的,Java 在微控制器和微空间项目中也占有一席之地。Java 带来的重点和变革之一是 Java 嵌入式系统功能,它处理使用互联网远程管理设备和设备。我觉得这是最近几天引入物联网 (IoT) 的基础,但在 Java 中早在 2006-2010 时间框架本身就已经考虑过了。

Oracle 带来的第一个重大变化是以两种形式发布 Java:

  1. 称为 OpenJDK 的 Java 开放平台。
  2. 企业使用的商业平台Oracle Java。

基于 Java 平台的框架

作为对 Java 的介绍,可以更自由地看到世界上更多的语言,如 GO、Python、Ruby、PERL 等,以及它们的市场空间。Java 已经用于客户端或两层应用程序(Applet、JavaScript)、服务器层(JSP、Servlet)、中间层(EJB)和 N 层(EMAIL、JNDI、JDBC 等)。它还帮助 Sun 和 Oracle 在 Java 增长期间增加他们的开发人员和贡献者。Java 在 Spring、Hibernate 等第三方框架中得到了大量使用,并支持跨数据库和动态/运行时依赖注入功能。

除此之外,单体世界转变为微服务世界,作为下一代编程语言转型,为业务和市场带来更多稳定性、可扩展性和敏捷性。Java 已经在所有基于 SpringBoot 的微服务容器中使用,并再次获得了一组顶级编码器、经过验证的部署等。我忘了提及另一个称为多语言支持的功能,其中 Java 支持 UNICODE 以启用跨语言(国际)支持。Java 已经在大数据、AIML 领域得到了广泛的应用,具有更多的用例、解决方案和部署。Java 还调整了向基于云的平台部署的转型,因此,通过包含热门的市场需求,使更多的开发人员能够贡献和使用 Java。

Java 被广泛使用并集成到各个领域、技术、工具集,这增加了 Java 从太空、卫星研究到制造、教育、银行、金融、移动、云等的利用率。 Java 已成功与以下第三方集成工具和技术。Java 对 AI、ML 和 Cloud 等进行了更广泛的集成,性能稳定、持续改进。25 年来,Java 一直被 Python、C++、Scala、GO、Erlang 等各种语言所忽视。 尽管如此,Java 仍然排名第一,拥有更多的社区成员和大量用例的稳定部署。

Java 与其他第三方框架的集成,从 Hibernate 到 Struts,直到现在 SpringBoot 微服务框架也被全球采用和部署。最近关于反应式编程语言的变化,反应式 Java 变得更加流行并提出了更多选择。这些集成将 Java 带入了更高级别的编程领域,性能和稳定性是 Java 成功特性的关键部分。Oracle 还在其版本中宣布了许多新变化;Java 不是每两年发布一次,而是每 6 个月发布一次。此外,还添加了一个新网站,用于查看即将进行的项目或迄今为止完成的任务的功能。伴随着 Java 25 年历程的成功里程碑,有一些重要的里程碑,好像 JDK8 获得了巨大的部署数量等等。关于该功能,开发人员可能期望 JVM 能够在处理大量并发用例时获得更多的速度和性能改进以及容错能力。

Java 平台最近面临的障碍

当 Sun 拥有 Java 时,还有其他 Java 运行时环境,对 Java 进行了增强,尤其是 IBM 引入的 IBM Java(它也有一些有趣的特性)。突然之间,Sun Microsystem 向 Microsoft 提起诉讼,称其支持 IE 浏览器垄断并使用 JRE 来违反 Sun Microsystems 的许可要求。Sun 赢得了与微软的诉讼,最近甲骨文与谷歌建立了一个套件,在他们的移动安卓平台上使用 Java。

快速查看最新的 Java 15 版本

Oracle Java 版本基于 JDK Enterprise Proposal (JEP) 和 Java Specification Request (JSR),EdDSA 就是 JEP 339 的一个这样的实现。它是一种采用约 126 位加密算法的独立于平台的加密签名。这可以用于具有更高安全性的数据传输处理以传输加密数据。

Java 15 中引入的密封类是 JEP 360 的实现,它限制了哪些类可以扩展或实现密封类。例如:

public abstract sealed class Shape
      permits Circle, Rectangle, Square {...}

使 Shape 成为一个密封类,并且只允许“允许”类实现/扩展。这使得对类层次结构的安全访问并控制接口的可重用性。

隐藏类基于 JEP 371 的实现,它通过允许类在运行时使用反射 API 生成来限制类的使用,并使类无法被外部世界发现。因此,通过代理动态生成隐藏类是不可能的,并且可以安全地访问它们。

ZGC 或 Z Garbage Collector 基于 JEP 377。在 Java 1.8 早期,G1 GC 是对自我管理垃圾收集的突破性介绍,并显着提高了性能。后来在 Java 11 中,ZGC 被引入了各种特性以提高性能,现在在 Java 15 中,它得到了进一步改进,例如取消未使用内存的注释、多线程堆、并发类卸载等等。

从 JEP 378 引入的文本块创建多行字符串文字,以自动转义序列存储,并以预测的方式格式化字符串,并改进字符串文字的内存使用。这使得在 Java 代码中将 XML、JSON 和 HTML 数据高效存储为字符串文字。

外部内存访问 API 是一个 JEP 383 实现,允许程序有效地访问分配的 Java 堆之外的外部内存。它最初是在 Java 14 中作为预览版引入的,现在作为 Java 15 的一部分发布了改进版本。该 API 允许通过添加像MemorySegment.allocateNative(100).

结论

官方发布说明称官方第一个 Java 于 1996 年 1 月首次发布,使 Java 完成了其 25 年的旅程,如上图所示。在我们看来,从桌面、移动、企业开发到现代云和大数据开发领域,计算机历史上没有其他编程语言能与 Java 相比。很多人说 GoLang、Python、Javascript 框架等新的编程结构将使 Java 很快消亡,但是随着 Java15 中引入的大量功能,Java 仍然是开发人员社区的“走得更远”的选择,这似乎是一个强有力的回应。
更多免费资料请加群:3907814


Java攻城师
451 声望390 粉丝

本人太过于丰富,无法简介