很多没用过java或者没怎么用过java的程序员都会说java执行效率低,这种言论时不时的在影响着我这个初级的java开发者。

java执行效率低因如下几点导致(和C++比较):

1,java不允许内存地址类型被修改,也不能像C++那样直接给内存地址加偏移量直接操作内存。C++处理内存地址办法确实直接了当,执行效率很高,但是也容易出现bug,java使用对象时,严格遵循类型转换规则。

2,C++在new对象之后有delete操作符来及时释放内存。java有垃圾回收机制,一段时间后会自动回收不再被需要的对象。这个时差也是效率的体现。

3,一个指定为有10个成员的数组,写入第十一个成员时C++不会限制这种灵活操作上的错误。程序员没限制,直接操作内存。

综上所述:java的效率低,因为限制多,带来的好处是错误相对较少。没有规矩,不成方圆,我认为循规蹈矩地开发才是java的思想吧,java把开发者自由开发的部分权限收回了,同时也限制了程序员驰骋内存、底层的梦。

4,最重要的一点,java程序的执行依赖于jvm(java虚拟机)为桥梁来链接java程序和操作系统,尴尬的是jvm本身就是用C来实现的。java程序的执行首先编译java程序为java class文件,然后经过jvm才能被操作系统执行,而c++编译后直接就能被操作系统执行,执行效率能不低吗!同时这个特点也是java的一个优点:跨平台行性,java class文件可以在任何支持jvm的平台上执行,windows,linux,但是c++代码经过windows编译后就无法在linux系统上面正确执行。

所以java的执行效率和c++是没有可比性,但是,任何事物都有双面性,执行效率低,不一定就是效率低。总体看来,java也是种很不错的语言。

java执行效率低,但效率就低吗?的更多相关文章

  1. Java执行main方法,异常为:could not find the main class.program will exit

    未解决. Java执行方法,异常为:could not find the main class.program will exitmain 原文地址:http://rogerfederer.iteye ...

  2. 高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

    生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4   需求:迁移部分表  11.2.0.3-->10.2.0.4,若 ...

  3. java 执行 jar 包中的 main 方法

    java 执行 jar 包中的 main 方法 通过 OneJar 或 Maven 打包后 jar 文件,用命令: java -jar ****.jar执行后总是运行指定的主方法,如果 jar 中有多 ...

  4. Java执行批处理.bat文件(有问题???求高手帮忙解答!!!)

                           Java执行批处理.bat文件(有问题???求高手帮忙解答!!!) 在项目开发中常常都会遇到需要在代码中调用批处理bat脚本,把自己在项目中遇到过的总结下 ...

  5. JAVA执行远端服务器的脚本

    JAVA执行远端服务器的脚本 问题描述 实现思路 技术要点 代码实现 问题描述 工作中遇到这样一个问题,我们的应用为了实现高可用会采取双机部署,拓扑图大致如下: 这种方案可以简单的保证高可用,即便应用 ...

  6. Java执行JavaScript脚本破解encodeInp()加密

    一:背景 在模拟登录某网站时遇到了用户名和密码被JS进行加密提交的问题,如图: 二:解决方法 1.我们首先需要获得该JS加密函数,一般如下: conwork.js var keyStr = " ...

  7. Java执行JavaScript代码

    Java执行JavaScript代码 这篇文章主要为大家详细介绍了Java执行JavaScript代码的具体操作方法,感兴趣的小伙伴们可以参考一下 我们要在Java中执行JavaScriptMetho ...

  8. Java执行shell遇到的各种问题

    1.判断子进程是否执行结束 有的时候我们用java调用shell之后,之后的操作要在Process子进程正常执行结束的情况下才可以继续,所以我们需要判断Process进程什么时候终止. Process ...

  9. java执行jar包出错:Unable to access jarfile

    java执行jar包出错:Unable to access jarfile 错误的原因有多种: 1.一般都是路径不正确.在Windows中,正确的路径类似于: java -jar "D:\W ...

随机推荐

  1. 向JSP页面输入信息

    /** * ajax responseTEXT write; * @param request * @param response * @param str */ public static void ...

  2. 深入理解js——自由变量和作用域链

    自由变量:在A作用域中使用变量X,却没有在A作用域中声明(在其他作用域中声明),对于A作用域来说X就是一个自由变量. var x=10; function fn(){ var b=20; consol ...

  3. Slyx_SerAddGet

    ##通道##119.29.192.206:12002## ##通道##58.221.49.24:12002##

  4. linux在home目录下使用ls命令卡死

    linux在home目录下使用ls命令卡死,原因可能是mount的某个服务器挂掉或出啥问题了,这个时候umount掉就正常了,如果umount提示device is busy,这时可以使用强制卸载   ...

  5. oracle 学习笔记2

    1.oracle 中rowid和rownum的区别 oracle 数据库中,每一行都有一个唯一行的标识符,ROWID,数据库内部用来存储行的物理位置.ROWID是一个18位数字,采用base-64编码 ...

  6. 启动项目时,报错;Address already in use: JVM_Bind<null>:8080

    Address already in use: JVM_Bind<null>:8080在MyEclipse启动或者是tomcat启动的时候出现:Address already in use ...

  7. Unity协程截图,WWWForm、WWW配合上传

    先说一下原理.. 截图有两种方法,第一种: Application.CaptureScreenshot(url); 这个API可以截全屏并保存到指定路径 这里我们不采用此方法 下面的代码采用第二种方法 ...

  8. C#读取Excel的三种方式以及比较

    (1)OleDB方式 优点:将Excel直接当做数据源处理,通过SQL直接读取内容,读取速度较快. 缺点:读取数据方式不够灵活,无法直接读取某一个单元格,只有将整个Sheet页读取出来后(结果为Dat ...

  9. 伸缩盒 Flexible Box(旧)

    box-orient  box-pack    box-align  box-flex   box-flex-group  box-ordinal-group   box-direction  box ...

  10. 【转】三十分钟掌握STL

    转自http://net.pku.edu.cn/~yhf/UsingSTL.htm 三十分钟掌握STL 这是本小人书.原名是<using stl>,不知道是谁写的.不过我倒觉得很有趣,所以 ...