两者均为面向对象语言,都使用了面向对象思想(封装,继承,多态)
不同点如下
- va为解释型语言,C++为编译型语言。java的运行过程:源代码经过java编译器编译成字节码,然后由JVM解释执行;C++运行过程:源代码经过编译和链接后生成可执行的二进制代码。所以,java执行速度比C++慢
- java可以跨平台(对每种数据类型都分配固定的长度),C++不能(在不同的平台上会分配不同的字节数)
- java为纯面向对象语言,所有代码必须在类里面实现,除了基本数据类型外别的类型都是类;C++兼具面向过程和面向对象的特点,有全局变量 和全局函数(java没有)
- java中没有指针的概念
- java不支持多重继承,但java引入了接口,可以同时实现多个接口。所以,可以通过实现多个接口来实现与C++多重继承的类似目的
- java有垃圾回收器,不需要关心对象所占的内存什么时候会被释放;C++需要开发人员管理内存的分配
- java不提供goto语句
- java不支持自动强制类型转换,需要开发人员进行显示强制类型转换