Java在25年的编程历史中,到现在,全球依然有将近69%的开发人员仍在使用Java进行编码。Oracle最近发布的Java 15,其中包含“密封类,隐藏类,爱德华曲线数字签名算法(EdDSA)”,文本块等功能。如此快速的迭代特性,才使得Java依然能够如此活跃与健康。
Java的历史与演变
在90年代初期有数十种非常稳定的编程语言(例如FORTRAN,COBOL,Pascal,C ++和Visual Basic)时,许多平台(例如Windows,Mac,Unix,Linux和Mobile平台)都要求在程序开发和开发中采用统一的方法和架构设计。James Gosling和他的朋友们在办公室附近的一棵橡树下讨论了这些方面,他们觉得应该开发一种新的编程语言来解决这些差距。在开发一种名为Oak 的新语言的基础方面,他们非常特别。后来该语言被命名为Green(该团队被命名为Green team),后来又被命名为Java(基于他们最喜欢的印度尼西亚Java Java咖啡)。
James Gosling于1995年推出Java,在此期间,还有其他语言C,C ++,VC ++,Visual Basic,Python都有自己的市场和开发者。Java提出了WORA(一次编写即可在任何地方运行)概念,具有简单性和面向对象编程等特性,并消除了C ++的所有痛点。最重要的是,带有Applet支持的Web编程以及Enrich UI设计(抽象窗口工具包)。
由于它的简单性,它吸引了众多的开发人员,并在1998-2001年间成为所有开发人员在国际公司(美国,英国)工作的“通行证”。但是,在2001年的同一时间,Dotcom大量减少了工作,为Java增加了新的开发人员。但是,在以后的阶段,在RMI之上使用JSP,Servlet和中间层体系结构EJB提出Web编程中的其他功能,会带来更多关于JAVA的企业应用程序空间的想法。Java还引入了移动编程以进入移动应用程序,因此引入了J2ME。
但是,它们都使用CORE-JAVA作为基本语言。Java还与IBM和Java声音库进行了合作。Java Media Framework与Java运行时结合在一起,将来通过语音使用IBM进行语音合成对于媒体和教育领域的人们来说是另一个了不起的里程碑。
由于功能简单强大,随后几年Java进行了更多部署,因此越来越多的开发人员增长非常可观,它从Market Java中淘汰了C ++,VC ++和Visual Basic,在开发人员社区人群数量已经领先将近5-6年。它甚至将python搁置一旁,并带来了诸如JavaScript Web编程(CSS + HTML之上的动态支持)之类的功能。Java具有大量的转换功能,并且可以与新引入的语言GO,RUBY,SCALA等竞争。
Java基础块
Green团队在Java编程语言的最初概念化过程中计划的基础方面使得Java编程语言的奠基石是:
-
一种简单的面向对象的编程语言,对比C ++来说要容易的多。
-
与平台无关并且与架构无关。
-
具有高性能以及通过命令行参数进行的性能调整。
-
支持多线程和动态解释。
-
安全性和强大的功能。
图:Java的历史和演变时间表。
有了这些基础知识就足够了,而且功能足够强大,Java仍然不会损害任何这些功能,因此很快就采用了现代编程语言中的新变化,例如Lambda表达式,Switch表达式和密封类等。因此,许多新的编程框架(包括Hadoop和许多大数据框架),云功能将Java用作本机工具。这就是Java在25年后仍与Scala,Go和Python等新时代编程语言进行斗争的原因。
从Sun Microsystems过渡到Oracle Inc.
Sun Microsystem已被Oracle收购,因此,他们从2010年开始管理Java。甲骨文已经将Java从版本控制的运动从1-2年提高到了一次6个月。发生了巨大的变化,增加了新功能。Java 8是吸引开发者重新占领市场空间的非凡版本之一。即使oracle引入了JAVA 14,仍然是所有开发人员,但仍使用更稳定的J2SE 1.8版本保留了部署。
图:Java框架的热图。
在Oracle接管Java之后,就以Sun的J2SE(OpenJDK)和Oracle的J2EE openness(J2EE JAKARTA Eclipse社区基础项目)的名义考虑了OpenSource的思想过程并开始了开放性支持。
Java已在所有领域中广泛使用,无论是制造业,零售业,银行业还是电信业,Java语言都是强制性的,每个开发人员都应了解Java。因此,它在全球范围内的行业中创造了更多的机会。在2006-2013年期间,Oracle遇到了困难。但是,在oracle接管Java之后,这种速度或开发/部署已被彻底消除。Sun Microsystems召开了Java ONE会议,每次发布都会进行全球性的技术讨论,有关Java的整个新生事物(功能,期货JSR)将与更多的技术受众进行讨论和辩论。
正如我们所讨论的,Java在微控制器和微空间项目中都有一定的空间。Java带来的重点和变革之一是Java嵌入式系统功能,该功能可以使用Internet远程管理设备和设备。我认为这是最近几天引入物联网(IoT)的基础,但在2006-2010年的时间框架中,人们一直以Java的方式进行思考。
Oracle带来的第一个重大变化是以两种形式发布Java:
1. Java的开放平台,称为OpenJDK。
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具有AI,ML和Cloud等更广泛的集成,性能稳定且持续不断地提高。
从Hibernate到Struts,Java与其他第三方框架的有强大的集成功能。SpringBoo等t微服务框架也在全球范围内被采用和部署。关于响应式编程的最新变化,响应式Java变得更加流行,并可以拥有更多选择。这些集成的高性能和稳定性是Java 关键部分,让Java进入了下一个编程领域的重要布局。最近,Oracle还宣布了新版本的更新速率,由每两年发布一次调整为现在每6个月发布一次。此外,还增加了一个新网站,以查看即将进行的项目的功能或到目前为止完成的任务。在Java25年历程中,JDK8是迄今为止使用率最高的一个版本。关于此版本,仅仅是JVM处理大量并发的速度和性能的提高,就能让各大开发人员受用很长时间。
Java面临的挑战
当Sun拥有Java时,还有其他Java运行时环境,特别是IBM引入的IBM Java已经完成了Java的增强。但Sun Microsystem在此刻却提起诉讼:Microsoft垄断的IE浏览器中,发现其在使用JRE违反Sun Microsystems许可要求,从而对Microsoft提起诉讼。在这起诉讼中Sun在最终胜诉。同时,最近Oracle在Google的移动android平台上与Google达成协议。
Java 15版本的新特性
Oracle Java版本基于JDK企业建议书(JEP)和Java规范请求(JSR),而EdDSA是JEP 339的另一种实现。它采用约126位加密算法的独立于平台的加密签名。这可以用于具有更高安全性的数据传输处理,以传输加密的数据。
Java 15中引入的密封类是JEP 360的实现,它限制了某些类可以扩展或实现密封类。例如:
public abstract sealed class Shape
permits Circle, Rectangle, Square {...}
使Shape成为密封类,并且仅允许“ permits”类实现/扩展。这样可以安全地访问类层次结构,并控制接口的可重用性。
隐藏类基于JEP 371的实现,它通过允许在运行时使用Reflection API生成类来限制类的使用,并使该类对外部环境不可发现。因此,无法通过代理动态生成隐藏类,并且可以安全地访问它们。
ZGC或Z Garbage Collector基于JEP377。在Java 1.8的早期版本中,G1 GC是自我管理垃圾收集的突破性介绍,并大大提高了性能。后来在Java 11中引入了ZGC,具有各种功能以提高性能,而在Java 15中则进行了进一步的改进,例如取消注释未使用的内存,多线程堆,并发类卸载等。
从JEP 378引入的文本块创建多行字符串文字,以自动转义序列存储,并以预测的方式格式化字符串,并改善了字符串文字的内存使用率。这样可以有效地将XML,JSON和HTML数据作为字符串文字存储在Java代码中。
外部存储器访问API是JEP 383的实现,它允许程序有效地访问已分配的Java堆之外的外部存储器。它最初在Java 14中作为预览引入,现在改进版本作为Java 15的一部分发布。该API允许通过添加代码来快速分配本机内存段MemorySegment.allocateNative(100)
。
结论
官方发行说明说,官方第一个Java于1996年1月首次发行,使Java完成了其25年的历程,如上面的时间表所示。我们认为,与Java相比,从台式机,移动设备,企业开发到现代云和大数据开发领域,计算机历史上没有其他编程语言可以经受得住。许多人说,像GoLang,Python,Javascript框架这样的新编程结构将使Java很快消失,但是Java15中引入了许多功能,这似乎强烈地表明Java仍然是开发人员社区的第一选择