C++与java之间的区别


java与C++的区别
C++ java
支持编程的类型
允许面向过程编程和面向对象的编程 支持面向对象的编程模型
执行速度 C++比java快。原因在编译过程,对象的创建,检查机制等问题上可以看到。
编译过程
C++源码一次编译,直接在编译的过程中链接了,形成了机器码。

Java源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。

java比C++多一层字节码的处理,这样可以保证在不同的机器上运行,所以比C++慢一点。

对象的创建 C++中,很多局部变量和对象的创建都是保存在栈内存中的,可以直接访问,所以效率较java而言高。 在java中一切皆对象(这里忽略基本类型的情况),而对象的创建时通过new实现的,就是说对象的本身都是保存在堆内存的,栈内存中只保存了一个对象的引用。这样在获得对象的时候实际上可以认为是间接寻址,速度就会比较慢。
检查机制 C++程序中,这些检查都是需要程序员自己去检查判断和处理的,速度是上来了,在安全性和稳定性上就不如java了。 java虚拟机本身在运行时对程序进行很多的检查,比如检查数组越界,检查是否空指针,检查对象是否需要回收等等,充分地保证了java程序的安全和稳定性,但是用来相对C++较多的时间来检查了。
多继承 C++提供多继承,关键字virtual用于在多继承期间解决出现的问题

java中类都是单继承的

但是继承都有传递性,同时Java中的接口是多继承,类对接口的实现也是多实现。

安全性与稳定性 程序员检查错误,相对低
系统检查,相对高
I/O机制

I/O机制使用cout,cin语句。

cout<<x<<endl;

cin>>x;

I/O机制复杂,因为一次只读取一个字节。

system.in

system.out.printlin();

与其他语言的兼容性 除了一些特殊情况以外,与C语言兼容 没有向后兼容任何以前的语言。语法受C/C++的影响
范围解析运算符 C++具有范围解析运算符(:),用于定义类外部的方法,并从具有相同名称的本地变量也存在的范围内访问全局变量
java没有范围解析运算符(:),方法定义必须在类中进行。
键入 原始类型与对象类型保持一致 原始和对象类型不同
结构体
支持结构体 不支持结构体
内存分配 C++中通过运算符new,delete来分配和释放内存,程序员必须自行地处理内存的使用问题 java中对内存的分配是动态的,它采用面向对象的机制,用new运算符为每个对象分配内存空间,而且在运行期间,系统会对不用的空间进行回收,程序员不用去关心内存管理问题
头文件 java不支持头文件
指针 java不支持程序员进行任何的指针操作


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值