java语言发展历史_Java编程语言的历史和未来

java语言发展历史

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用!

作为互联网上著名的编程语言 ,Java对人们如何浏览数字世界产生了深远的影响。 Java功能设置了用户对他们访问互联网的设备的性能期望的大部分。 但是,您不必成为开发人员即可了解其影响。

Java的历史可以追溯到二十多年前,并且随着世界的数字化转型而发展。 随着消费者和企业对可伸缩性的需求增加,Java被迫发展和适应以保持相关性。 利益相关者正在着手进行有关Java历史,当前使用和未来方向的入门工作。

Java的历史:时间表

早期发展

Java是Java先驱James Gosling的创意,James Gosling追溯了Java的核心思想“一次编写,随处运行”,回到了他在研究生院所做的工作。

在IBM工作一段时间后,Gosling于1984年加入SunMicrosystems。1991年,Gosling与Sun的同事Michael Sheridan和Patrick Naughton合作开发了Green项目,以开发用于对下一代智能设备进行编程的新技术。

Gosling,Naughton和Sheridan着手根据某些规则开发该项目。 它们专门与性能,安全性和功能相关。 这些规则是Java必须是:

  1. 安全可靠
  2. 高性能
  3. 可移植且与体系结构无关,这意味着它可以在软件和硬件的任何组合上运行
  4. 线程化,解释性和动态性
  5. 面向对象

随着时间的流逝,该团队增加了功能和改进功能,扩展了C ++和C的传家宝,从而产生了一种名为Oak的新语言,以Gosling办公室外的一棵树命名。

在使用Oak用于交互式电视的努力未能实现之后,该技术被重新定位为万维网。 该团队还开始使用Web浏览器作为演示平台。

由于商标冲突,Oak被重命名为Java,并在1995年发布了Java 1.0a2和名为HotJava的浏览器。

开发人员招待会

Java在软件社区中受到开发人员的欢迎,特别是因为Java是根据“一次编写,随处运行”(WORA)理念创建的。 这种灵活性源自Java的Bytecode编译功能,该功能绕过了不同系统基础结构的潜在障碍。 Java是一种独特的编程语言,因为它在本质上第一次解决了可移植性问题。

在很短的时间内,Java可用于开源。 Sun Microsystems 于2006年进行了此转换,以防止市场分散化并吸引主要在开源平台中工作的开发人员。 但是,这是短暂的,因为Oracle在2010年接管Sun Microsystems时减少了工作量并恢复了商业许可。

Java的年龄和普遍性意味着大多数程序员一次或一次都遇到过Java,即使不是全职工作。 鉴于庞大的用户群,对于Java是否仍然有用,人们存在不可避免的意见分歧。

除Java外,开发人员似乎还在探索其他选择。 根据2016年9月的TIOBE Index,Java作为一种编程语言的流行正在下降 。 但是,它仍然是最广泛使用的语言,它超越了.NET并保持了前几年的顶级位置 。

Java的优势

作为开发人员,您可能已经意识到使用Java的优势,这有助于解释为什么Java是当今企业中使用的主要编程语言之一:

  • 垃圾收集– C和C ++等语言要求您手动清除创建的对象,这与Java的内置垃圾收集形成鲜明对比。
  • 详细的静态语言–由于Java具有强大的固有固有静态特性,因此易于维护和阅读。 Java使您能够返回多种类型的数据,并且可以轻松地在各种企业级应用程序中使用它。
  • 可移植性–诸如Apache Maven和开源之类的协作自动化工具都对Java友好。 AppDynamics也不例外:通过关键的Java调整和性能分析指标了解JVM的运行状况,包括:响应时间,吞吐量,异常率,垃圾收集时间,代码死锁等。
  • 易于运行,易于编写–只需编写一次Java,您几乎可以随时随地运行它。 这是Java的基石力量。 这意味着您可以使用它轻松创建移动应用程序或在使用不同操作系统和服务器(例如Linux或Windows)的桌面应用程序上运行
  • 适应性– Java的JVM工具是多种语言的基础。 这就是为什么您可以轻松使用Groovy,Jython和Scala之类的语言的原因。

Java的弱点

尽管Java有很多优势,但这种迫在眉睫的编程语言仍然面临着挑战:

  • 不是Web语言–创建Web应用程序所需的层和工具(例如Struts,JPA或JSP)数量与Java的易用性设计无关。 这些其他框架有其自身的问题,很难在其中使用。
  • 发布频率–随着运行时的每次更改,开发人员必须赶上速度,从而导致内部延迟。 由于Java更新可能会导致暂时的中断和不稳定,因此这对关心安全性的企业是个麻烦。

