很多没用过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也是种很不错的语言。
时间: 2024-10-20 11:53:29