`

也谈什么时候Java比C++快

阅读更多

 

刚打开iteye就看到这个标题“Java什么时候比C++快”,觉得很好笑。

 

你要比,就比同等水平的基础上的相比,笨蛋写得C代码和C++代码,去和高手写的Java代码比效率,有什么意义呢?

 

我是写密码算法的,深刻知道算法C和C++实现和Java实现之间的效率差,甚至也比对过C代码和汇编代码的效率差,计算机是个死的东西,再怎么优化,Java也就是和C效率相当,也没有见过超越C的(是否能超越C++?)因为Java上的优化,C和C++也可以照做。

 

Java是成也GC,败也GC,不担心内存泄露是好事,但是大量垃圾不能及时回收,或回收大量垃圾带来的卡顿非常糟糕,这都是见仁见智的一些点。

 

但是存在一种场景,就是一个软件、一个程序中,计算不是最主要的效率影响因素,很大部分的运行时间消耗在网络IO、磁盘存取、人机交互等等地方,这样的情况下,Java实现和C/C++实现,总体效率是差不多的,因为再快的计算也被这些环节抹平了。这时候,Java易上手的优势就体现出来了。这才是Java的优势。

 

Java的优势在于OO,面向对象的分析和设计,以接近人类的理解模式和思考模式来设计程序。运行效率不是Java的首要目的。在提供了大量好用的API和拥有大量的开源组件后,在”一次编译,到处运行“这一目标大致实现后,开发效率比运行效率更加吸引人们的注意力。

 

 

3
5
分享到:
评论
1 楼 airu 2016-01-19  
JIT呢?C或者C++可没有。编译时优化谁都可以做,但是运行时优化呢?

相关推荐

    谈我对java的一些认识

    首先,Java的语法相对简单,尤其与C和C++相比,它去除了指针的概念,这使得初学者能够更容易地理解和掌握。Java的自动垃圾回收机制也是一个显著优点,它减轻了程序员管理内存的负担,降低了程序出现内存泄漏的风险。...

    java推荐读物(介绍java相关经典书籍)

    谈到Java语言基础学习的书籍,大家肯定会推荐Bruce Eckel的《Thinking in Java》。它是一本写的相当深刻的技术书籍,Java语言基础部分基本没有其它任何一本书可以超越它。该书的作者Bruce Eckel在网络上被称为天才的...

    浅谈java的接口和C++虚类的相同和不同之处

    Java的接口和C++的虚类都是面向对象编程中用于实现多态性的关键概念,但它们在设计和使用上有着显著的区别。这篇文章将探讨这两者的相同点和不同点,帮助开发者更好地理解和应用这两种机制。 首先,让我们来看看...

    浅析面向对象语言C_与Java区别_王艳娟1

    【面向对象语言C++与Java的区别】 随着信息技术需求的不断变化,计算机语言经历了从机器语言、汇编语言到高级语言的演进,直至现代流行的面向对象语言。在面向对象编程领域,C++和Java是最典型且广泛使用的两种语言...

    浅谈Java语言评价胜出的8大技术优势

    ### 浅谈Java语言评价胜出的8大技术优势 #### 1. 强大的API支持 Java提供了非常丰富的API支持,包括网络编程中的Socket API、数据库操作中的SQL API、图形用户界面的Swing和AWT API等。这些API不仅功能强大而且...

    计算机软件Java编程特点及技术的探析.pdf

    3. 自动化内存管理:Java提供了自动的垃圾回收机制,这意味着程序员不需要像在C或C++中那样手动管理内存。这减少了内存泄漏和其他与内存管理相关的错误,同时简化了开发过程。 4. 强大的标准库和第三方库支持:Java...

    浅谈Java的发展及前景.pdf

    "浅谈Java的发展及前景" 经过对文件的分析,我们可以从多个角度来谈论Java的发展及前景。 首先,从Java的发展历史来看,Java是由Sun Microsystems公司于1995年5月推出的面向对象的程序设计语言。Java的出现标志着...

    Java反射技术浅谈.pdf

    Java反射技术浅谈 Java反射技术是一种强大的技术,它允许Java程序访问、检测和修改它自己的状态或行为。通过反射,Java程序可以加载一个运行时才知道名称的类,获取其完整的内部信息,并创建其对象,或者对其属性...

    2022年国内不谈Java--硅谷有感Java教程.docx

    例如,IBM在全球范围内投入大量资源进行Java研发,Intel则致力于开发Java芯片,数据库厂商如Oracle、Sybase等纷纷提供对Java的全面支持,系统集成商和网络设备供应商也纷纷推出基于Java的产品和服务。 Java的版本...

    浅谈高职高专Java基础教学.pdf

    浅谈高职高专Java基础教学 Java 语言是高职高专教学中的一门重要课程,然而由于学生的整体水平和层次相对较低,学习的主动性和自觉性较差,使得教学工作变得非常困难。因此,笔者结合教学经验和思考,总结了个人的...

    浅谈Java的多线程机制.pdf

    "浅谈Java的多线程机制" 本文主要讨论了Java语言中的多线程机制,旨在提高应用程序的性能和实时控制性能。 Java提供了多线程编程模型,使得在一个程序中可以同时执行多个小任务,从而最大限度地利用CPU资源。 首先...

    深入解析C++和JAVA的字符串

    谈一下C++的字符串:C++提供两种字符串的表示:C风格的字符串和标准C++引入的string类型。一般建议用string类型,但是实际情况中还是要使用老式C风格的字符串。 1.C风格的字符串:C风格字符串起源于C,并在C++中得到...

    一张图片让你看看离真正java工程师的差距

    在国内IT界,不谈Java--会有千万人跳出来和你争嘴。越是不心看到在这个领域被国外的同行越落越远。 接触Java也仅仅是在作毕业设计时用过。对Java也算是有了基本的了解,那时的Java才jdk才1.0,烂得很,连些基本能都...

    最新Java文档五百篇

    内不谈java--会有千万人跳出来和你争嘴的。 越是如此,我越是不忍心不说出来,越是不不忍心看到在这个 领域被国外的同行越拉越远--在硅谷的感受。 我是96年毕业的,正值java刚出,火气冲天之时。 我当时是一名C++...

    Java文档五百篇

    国内不谈java--会有千万人跳出来和你争嘴的。 越是如此,我越是不忍心不说出来,越是不不忍心看到在这个 领域被国外的同行越拉越远--在硅谷的感受。 我是96年毕业的,正值java刚出,火气冲天之时。 ...

    经典之谈——Java内存分配

    本篇文章将基于“经典之谈——Java内存分配”这一主题,结合“详谈Java的内存分配.pdf”文档,深入讲解Java内存的各个方面。 首先,Java内存分为几个主要区域,分别是:程序计数器(Program Counter Register)、...

    电脑游戏中的人工智能制作[含代码]java/c++

    浅谈人工智慧   电脑游戏中的人工智能制作   棋类编程 部分1: 开始   棋类编程 部分2: 数据结构   棋类编程 部分3: 产生移动   棋类编程 部分4: 基础搜索   棋类编程 部分5: 高级搜索   棋类编程 部分6: 评估...

    浅谈Java 技术的发展

    回顾历史,计算机语言有着一个漫长的...在整个发展过程中,出现了非常经典的c 语言,史上最为强大的c++语言等 等,它们在各自不同的应用领域中都占有相当重要的地位,而该文要论述的则是最近几年比较热门的java 语言。

Global site tag (gtag.js) - Google Analytics