Java与C++的优劣:谁更胜一筹?

译文
开发
很多人都说会C++就能会快掌握Jave。C++是不好学,但是我告诉你java也不好学。C++难是难在语言本身,java难是难在各种框架和库。你单纯学个java语法,你什么玩意也做不了,java的东西都在java之外。

 

Java与C++的优劣:谁更胜一筹?

【51CTO.com快译】上图仅供娱乐,不过今天我们主要探讨Java与C++间的优劣。

1.基础介绍

Java与C++都拥有相当长的历史,且语法相当类似,并被众多业界巨头所采用。事实上,Java本来就是从C++衍生出来的。

 

[[181298]]

不过尽管相似,二者之间仍然存在显著区别。很多人都说会C++就能会快掌握Jave。C++是不好学,但是我告诉你java也不好学。C++难是难在语言本身,java难是难在各种框架和库。你单纯学个java语法,你什么玩意也做不了,java的东西都在java之外。

2.C++对Java:从就业的角度

 

Java与C++的优劣:谁更胜一筹?

Java与C++的优劣:谁更胜一筹?

上面这两个图片,已经明确的表达出c++的就业机会比java少。java侧重于大型企业级应用开发,C++侧重于底层应用开发。至于薪资方面呢,不管是C++还是java,有了多年项目经验后,工资都会比较高。现在网页,移动APP,都是通过http与服务器通讯,在http请求上面,JAVA处理较好,C++没有处理优势。所以,后台服务器都会用到JAVA,而不一定用到C++(大型的项目才会用到)。因此,为了找工作:选Java。为挑战自我:选C++。

3.C++对Java:相似之处

很多人都爱拿C++对Java作对比的原因也是C++与Java拥有诸多相似之处。因此在为项目选择语言时,大家应主要考虑到当前团队成员更熟悉哪款语言。

 

[[181299]]

  • 语法:两种语言中的循环结构、类、变量定义以及条件运算符非常相近,意味着开发者能够轻松在不同项目中分别使用这两种语言,而不会遇到太多障碍。

  • 入口点:在程序启动时,编译器或者解释器会查找开始执行的对应位置。Java与C++都以“main”作为入口点。

  • 面向对象:面向对象概念代表着语言利用类来表示程序中的组件。每个类包含有其定义的方法与属性。C++与Java都属于面向对象语言,这意味着程序将更具模块化特性,允许大家将代码复用至其它程序当中。

4.C++与Java的区别

人们往往误以为两种语言相似意味着其在功能上也彼此接近。然而,尽管Java与C++拥有类似的语法,但其执行与处理机制则完全不同。

(1)解释对编译:Java是一种解释性语言,意味着其在执行时会被“翻译”为二进制形式,也就是java跑得时候必须有人(jvm)去解释它。而C++则是编译语言,意味着程序只能在特定操作系统上编译并在特定系统上运行,也就是说C++一步到位成机器语言的。

(2)内存安全:Java是一种内存安全型语言,意味着大家可以为给定数组分配任意参数,即使超出范围也只会返回错误提示。C++更为灵活,但代价是一旦分配的参数超出资源范围,则会引起错误甚至严重崩溃。

(3)性能:Java人气极高,但其代码由于需要在运行前进行解释因此性能表现更差。C++会被编译为二进制形式,因此其能够立即运行且速度更快。如果你写一个c++的程序和做同样事情的java程序,可能你感觉两者速度差不多。但如果这两个程序都足够大、而且c++的代码经过过优化,两者的速度差就会变得很显著甚至很惊人,C++会比java快很多。

(4)指针:指针是一种C++结构,允许您直接在内存空间中进行值管理。Java不支持指针,因此您可能使用值引用的方式进行值传递。

(5)重载:重载是指对某种方法或者运算符的功能进行“重新定义”。Java允许方法重载,而C++则允许进行运算符重载。

4.谁更适合您的项目?

Java与C++没有哪个更好,只有哪个更合适。他们都可用于创建各类程序,但具体选择取决于您希望开发的实际内容。

C++通常适合那些需要“硬件级”操作的软件。二者之间的***区别在于,C++更接近机器语言,因此其软件运行速度更快且能够直接与计算机内存、磁盘、CPU或者其它设备进行协作。另外,C++也能为游戏提供良好的运行性能。

大家也可以利用Java操作硬件,但它不属于低级通用编程语言,因为其更加“安全”。因为Java不允许利用某些功能进行PC保护,因此它更适合较高级别的应用。Java是Android开发领域的王者,因此移动开发者无疑应该选择它作为项目基础。另外,Java也常见于Web及桌面应用乃至服务器端应用。再有,Java的接纳程度更高,意味着我们更容易找到水平不错的Java开发者——而C++人才则相对稀缺。Java与C++的优劣:谁更胜一筹?

总体来讲,C++几乎可以实现任何功能,但除非拥有明显理由,否则我们不会将其作为***。Java则是一切都足够——虽然并非***,但完全足够。而更重要的是,Java开发者群体更为庞大。

原文标题:Java vs C++: Which Language is Right for Your Software Project?

原文作者:Jennifer Marsh

【51CTO译稿,合作站点转载请注明原文译者和出处为51CTO.com】

 

责任编辑:陶家龙 来源: 51CTO
相关推荐

2020-02-02 15:42:22

PythonC++编程语言

2010-05-21 16:36:09

GoogleCode

2018-06-12 10:09:41

编程语言PythonJava

2022-07-20 08:16:54

Lombokjava工具

2010-05-28 11:21:17

2020-03-06 09:21:28

PWA原生应用Web

2014-03-06 15:07:41

青橙小米

2019-01-04 09:59:14

KafkaRabbitMQMQ

2017-11-13 15:38:03

VMwareOpenStack混合云

2020-01-18 14:55:03

架构运维技术

2023-08-09 18:08:35

ChatGPTStackOverflow

2018-10-12 13:54:26

2010-07-27 14:36:31

Flex Array

2013-02-19 13:13:33

SurfaceiPad

2023-04-26 07:34:38

Java并发编程

2017-06-08 15:38:41

2020-07-28 09:55:20

自拍华为三星

2012-11-14 09:44:20

apReduceHadoopCoronApache

2015-12-08 13:48:50

大数据工具R语言Spark

2023-08-23 15:14:13

Web开发Javascript编程语言
点赞
收藏

51CTO技术栈公众号