承德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. Java program to find the largest element in array

    Java program to find the largest element in array Given an array of numbers, write a java program to ...

  2. 基于DNN的推荐算法总结

    1.早期的算法 深度学习在CTR预估应用的常见算法有Wide&Deep,DeepFM等. 这些方法一般的思路是:通过Embedding层,将高维离散特征转换为固定长度的连续特征,然后通过多个全 ...

  3. fork() 函数简介

    fork() 函数简介 fork系统调用用于创建一个新进程,称为子进程,它与进行fork()调用的进程(父进程)并发运行.创建新的子进程后,两个进程都将执行fork()系统调用之后的下一条指令.子进程 ...

  4. python 之 数据库(视图、触发器、事务、存储过程)

    10.13 视图 1.什么是视图 视图就是通过查询得到一张虚拟表,然后保存下来,下次用的直接使用即可 2.为什么要用视图 如果要频繁使用一张虚拟表,可以不用重复查询 3.如何使用视图 视图记录的增.删 ...

  5. Python 编程入门

    我喜欢直接了当, 这次主要是推荐蟒营大妈的 Python 入门课(https://py.101.camp), 还有不到一周就要开课了, 欢迎转发推荐~ 点击"夏日大作战:从小白到小能手的 P ...

  6. v8 引擎的内存

    一.nodejs查看内容使用情况: process.memoryUsage() 单位为 Btye 转化函数: var format = function(bytes) { return (bytes/ ...

  7. truncate删除一个分区,测试全局索引是否失效

    目的,有一个清理数据的需求,需要删除历史的一个分区所有记录信息,但是存在主键global索引,如何更好的维护. 如下测试流程一 提前创建好一个已时间created 字段作为分区键的范围分区表 SQL& ...

  8. GoLand中同一个目录下的package无法调用

    代码结构: 三个代码的package 都是 pipefilter,执行split_filter_test.go 就会提示   undefined:xxxxxxx Golang实际都可以自己补全另一个文 ...

  9. 最全的ADB命令行大全(转)

    基本用法 命令语法 adb 命令的基本语法如下: adb [-d|-e|-s ] 如果只有一个设备/模拟器连接时,可以省略掉 [-d|-e|-s ] 这一部分,直接使用 adb . 为命令指定目标设备 ...

  10. 编写Postgres扩展之二:类型和运算符

    原文:http://big-elephants.com/2015-10/writing-postgres-extensions-part-ii/ 编译:Tacey Wong 在上一篇关于编写Postg ...