`
t225com
  • 浏览: 666440 次
文章分类
社区版块
存档分类
最新评论

java运行速度慢的原因

 
阅读更多
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中采用的是动态链接


分享到:
评论

相关推荐

    SQL Server中存储过程比直接运行SQL语句慢的原因

    SQL Server 中存储过程比直接运行 SQL 语句慢的原因 在 SQL Server 中,存储过程比直接运行 SQL 语句慢的原因是 Parameter sniffing 问题。Parameter sniffing 是指 SQL Server 在执行存储过程时,使用参数的统计...

    Eclipse 启动运行速度调优

    <br>-XX:CompileThreshold=100 - 此开关将降低启动速度,原因是与不使用此开关相比,HotSpot 能够更快地将更多的方法编译为本地代码。其结果是提高了 IDE 运行时的性能,这是因为更多的 UI 代码将被编译而不是...

    java中内存分配

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

    Java版俄罗斯方块小游戏源码

    或者 开始 --> 运行 --> cmd --> 转到解压目录 --> java -jar tetris.zhh.1.1.jar 【菜单选项】 也做了不少菜单选项 可自定义控制键,可设置单色彩色显示,可设置网格是否显示网格 关卡有三组选择: 标准关卡...

    JAVA面试题最全集

    找出下列代码可能存在的错误,并说明原因: 二、JSP&Servlet技术 1.描述JSP和Servlet的区别、共同点、各自应用的范围 2.在Web开发中需要处理HTML标记时,应做什么样的处理,要筛选那些字符(< > & “”) 3.在...

    java并发编程教程源码

    影响多线程运行速度的原因有线程创建开销、上下文切换、死锁,以及硬件和软件的资源限制等 资源限制:硬件资源和软件资源 硬件资源:如宽带 硬盘读写 内存 cpu处理速度 软件资源:如数据库连接数、socket连接数等 --...

    Java笔试题目.doc

    第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四, 在使用分组和排序子句进行数据检索时,同样可以显著...

    Java虚拟机

    5.3 实战:Eclipse运行速度调优 5.3.1 调优前的程序运行状态 5.3.2 升级JDK 1.6的性能变化及兼容问题 5.3.3 编译时间和类加载时间的优化 5.3.4 调整内存设置控制垃圾收集频率 5.3.5 选择收集器降低延迟 5.4 ...

    java堆栈的区别 -- 详解

    堆是由new分配的内存,一般速度比较慢,而且容易产生内存碎片,不过用起来最方便. 另外,在WINDOWS下,最好的方式是用VirtualAlloc分配内存,他不是在堆,也不是在栈是直接在进程的地址空间中保留一快内存,虽然用...

    《Java-web程序设计》教案.doc

    Java的运行速度是用class常驻内存来完成的,所以它在一些情况下所使用的内存比 起用户数量来说确实是"最低性能价格比"了。从另一方面,它还需要硬盘空间来储存一 系列的.java文件和.class文件以及对应的版本文件。 ...

    JavaServer Faces 2.0, The Complete Reference

    其一就是性能的大幅度提升,由于Facelets采用W3C的xhtml规范,是一个严格的xml规范,组件树渲染不再需要如jsp一样编译成class文件后再运行,可以直接渲染,而大大提升了渲染速度,整体性能比jsp应该会提升不少。...

    联合永道java面试题.pdf

    在使用HTTPClient访问远程地址并提交数据时,超时的原因主要有两个:一是建立网络连接慢,二是虽然成功建立连接但是对方页面处理过慢,返回数据超时。因此,超时设置需要针对这两个过程分别设置。 2. Servlet的生命...

    超详细的Java面试题总结(二)之Java基础知识篇.docx

    * 程序的运行速度可能加快 * 在一些等待的任务实现上如用户输入、文件读写和网络收发数据等,线程就比较有用了在这种情况下可以释放一些珍贵的资源如内存占用等等。 四、线程有哪些基本状态?这些状态是如何定义的...

    Javamybatis面试题.docx

    第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四, 在使用分组和排序子句进行数据检索时,同样可以显著...

    Java面试题大合集.doc

    第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四, 在使用分组和排序子句进行数据检索时,同样可以显著...

    坦克大战系统《Java程序开发实训》综合实训报告实用.pdf

    本报告总结了坦克大战系统的设计和实现,包括系统的主要功能、运行结果截图、选择 Java 语言的原因、系统软件环境、人机对战模式功能、游戏规则、游戏设计流程和类关联图等方面的内容。 一、系统实现的主要功能 ...

    简单学生信息管理系统java课程设计.doc

    同时,本程序对系统要求配置较低,运行速度快,而却对数据库管理要求较低该数 据库可实现关系较为简单的数据管理。 2 设计任务 2.1任务说明 设计一个简单学生个人信息管理系统,该系统具有录入,查询,修改三项基本...

    java经典面试2010集锦100题(不看你后悔)

    C) 程序能通过编译,运行时将打印出0/0,因为在Java中int型变量day和month默认为0。 D) 以上说法都不正确。 题目10:c 下面关于继承的描述正确的一项是:(选择1项) A) 子类继承父类,那么子类将继承父类的所有...

    java多线程安全性基础介绍.pptx

    java多线程安全性基础介绍 线程安全 正确性 什么是线程安全性 原子性 竞态条件 i++ 读i ++ 值写回i 可见性 JMM 由于cpu和内存加载速度的差距,在两者之间增加了多级缓存导致,内存并不能直接对cpu可见。 ...

    Java69道Spring面试题和答案.docx

    第二, 可以大大加快数据的检索速度,这也是创建索引的最主要的原因。 第三, 可以加速表和表之间的连接,特别是在实现数据的参考完整性方面特别有意义。 第四, 在使用分组和排序子句进行数据检索时,同样可以显著...

Global site tag (gtag.js) - Google Analytics