C++和Javaq的区别.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
C和Javaq的区别

C++和Javaq的区别 设计目标 C++和Java语言之前的不同可以追溯到它们的历史,它们有着不同的设计目标. C++ 被设计成主要用在系统编程上,对进行了扩展. 对于这个为执行效率设计的()语言, C++ 特别加上了这些特性的支持:静态类型的面向对象编程的支持, 异常处理,RAII(资源获取即是初始化,en:Resource Acquisition Is Initialization), , 以及泛型. 另外它还加上了一个包含泛型容器和算法的C++标准库. ? Java 最开始是被设计用来支持. 它依赖一个在来保证和.Java 包含一个可扩展的库用以提供一个完整的的下层平台的抽象. Java 是一个静态类型的面向对象语言,它使用的语法类似C,但不兼容.它是完全从头开始设计的,想要提供一个更易用的语言给更广泛的使用者. ? 不同的开发目标导致 C++ 和 Java 这两种语言的不同的规则以及设计上的平衡点不同. 如下列出不同点: C++ 和C语言兼容,除了一些比较少见的情况 一次编写到处编译 允许过程编程和面向对象编程 允许直接调用原生的系统库 能直接使用底层系统接口 只提供对象的类型和类型名 有多种二进制兼容标准 (例如:微软和Itanium/GNU) Java 没有对任何之前的语言向前兼容.但在语法上受 C/C++ 的影响很大 一次编写到处运行 鼓励面向对象的编程方式 要通过JNI(en:Java Native Interface)调用, 或者 JNA(en:Java Native Access) 在一个保护模式下的虚拟机中运行 是反射的, 允许元编程和运行时的动态生成代码 一种二进制兼容标准,允许运行时库的正确性检查 可选的自动边界检查. (例如: vector 和 string 这两个容器的 一般都有做边界检查. HotSpot (java)(Sun 的虚拟机实现) 可以 at() 方法) 支持原生的无符号数学运算 对所有的数字类型有标准的范围限制,但字节长度是跟实现相关的. 标准化的类型可以用 typdef 定义 (uint8_t, ..., uintptr_t). 支持指针,引用,值传递 去掉边界检查. 不支持原生的无符号数学运算 在所有平台上对所有的基本类型都有标准的范围限制和字节长度. 基本类型总是使用值传递. 对象以可以为空的引用的方式传递 (相当于在C++里使用指向 class 或者 struct 参数的指针).[1] 显式的内存管理,但有第三方的框架可以提供垃圾搜集的支持. 支自动垃圾搜集(可以手动触发).没有析构函数的概念,对 持析构函数. finalize() 的使用是不推荐的. 支持类,结构,联合,可以在堆或者栈里为它们动态分配内存. 允许显式的覆盖(也叫重写)类型 只支持类,只在堆中为对象分配内存.Java SE 6在栈为一些对象分 配内存的使用了逃逸分析(en:escape analysis)的优化方法. 严格的类型安全(en:type safety),除了变宽的类型转换. Java 1.5 开始支持自动类型包装和解包装(Autoboxing/Unboxing). 标准库在每次 Java 发布新版本的时候都会更新并增强功能. 1.6版本支持:本地化,logging,容器和迭代器,算法,GUI 编程(但没有 C++标准库包括:语言支持,诊断工具,常用工具,字符串,本地化,容 用到系统的GUI),图形,多线程,网络,平台安全,自省机制,动态类 器,算法,迭代器,数值,输入/输出,C标准库. Boost库提供了更多 加载,阻塞和非阻塞的I/O,对于XML,XSLT,MIDI也提供了相关接口 的功能,包括线程和网络I/O.使用者必须在一大堆(大部分互相不 或者支持类,数据库,命名服务(例如 LDAP),密码学,安全服务(例 兼容)第三方GUI或者其他功能库中进行选择. 如 Kerberos),打印服务,WEB 服务.SWT 提供了一个系统相关的GUI的抽象. 对大部分的操作符都可以进行操作符重载(en:Operator overloading) 完全的多重继承,包括虚拟继承 支持编译期模板 操作符的意义一般来说是不可变的,例外是 + 和 += 操作符被字符串重载了. 类只允许单继承,需要多继承的情况要使用接口. 泛型(en:Generics in Java)被用来达到和C++模板类似的效果,但 由于类

文档评论(0)

118zhuanqian + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档