爱上 Java 的10 大理由,Python 弱爆了!

来源:www.codeceo.com/article/10-reasons-to-love-java-jvm.html

Java和JVM已经存在了很长一段时间了,基于这个事实,一些程序员开始将很多事情视为理所当然。今天我们就来说一说“Java之所以能够成为并将继续是软件项目领先平台”的十大理由。

1.高性能JVM

Java最初的开发目的“一次编写到处运行”,并由虚拟机提供运行平台。点击这里查看JVM内存模型详解。没有JVM,Java就必须遵循Ruby和Python的步伐——在痛苦中进一步提高其便携性。随着物联网的出现,一个强大的虚拟机变得越来越重要。

2.核心API

最让人喜欢的就是Java核心API——从它诞生之后就可以完全向后兼容,这样我们就可以开始写更多的Java应用。虽然有无数额外的库和JVM语言可以提供简洁的语言水平,以获取多种核心API功能,但其中大部分实际上是依赖于Java核心API的支配。虽然也有其他语言纷纷效仿,但很少能像Java保持得如此稳定。

3.编译器

还有很多值得欣赏的Java编译器——将你的源代码转换成字节码,然后再成为可执行文件——更由于JIT的出现,将其他的直译程式比到了尘埃里。并且天生简洁的Java编译器能让开发人员只需将注意力放在代码上,而无需关注编译器架构。

4.字节码

和编译器一样,在Java字节码中,简单才是王道。它可以大大降低了写出潜在错误代码的几率。并且也不需要第三方字节码操作工具。

5.内存模型

通过在JVM里提供一个独立于硬件的内存模型,Java就没有必要卸载外部库。这使得该语言、核心API、编译器可以同心协力,一起来为并行操作提供稳定基础和共享状态。点击这里查看JVM内存模型详解。

6.开源

当涉及到开放源代码时,Java也不例外。关于Java的特殊之处就是它居然将OSS理念广泛地渗透到其生态系统中——无论是移动形式还是企业乃至世界上一些决定性的系统。而其他唯一能和它媲美的就只有Linux。

7.智能化的集成开发环境

随着2015年IntelliJ IDEA、NetBeans和Eclipse的三位一体,当涉及到需要寻找免费的开源开发环境时,开发人员拥有了更为奢侈的选择—— 它的插件套组和服务真正更上一层楼。

8.分析工具

众所周知,假设总是让人很郁闷,这时就需要分析工具上场了。开发人员可以通过各种已经被打包为JDK的分析工具来解决这些“假设”问题。

9.向后兼容性

当涉及到兼容性,Java成绩斐然。基于其可向后兼容的特性,使得Java社区可以站在彼此的肩膀上共同铸就Java语言二十年的辉煌—— 当然还有一个主要因素是,语言的长寿。

10.成熟与创新

俗话说,长江后浪推前浪、一代新人换旧人,技术领域的也是如此。很多人会觉得Java已经很老了,不再适合入门语言。但是,宝刀未老的Java依然不但具有出色的可靠性,而且非常稳定。团队也能轻易使用它来创建产品,同时避免踩到任何人的短处。

简而言之就是,Python弱爆了!你爱上Java的理由是什么?欢迎留言!

“智能集成开发环境、向后兼容的平台、大规模的核心API、充满活力的开源社区、可读而封装的语言,使得Java成为了团队合作的完美桥梁。”

原文发布于微信公众号 - Java技术栈(javastack)

原文发表时间:2018-07-07

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神联盟

高效编程所需要做的那点事

聊聊如果才能高效编程 计划(Plan) 所谓Plan,其实就是对应于编程中的设计阶段,当然,这里的Plan并不像设计那样重量级。它要求我们程序员在正式...

2839
来自专栏Java架构师进阶

Java高级工程师面试总结

原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的...

1192
来自专栏微信公众号:Java团长

Java高级工程师面试总结

原因:面试的第一个问题,一般都是让你简单介绍下你自己,或者介绍一下你最近的项目,而一个面试者,如果连自己的简历都无法熟知,对里面提到的项目、技术都无法描述清楚的...

1041
来自专栏Java架构

迎战金九银十:阿里、京东、美团内推题送给还在迷茫的朋友

跳槽,对IT人来说绝对不是个陌生的词汇,几乎所有人都身体力行过。首先我要强调一点,跳槽并没有坏处,但是频繁的跳槽就不好了。在工作的前4年,必须跳槽,而且鼓励跳槽...

1133
来自专栏ThoughtWorks

流水线即代码|洞见

2016年11月份的技术雷达中给出了一个简明的定义:流水线即代码(Pipeline as Code)通过对持续集成/持续交付(CI/CD)运行工具进行编码而非配...

3985
来自专栏Python爬虫与算法进阶

爬虫学到什么程度可以去找工作

随便看看知乎上的教程就可以入门了,就Python而言,会requests当然是不够的,还需要了解scrapy和pyspider这两个框架,scrapy_redi...

2460
来自专栏Golang语言社区

一个调度系统的开发与性能优化

背景:随着Go的不断发展,流行度越来越高,业界对Go的认可度也越来越高,所以很多团队或者公司在遇到性能问题时都会尝试使用Go来重构系统,尤其是云计算领域,大家期...

1921
来自专栏java工会

Java有哪些进阶技术?

2274
来自专栏北京马哥教育

Linux 内核学习经验总结

学习内核,每个人都有自己的学习方法,仁者见仁智者见智。以下是我在学习过程中总结出来的东西,对自身来说,我认为比较有效率,拿出来跟大家交流一下。

6942
来自专栏Java架构

Java高级工程师——面试总结

2155

扫码关注云+社区

领取腾讯云代金券