java和c++的不同

来源:互联网 发布:windows 最小化消息 编辑:程序博客网 时间:2024/05/18 10:13

1.Java程序中每个变量要么是基本数据类型,要么是对对象的引用。c++有许多基本类型,额外还有struct union,enum,数组和指针

2.c+=在很大程度上已经支持模板这种泛型编程思想,java目前仍未支持

3.c++支持运算符重载,java不支持这种多态机制。不过两种语言都支持方法重载

4.c++中为了允许运行时动态决定哪个函数被调用,一个函数必须用virtual修饰。凡是没有用virtual修饰的成员函数(包括static)都是静态绑定的。而在java中,除了static final private是静态绑定以外,所有方法一律按动态绑定处理

5.拷贝构造函数,c++里的深拷贝主要针对指针成员或引用成员,涉及内存操作。java中一般继承cloneable接口或序列化方法实现

6.c++支持inline函数,可以避免函数的堆栈调用,提高运行效率。java无这种语义。

7.c++中构造函数支持初始化列表,java不采用初始化列表这种构造机制

8.java使用abstract关键字修饰抽象方法或抽象类。c++的对等语法是“纯虚函数“和“抽象类“。两者都使用抽象类作为继承层次中的基类,提供一般概念,由子类实现且抽象类都不能被直接实例化为对象

9.java中有final关键字,修饰类、方法或变量,final类不能被继承,final方法不能被子类覆盖,final变量就是常量。c++没有final关键字,常量可以用const定义

(插播:java的代码行必须放到方法中或静态代码块中)

10.c++中静态成员变量表示为:A::x,必须在类外初始化。java中静态成员变量表示为:A.x,必须在类内初始化。c++中访问类方法用A::f(),java中访问类方法用A.f()

11 java中没有友元函数和友元类的概念,严格支持封装,c+=支持friend关键字

12 java中类或接口可以用public修饰,也可以不修饰class A extends (public)B  c++中,c++有继承权限修饰符 class A:protected B, public C

13.java中有super关键字指代父类对象,被用于调用父类方法,c++没有关键字

14.java有包的概念,可以将类组织起来便于打包也有利于类的安全,c+=没有包的概念

15.c++无内置网络功能

16.c++程序员需要显示地实现动态内存管理,在析构函数中用delete运算符或free()函数释放对象和其它动态内存分配的数据空间 java不支持析构函数,垃圾收集是自动的

17.java平台无关,c++平台相关

18.java语言支持多线程,允许并发线程的同步与互斥,c++没有这种内在机制

最后,jaba主要应用于上层,c和c++主要哦应用于网络底层


0 0
原创粉丝点击