承德SEO:常居编程语言榜首的 Java 已有 20 多年历史,它的实用性、性能和向后兼容性都无可替代,即使是忽略它的“年龄”也依然稳居第一

如今的 Java 几乎占据了C语言曾拥有的地位,而C语言在 Java 流行前一直是最受关注的(1986 年 Lisp 语言排名第二,而 Ada 排名第三)

为什么 Java 能够一直这么受欢迎呢?如下:

一、向下兼容

Sun 公司与 Oracle 公司在确保旧版本 Java 代码能正常在新版本上运行做出很大努力。理想很丰满,现实很骨感(如 JavaSE1.4 断言与 JavaSE5 中枚举)虽然有时不向下兼容却也能够获得更好的实现(泛型),但向下兼容对于开发者来说依然是极具吸引力的特性。没有什么是比让新版本平台能正常运行代码而修改旧版本正常代码要更麻烦的事了。

二、实用性

它能使开发者花费最小的代价就能完成工作,还能使得开发者在一段时间之后,继续完成别人的或自己的代码还能清楚当初的开发意愿,也可以编写可读性较差的代码,就像在其它语言中做的一样,但是良好的编码风格能使它比其它语言更具的可读性。

三、可扩展性/性能/可靠性

多年的发展与每年数以千计开发者推动,Java 已成为坚实的平台,说起可扩展性,可以看看那些使用 Java 语言的大型企业:Twitter(抛弃 Ruby-on-Rails 因为不再具有扩展性),Facebook/Spotify/Scalesforce/eBay大数据工程基础框架,无不在使用 Java 或者 Scala 且是在 JVM 虚拟机上运行。如果需要良好的拓展性与性能那么Java 与 JVM 就是最好的选择

四、持续热度

从2014 年开始,Java 的欢迎程度有显著提升,这正是 JDK8 的发行后。JDK8引入了 Lambda 表达式与Stream API。使Java 开发者能够不用学习一整套新语言(如 Scala)的情况下以更有效的方式进行开发。这样的特点使它能更简单利用多核/多处理器机器,不必写大量复杂和潜在容易出错的多线程代码。随着 Jigsaw 工程 JDK 9 的发布而启动,我们能看到模块化使大企业应用程序更容易建立、部署与维护

为什么Java那么火?的更多相关文章

  1. java程序员烂大街为何还不便宜?

    最近跟一朋友聊天,他是做c#开发的.他答应了老板带领一帮java工程师开发网站.披星戴月终于搞定,现在已经盈利.但是他公司的那帮搞c#的同事不淡定了. 在招聘java程序员的时候2年有开15k的.5年 ...

  2. Java 的简单了解

    本文是主要根据百度百科以网上一些资料,整理的一点对Java的浅显的了解,不当之处,还请大家批评指正. 最初见到Java这个单词,是在以前的手机上,游戏启动时总会显示java的图标和名字,就感觉java ...

  3. 【java读书笔记】——java开篇宏观把控 + HelloWorld

    学完java有一段时间了,一直没有做对应的总结,总认为有一种缺憾.从这篇博客開始,将自己平时的学习笔记进行总结归纳,分享给大家. 这篇博客主要简单的介绍一下java的基础知识,基本的目的是扫盲.原来仅 ...

  4. JAVA学习第一课(初识JAVA)

    PS:退ACM集训队了,自己也疯玩了两天,后天就开学了,就正式大二了,该收收心好好学习啦                                                         ...

  5. 从事三年java开发后, 我打算转人工智能

    作为一个2015年参加java培训,2016年计算机科学与技术本科毕业后一直从事java开发的程序员来说, 做出这一步真的不容易, 可是我没赶上java最火的时候,反而渐渐感受到了java的没落, 目 ...

  6. 09-02 java 多态

    多态的前提.多态的特点 /* 多态:同一个对象(事物),在不同时刻体现出来的不同状态. 举例: 猫是猫,猫是动物. 水(液体,固体,气态). 多态的前提: A:要有继承关系. B:要有方法重写. 其实 ...

  7. java起源和基本数据类型

    1.Java起源于1994年的sun公司,起初并没有体现出它独特的优势.sun公司一度想要放弃这个项目.亏的领头人的力争.Java才的以存在.二十世纪末.随着互联网的兴起.交互式设计越来越多的应用,对 ...

  8. Java和js的区别,以及Java和c的区别

    刚开始的时候我们也搞不清这些概念,不过后来就慢慢清晰了,首先和大家谈谈Java和js的区别,最简单的区别就是一个是后端,一个是前端.   java是纯面向对象语言,javascrip其实和Java是完 ...

  9. 【aliyun】学java,看这里,不迷茫!1460道Java热门问题

    阿里极客公益活动: 或许你挑灯夜战只为一道难题 或许你百思不解只求一个答案 或许你绞尽脑汁只因一种未知 那么他们来了,阿里系技术专家来云栖问答为你解答技术难题了 他们用户自己手中的技术来帮助用户成长 ...

随机推荐

  1. input 标签鼠标放入输入框补全提示

    JSP: <input type="text" placeholder="eventDesc" value="" id="e ...

  2. [转帖]Linux下主机间文件传输命令

    Linux下主机间文件传输命令 https://yq.aliyun.com/articles/53631?spm=a2c4e.11155435.0.0.580ce8ef4Q9uzs   SCP命令: ...

  3. Java基础---Java 数组

    数组概念: 数组就是存储数据长度固定的容器,保证多个数据的数据类型要一致. 数组的定义 格式:数组定义格式详解: 数组存储的数据类型: 创建的数组容器可以存储什么数据类型. [] : 表示数组. 数组 ...

  4. 00 Python的变量

    变量分类 a.全局变量:在模块内.在所有函数外面.在class外面,这就是全局变量. b.局部变量:在函数内.在class的方法(构造.类方法.静态方法.实例方法)内(变量未加self修饰),这就是局 ...

  5. Python3遍历指定文件夹下所有文件及文件夹

    采用os模块儿: import os def get_filelist(dir): for home, dirs, files in os.walk(dir): print("####### ...

  6. 如何在mongoengine中使用referencefield引用本类

    引用:原文 from mongoengine import * class Employee(Document): name = StringField() boss = ReferenceField ...

  7. thrift原理与架构

    是什么: 一个RPC框架.

  8. 代码质量控制 & 编程注意项

    目录 代码质量控制 编程注意项 代码&功能优化 代码优化 功能&模块优化 其他 小技巧 调试 用于记录工作中出现的问题和编程时需要注意的重点,保证代码质量和编程效率     代码质量控 ...

  9. shell 学习笔记2-shell-test

    一.字符串测试表达式 前面一篇介绍:什么是shell,shell变量请参考: shell 学习笔记1-什么是shell,shell变量 1.字符串测试表达式参数 字符串需要用""引 ...

  10. Python之算法模型-5.1

    一.这里学习的算法模型包含监督学习和非监督学习两个方式的算法. 其中监督学习的主要算法分为(分类算法,回归算法),无监督学习(聚类算法),这里的几种算法,主要是学习他们用来做预测的效果和具体的使用方式 ...