`

java运行速度比C++慢的原因

阅读更多

1)java是解释性语言,java程序在运行时类加载器从类路经中加载相关的类,然后java虚拟机读取该类文件的字节,执行相应操作.而C++编译的时候将程序编译成本地机器码.一般来说java程序执行速度要比C++慢10-30倍.即使采用just-in-time compiling (读取类文件字节后,编译成本地机器码)技术,速度也要比C++慢好多.
2)java程序有要从网络上加载类字节,然后执行,这也是导致java运行速度慢的原因.

3)在程序运行过程中,java虚拟机要检测数组是否越界,在C++中则不检测.

4)java中所有的对象都创建在堆中,没有对象被创建在stack中,而C++有的对象和变量是创建在stack中的

5) java在运行过程中检测对象的引用是否为空,如果引用指向都空指针,且执行某个方法时会抛出空指针异常

6)java运行时对类型检测,如果类型不正确会抛出ClassCastException异常.

7)java的垃圾回收机制较C++由程序员管理内存效率更低.

8) java中的原始数据类型在每个操作系统平台长度都是相同,而C++这些数据类型长度是随操作系统的不同而不同,所以java在不同操作系统上执行时有个转化过程.

9)在java中String 是UNICODE.当java要操作一个 ASCII string 时,比C++效率上相对要低一些.

10)java中采用的是动态链接

分享到:
评论

相关推荐

    4、c语言和c++和Python-和Java优缺点.pdf

    Java的OO设计比C++要简单和轻量级,它易于编写和维护。Java的跨平台能力得益于它的虚拟机(JVM)技术,使得Java应用程序可以在不同操作系统上运行而不需修改。不过,Java语言的性能通常低于C++和C语言,尤其是在需要...

    Android C++高级编程 使用NDK随书源码

    6. **性能优化**:使用C++进行Android开发的一大原因是性能优化,通过减少虚拟机的开销,直接调用硬件,可以显著提升应用运行速度。 7. **游戏开发**:游戏引擎通常使用C++编写,因为需要高效、低级别的内存管理和...

    SQLITE数据库 UPDATE慢

    在SQLITE数据库中,UPDATE操作可能会遇到性能问题,导致更新...针对具体问题,分析日志,定位慢查询,然后采取针对性的措施,可以显著提升SQLite数据库的更新速度。在实际应用中,应结合具体情况,灵活运用这些策略。

    Java大作业

    Java 的优点在于其自动内存管理、平台无关性以及丰富的类库,但相比 C,它的运行速度可能会慢一些。 在大作业的题目中,你可以选择以下几个主题进行深入探讨和编程实践: 1. **黄金分割数**:使用分层计算法求解高...

    小白学java

    1996年,Sun Microsystems发布了Java 1.0版本,尽管最初的应用程序运行速度较慢,但在Java 1.1版本中得到了显著改进。 #### 三、Java语言的特点 Java之所以能够流行起来并且长久保持其地位,很大程度上归功于其具有...

    Android C++高级编程-使用NDK_源码

    使用NDK的主要原因是性能需求,如游戏引擎、图形处理、物理模拟等,这些场景下Java无法提供必要的速度。此外,NDK还用于集成已有的C/C++库,或者利用特定硬件的特性。 本书的源码目录`pro-android-c-w-ndk-master`...

    《Optimizing software in C++》

    软件运行速度慢的原因多种多样,包括但不限于不恰当的算法选择、内存管理问题、过度使用系统资源、无谓的计算以及对硬件特性的不充分利用等。开发者需要深入理解这些因素,以便在设计和实现阶段就避免潜在的性能瓶颈...

    java机制介绍

    - GC的工作:垃圾回收机制监控对象的生命周期,包括对象的创建、引用、被引用和赋值等,这增加了Java虚拟机(JVM)的负担,也是Java程序可能运行较慢的原因之一。 2. JVM内存区域组成: - 栈内存(Stack)与堆...

    java新手入门必看的30个问题.doc

    - 如果项目不需要跨平台、不需要分布式应用且强调程序运行速度,则C++可能更适合。 - 如果项目需要跨平台、分布式应用,且对运行速度要求不是特别高,则Java是更好的选择。 #### 四、Java技术体系篇 **7. 什么是...

    java中内存分配

    但缺点是,由于要在运行时动态分配内存存取速度较慢。 在 Java 中,基本数据类型共有 8 种,即 int, short, long, byte, float, double, boolean, char。这些类型的定义是通过诸如 int a = 3; long b = 255L;的...

    C++与其他语言的比较.pdf

    C++的性能优于其他语言的原因是由于C++直接以静态形式把源程序编译为目标平台的机器码,C/C++程序在编译及链接时可进行的优化最丰富,启动时的速度最快,运行时的额外内存开销最少。 C++相比动态语言(如Python/Lua...

    对java语言的十个常见误解.rar

    这个观点源于早期Java的性能问题,但随着JVM(Java虚拟机)的不断优化,尤其是JIT(即时编译器)的引入,Java的运行速度已经大大提高,甚至在某些场景下可以与C++等原生代码相媲美。 2. **误解二:Java不适合开发...

    java入门材料一

    2. **稳定性**:虽然Java的执行速度相比某些编译型语言(如C/C++)稍慢,但它非常稳定,且内置的垃圾回收机制可以有效避免内存泄漏问题,减少了程序出错的可能性。 3. **安全性**:Java设计时就注重安全,通过沙箱...

    java入门与加深FAQ.doc

    如果项目不需要跨平台、不涉及分布式系统且对程序运行速度有较高要求,则C++可能更加合适。反之,如果需要跨平台、分布式应用,或者希望简化开发过程,则Java可能更适合。 - **结论**:两者各有优势,选择哪种语言取...

    Visual C++ 2010入门经典(第5版)--源代码及课后练习答案

     Ivor Horton是撰著Java、C和C++编程语言图书的杰出作家之一。大家一致认为,他的著作独具风格,无论是编程新手,还是经验丰富的编程人员,都很容易理解其内容。在个人实践中,Ivor Horton也是一名系统顾问。他从事...

    Absolute.Java.5th.Edition

    Java语言在全球的市场占有率高达20%,在我国软件行业,每年对Java人才的需求达到30万,且这个需求量每年以大约22%的速度增长。因此,Java的发展市场潜力巨大,就业前景广阔。 2. Java在企业级应用中的地位 Java作为...

    Java中堆内存与栈内存分配浅析

    这也是Java相对于C++等语言更加占用内存的原因之一。 Java内存分配策略包括静态存储分配、栈式存储分配和堆式存储分配。静态存储分配在编译时就确定了变量的内存需求,栈式分配在运行时按需分配,而堆式分配则处理...

    ★★★★★Java2参考大全(第4版)

    Java语言产生的原因 Java语言的诞生并非偶然,而是出于两个主要驱动力: 1. **适应不断变化的需求**:随着互联网技术的发展,需要一种新的语言来应对网络环境下的挑战。 2. **编程艺术的完善与提高**:随着软件...

Global site tag (gtag.js) - Google Analytics