很多没用过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. Action中获取servletAPI对象的方法

    1.ServletActionContext:可以从中获取当前Action对象需要的一切ServletAPI的相关对象: 常用的方法: 1.获取HttpServletRequest:ServletAc ...

  2. JSTL标准标签库 (使用foreach打印集合)

    <%@page import="java.util.*"%><%@ page language= "java" contentType=&qu ...

  3. 在simplescalar中添加基于PISA架构的指令

    用sim-safe工具进行模拟.最近看代码的一点点心得记录一下. sim-safe工具:不检查所有指令错误,检查内存对齐和所有内存操作的内存访问权限 程序从main.c的main()函数中进入 int ...

  4. WebLogic 中的基本概念

    完全引用自: WebLogic 中的基本概念 WebLogic 中的基本概念 上周参加了单位组织的WebLogic培训,为了便于自己记忆,培训后,整理梳理了一些WebLogic的资料,会陆续的发出来, ...

  5. 冷门JS技巧

    前端已经被玩儿坏了!像console.log()可以向控制台输出图片等炫酷的玩意已经不是什么新闻了,像用||操作符给变量赋默认值也是人尽皆知的旧闻了,今天看到Quora上一个帖子,瞬间又GET了好多前 ...

  6. css总结

    1. css中的role属性 html 里面的 role 本质上是增强语义性,当现有的HTML标签不能充分表达语义性的时候,就可以借助role来说明.通常这种情况出现在一些自定义的组件上,这样可增强组 ...

  7. 产生某个区间的随机整数 int #Java

    int max = Integer.MAX_VALUE; int min = 1; Random random = new Random(); int s = random.nextInt(max)% ...

  8. C#线程同步控制

    ManualResetEvent类,用于通知一个或多个正在等待的线程已发生事件,它有2种状态:有信号(true)的无信号(false). 有2种方法可以设置它的信号状态:构造函数构造的时候设置或者通过 ...

  9. Global.asax 文件是什么

    Global.asax 文件,有时候叫做 ASP.NET 应用程序文件,提供了一种在一个中心位置响应应用程序级或模块级事件的方法.你可以使用这个文件实现应用程序安全性以及其它一些任务.下面让我们详细看 ...

  10. cannot find module 'xml2js'

    运行nodejs网站报类似错误,缺少相应的报 在NodeJs安装目录,运行Node.js command prompt ,跳转到网站所在目录,运行npm install xml2js,安装缺少的模块, ...