`
huobengluantiao8
  • 浏览: 1032693 次
文章分类
社区版块
存档分类
最新评论

对比C++和Java语言不同点

 
阅读更多

毕业之后一直做Java应用,很少接触C++的使用,所以对C++忘得很多了,但还是觉得C++在某些方面是不可替代的,最近又翻了一下C++的书,总结了一些C++和Java不同的地方罗列下面,个人理解,必有不是和遗漏之处,如发现请帮忙指出以改正

区别概述
Java
C++
面向对象特性
一切皆是对象,在Java中所有东西都在类中定义,没有全局变量和方法,没有联合枚举
面向对象和面向过程的并集,其程序可以含有非类属性和方法构造
继承体系的
单根继承模式,所有类都是Object的子类
类型间没有统一的祖先类
文件类型
所有类型文件均是.java类型文件,没有头文件。在Java中通过interface及implements完成接口及实现,并通过import引入需要的类
分为头文件,实现文件
C++中没有语法意义上的interface,而是用头文件收集对外提供的定义和声明,使用者再通过#include进行引入
操作符重载
java不支持操作符重载
C++支持操作符重载
运行环境
在java虚拟机上运行
直接在os上运行
继承
不支持多重继承
支持多重继承
程序入口方法
每个类都可以有main方法
只有一个全局main方法
多态
所有函数都是虚函数,不需要额外声明,在调用时自动进行动态绑定
需要用virtual声明类层次中的函数为虚函数
声明
没有方法和类声明,表示接口或实现不确定的可以用interface或抽象方法方式
必须先声明后使用,通常把声明放入头文件
资源导入
用"import 全包.类名"引入
用预编译"#inlude 头文件"引入
运算符
没有双字节运算符,因为所有对象都为引用方式,所以不区分对象绑定和指针间访操作
含有空间域操作符"::"和指针间访操作符"->"
基本类型
空间大小固定,char类型使用16位的Unicode表示,boolean和int不可自由转换
与平台相关
对象创建
对于所有不属于基本类型的对象,都只能通过new命令在堆中创建,但是不需要显式释放,GC可以自动完成垃圾收集
可以通过定义在堆栈中创建,在堆栈中创建的对象本体不需要显示释放;通过new创建的在堆中的对象,需要显式释放
命名空间
用包代替命名空间
分享到:
评论

相关推荐

    Java语法基础-面试专题及答案

    2.Java语言的8大特点 3.关于 JVM JDK 和 JRE 最详细通俗的解答 什么是字节码?采用字节码的好处是什么? Java 程序从源代码到运行的3大步骤 JDK 和 JRE 4. Oracle JDK 和 OpenJDK 的对比 5.Java 和 C++的区别 6.什么是...

    《软件系统架构与开发环境》第二章源代码-by 南邮-陈杨

    2.2 C++与Java的对比综述 60 2.3 C++与Java的开发工具与开发过程 67 2.3.1 C++的基本开发工具与开发过程 67 2.3.2 Visual C++的开发平台与开发过程 70 2.3.3 Java的基本开发工具与开发过程 72 2.3.4 Java的三...

    Hprose与.NET中各种序列化方式的对比

    它支持众多语言和平台,包括主流的.NET、Java、PHP、Python、Ruby、JavaScript、ActionScript、Delphi、FreePascal、Objective-C、ASP、Perl、C++等。通过Hprose可以在这些支持的语言之间实现方便且高效的互通,能够...

    windows环境下32位汇编语言程序设计

    面对汹涌而来的Visual C++,Visual Basic,PowerBuilder和Java等各个领域的猛将,从DOS时代“为所欲为”的“系统警察”岗位下岗,在其他领域又没有一技之长,汇编语言似乎失去了生存的意义,有很多人在DOS转向...

    tinyos编程英文教程

    一个很全很详细的tinyos编程外文教程,将nesc与其他语言如C,C++,JAVA做了对比,讲述起不同与特殊点,鞭辟入里,适合初学者使用。

    envi 教程(适用于初学者)

    这个强大而灵活的平台,可以让您创建批处理、自定义菜单、添加自己的算法和工具,甚至将C++和Java代码集成到您的工具中等。  自2007年起,与著名的GIS厂商ESRI公司开展全面战略合作,ENVI Reader for ArcGIS模块让...

    操作系统(内存管理)

    在大部分系统语言中,比如 C 和 C++,您必须进行内存管理。本文将介绍手工的、半手工的以及自动的内存管理实践的基本概念。 追溯到在 Apple II 上进行汇编语言编程的时代,那时内存管理还不是个大问题。您实际上在...

    易语言程序免安装版下载

     支持静态链接其它编程语言(如C/C++、汇编等)编译生成的静态库(.LIB或.OBJ),但仅限于COFF格式,支持cdecl和stdcall两种函数调用约定。  使用说明如下:函数声明和调用方法与DLL命令一致;“库文件名”以.lib...

Global site tag (gtag.js) - Google Analytics