Java的下一个发展

尽管Java历史悠久,但它并不是传统的编程语言。 Maven(基于Java的项目的构建工具)的强大使用,颠覆了Java已经过时的理论。 尽管市场上有各种各样的部署工具,但Apache Maven迄今为止已成为开发人员用来部署软件应用程序的最大自动化工具之一。

由于Oracle长期致力于Java,因此不难看出为什么Java在以后的几年中将始终是编程语言的一部分,并且仍将是首选的编程语言。 2017年将发布第八个Java版本 -Java EE 8。

尽管有待改进的地方,并且受到.NET等竞争对手编程语言的威胁,但Java仍然存在。 Oracle计划在2017年初发布新版本,其新的支持功能将强烈吸引开发人员。 Java作为编程语言的众多优势意味着Java在数字世界中的使用只会不断巩固。 在过去的二十多年中,一种为易于使用而固有设计的语言已证明自己具有功能性和安全性。 欣赏技术变革的开发人员也可以放心,Java的久经考验的语言将很可能始终在其工具集中占有重要地位。

通过AppDynamics解决应用程序问题的速度提高了10倍–以最小的开销在代码级深度监视生产应用程序。 开始免费试用!

翻译自: https://www.javacodegeeks.com/2017/03/history-future-java-programming-language.html

java语言发展历史

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334853.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux 命令之 Bang(!) 命令

命令说明!!执行上一条命令^foo^ bar把上一条命令里的foo替换为bar,并执行!wget重复执行最近的以wget开头的命令!wget:p仅打印最近的以wget开头的命令,不执行!n执行历史命令列表第n条命令,例如执行第三条命令:!3!-n执行历史命令列表…

matlab resample上采样,resample matlab实现

使用线性插值实现sample rate转换。function output simpleResample(input, inputfs, outputfs)inputLen length(input(:, 1));outputLen floor(inputLen * outputfs / inputfs);output zeros(outputLen, 1);timeStep inputfs / outputfs;curTime 1;integer 0;frac 0;f…

c matlab 精度,svm去优化参数C和g,输出正确率accuracy老是0

下面这个是测试的M文件%% Matlab神经网络43个案例分析%% 清空环境变量function chapter_GridSearchclose all;clear;clc;format compact;%% 数据提取% 载入测试数据wine,其中包含的数据为classnumber 3,wine:178*13的矩阵,wine_labes:178*1的列向量load wine.mat;% 画出测试数…

微服务pact测试框架_消费者驱动的Pact和Spring Boot测试

微服务pact测试框架最近,我的一位同事偶然发现了Pact.io ,我们目前的应用程序已扩展到 50多种服务,并且我们开始出现一些集成测试失败和脆弱的开发/验收测试环境。 因此,我们决定研究尝试与此相关的方法。 我从阅读开始&#xff…

用access建立一个试题库_Access考试题库(含答案).doc

所有单选题1、用Access创建的数据库文件,其扩展名是______。A:.adpB:.dbfC:.frmD:.mdb答案:D2、数据库系统的核心是______。A:数据模型B:数据库管理系统C:数据库D&#x…

Linux 命令之 arch --显示主机的硬件结构类型

文章目录介绍命令示例介绍 arch命令主要用于显示当前主机的硬件结构类型,arch命令输出的结果有:i386、i486、mips、alpha等。 此命令的适用范围:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。 命令示例 显示当前主机硬件架构类…

mega5安装包_[MEGA DEAL] 2017年完全Java捆绑包(95%折扣)

mega5安装包深入了解编程奥德赛(58小时!),进入最常用的编程语言 嘿,怪胎, 本周,在我们的JCG Deals商店中 ,我们提供了一个极端的报价 。 我们提供的2017 Complete Java Bundle 仅…

det曲线_平面曲线的曲率的复数表示

开学已经是第二周了,我的《微分几何》也上课两周了,进度比较慢,现在才讲到平面曲线的曲率。在平面曲线$\boldsymbol{t}(t)(x(t),y(t))$某点上可以找出单位切向量。$$\boldsymbol{t}\left(\frac{dx}{ds},\frac{dy}{ds}\right)$$其中$ds^2 dx^2…

matlab计算微分ppt,matlab-ch013(数值计算-微积分)20090923.ppt

matlab-ch013(数值计算-微积分)20090923.ppt 第13讲 数值计算 —微积分,张建瓴,13.1 数值积分,在工程教学和应用中,除了进行数据逼近外,还要求逼近曲线下面的面积,这就是积分问题。,一、数值积分方法,典型的数值积分方法有:用常数…

Linux 关于查看 cpu 的命令

文章目录查看物理 cpu 个数查看每个物理 cpu 中core的个数(即核数)查看逻辑 cpu 的个数查看 cpu 信息(型号)查看 cpu 的配置信息查看cpu波动情况的,尤其是多核机器上参考文档备注/说明查看物理 cpu 个数 [roothtlwk0001host ~]# cat /proc/c…

JDK 9中不推荐使用Java的Observer和Observable

在博客文章《 应用JDK 9 Deprecated增强功能》中 ,我讨论了JDK 9中 Deprecated批注中对forRemoval()和since()可选元素(方法)的添加 。 我在那篇文章中说:“在Java SE API上应用新的…

php快速开发框架津县,BetePHP:一个轻量级快速开发框架

BetePHP关于BetePHP是一个轻量级快速开发框架。框架提供了一致的API接口,使得使用接口尽可能流畅;由于框架本身不依赖其他库,这使得框架本身运行速度非常快;框架希望使用最简单的方式make thing done,减少开发者的开发…

Linux 命令之 vmstat 命令-显示虚拟内存状态

介绍 vmstat 命令的含义为显示虚拟内存状态(“Virtual Memory Statistics”),但是它可以报告关于进程、内存、I/O等系统整体运行状态。 常用选项 选项说明-a显示活跃和非活跃内存-f显示从系统启动至今的fork数量-m显示 slabinfo-n只在开始…

python编译后的文件_python 编译源文件

背景近期项目到了部署的阶段。由于项目后台和算法都是用Python "撸的",但是又不希望将源代码直接 "release" 到 “客户”哪里。于是开始思考。。。首先,按照惯性思维,能否将编译后的东东放出去呢?(类似java或…

java创建和销毁一个对象_有效的Java –创建和销毁对象

java创建和销毁一个对象创建和销毁对象(第2章) 这是Joshua Blochs的《 有效的Java》第2章的简短摘要。我仅包括与自己相关的项目。 静态工厂(项目1) 静态工厂与构造函数的一些优点: 工厂方法的名称为构造函数添加了描…

WorkPlus一站式协同解决方案,助力企业降本增效

在企业数字化转型的过程中,很多企业都会遇到一个共同问题:重复建设基础功能,耗费大量时间和资源。为解决这一难题,WorkPlus已经将一些通用、基础且有技术门槛的功能进行了集成与开发,如IM(即时通讯&#xf…

linux在oracle新建表,Oracle创建表及管理表

1. Oracle表的创建及管理创建表包括三个要素,表名,列名,数据类型。每个表都有对应不同的列,每个列都有唯一对应的数据类型。常用数据类型简介:数据类型描述CHARACTER(n)字符/字符串。固定长度 n。INTEGER(p)整数值(没有…

Linux 命令之 top -- 实时显示进程动态/查看进程信息

文章目录介绍常用选项交互命令参考示例示例 1:直接输入命令 top 就可以动态显示进程信息统计参数信息详解进程属性说明(即进程列表的字段说明)其它1.在 top 基本视图中,按键盘数字 1 可以监控每个逻辑 CPU 的状况2.敲击键盘 b&…

Linux 命令之 iostat 命令-监视系统输入输出设备和 cpu 的使用情况

介绍 iostat命令被用于监视系统输入输出设备和 CPU 的使用情况。它的特点是汇报磁盘活动统计情况,同时也会汇报出 CPU 使用情况。同 vmstat 一样,iostat 也有一个弱点,就是它不能对某个进程进行深入分析,仅对系统的整体情况进行分…

else 策略模式去掉if_如何用卫语句、策略模式、状态模式重构if-else语句

《java开发手册》中:况且日常开发时遇到一推的if-else着实让人头疼!so,现在开始改造一、卫语句卫语句就是把复杂的条件表达式拆分成多个条件表达式,即代码逻辑先考虑失败、异常、中断、退出等直接返回的情况,以方法多个出口的方式&#xff0c…