欢迎光临112期刊网!
网站首页 > 论文范文 > 计算机论文 > 计算机应用 > 浅谈Java和C++的差异

浅谈Java和C++的差异

日期:2023-01-24 阅读量:0 所属栏目:计算机应用


摘 要:Java和C++都是目前被广泛使用面向对象的程序设计语言,它们都有着强大的功能和众多的使用者。本文分别从Java和C++的技术背景、语言特性和差异三方面展开讨论,为编程人员能够更好的实现自身需求提供参考。

关键词:Java;C++;面向对象
  C++和Java是当前主流的面向对象的程序设计语言。C++是编译型高级语言而Java是解释型的高级语言。因为Java是从C++衍生出来的,所以两种语言在基本语法和概念上都有很多相似之处,然而它们之间也存在一些不可忽视的差异。对这两种语言进行了解、分析和区别,不仅有助于编程人员对它们的特点和应用有所把握,而且可以根据它们各自的优劣在编程时有所选择,更好地实现自身的需求。
  一、技术背景
  1、Java的技术背景
  Java诞生于1995年,是由Sun Microsystems公司组织开发的一种可移植的、跨平台的编程语言,该语言能生成正确运行于各种操作系统、各种CPU芯片上的代码。Java的发展得利于Internet和Web的发展,Internet上有各种不同的计算机,它们可能使用完全不同的操作系统和CPU芯片,但仍希望运行相同的程序,而Java的出现则解决了这个问题,使得Web漫游在数百万的计算机用户间变得极为流行,使得web用户能够进行交互式的、只需考虑所使用的软硬件平台即可执行的、能够访问多种网络而不会把病毒传播给多种网络计算机。JAVA标志着真正分布式系统的到来。
  2、C++的技术背景
  C++是早在80年代由美国AT&T贝尔实验室的Bjarne Stroustrup在C语言基础上推出的程序设计语言。最初的动机是打算在效率上改进Simula 67语言并采用复杂事件驱动。1983年,C++首次推广到外界,但C++语言的标准化工作是从1989年开始的,提出了把数据和在数据之上的操作封装在一起的类、对象和方法的机制,还有派生、继承、重载和多态性等特征。
  二、语言特性
  1、Java的语言特性
  Java是一种优秀的编程语言,它具有以下特点:简单、面向对象、分布式、健壮、结构中立、安全、高性能、多线程等特性。
  2、C++的语言特性
  C++是从C语言发展起来的,其特点中就包含了对C的一些特性的改进:注解、枚举名、结构名或者类名、分程序声明、匿名联合、显式类型转换、函数重载、缺省的函数参数值、inline说明符,除此之外, 在面向对象方面有了很大的增强:类构造和数据封装性、Struct类、构造方法和析构方法、消息、友元、运算符重载、派生类、使用虚函数的多态性等特性。
  三、Java与C++的差异
  1、跨平台性:Java是纯面向对象的语言,其最大的特色""write once,run anywhere""。C++可以使用纯过程化的编程,也可以是基于对象的编程,还可以是面向对象的编程,当然大部分是混合编程;所以C++也可以跨平台,但是没有Java的特点更显著。
  2、数据类型:Java的所有函数和变量都必须是类的一部分。除了基本数据类型(boolean、byte、short、int、long、float、double、char)之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。C++除了有这样的基本数据类型之外,还有结构、联合、枚举。
  3、字符串:C++不支持字符串变量,在C++程序中使用NULL终止符代表字符串的结束而在Java中字符串是用类对象(String和StringBuffer)来实现的,这些类对象是Java语言的核心
  4、类型转换:在C++中有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。而Java不支持C++中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。
  5、sizeof操作符:在C++中,当我们想知道一个对象或者一个原始数据类型所占用的内存大小时,只需简单调用sizeof操作符即可。但在Java中是没有相应的操作符或者方法来直接完成相应的功能。
  6、内存管理:Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于C++的new操作符。下面的语句由一个建立了一个类Write的对象,然后调用该对象的write方法:Write w=new Write();();语句Write w=new Write();在堆栈结构上建立了一个Write的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。
  7、预处理:Java不支持预处理功能。C++在编译过程中都有一个预编译阶段——预处理器。预处理器为开发人员提供了方便同时也增加了编译的复杂性。Java虚拟机没有预处理器,但它提供的引入语句(import)与C++预处理器的功能类似。
  8、跳转语句:goto语句是C和C++的“遗物”,它是该语言技术上的合法部分,引用goto语句引起了程序结构的混乱,语句主要用于无条件转移子程序和多结构分支技术。虽然Java指定goto作为关键字,但不提供它的使用,使程序简洁易读。
  四、总结
  虽然Java与C++有以上的区别,但本质上几乎是相同的。Java语言的对象模型几乎就是C++对象模型的简化版,C++完全兼容C语言又提供所有的面向对象特性所以使它的结构变得特别复杂。Java是在C++的基础上开发出来的,比C++简化很多,也容易使用很多,但是在有些方面特别是泛型方面明显没有C++使用起来灵活。对于任何问题C++可以实现几乎所有的解决方法,程序员可以根据自己的需要来选择一种实现方法;而Java只提供一到两种实现方法。  
参考文献:
[1]Bruce Eckel Thinking in Java(Third Edition)China Machine Press 2006.5
[2]何友鸣、方辉云C++语言程序设计科学出版社2001.6
[3]刘腾红、屈振新、任伟、刘勘Windows程序设计技术清华大学出版社2004.10 本文链接:http://www.qk112.com/lwfw/jsjlw/jisuanjiyingyong/242248.html

论文中心更多

发表指导
期刊知识
职称指导
论文百科
写作指导
论文指导
论文格式 论文题目 论文开题 参考文献 论文致谢 论文前言
教育论文
美术教育 小学教育 学前教育 高等教育 职业教育 体育教育 英语教育 数学教育 初等教育 音乐教育 幼儿园教育 中教教育 教育理论 教育管理 中等教育 教育教学 成人教育 艺术教育 影视教育 特殊教育 心理学教育 师范教育 语文教育 研究生论文 化学教育 图书馆论文 文教资料 其他教育
医学论文
医学护理 医学检验 药学论文 畜牧兽医 中医学 临床医学 外科学 内科学 生物制药 基础医学 预防卫生 肿瘤论文 儿科学论文 妇产科 遗传学 其他医学
经济论文
国际贸易 市场营销 财政金融 农业经济 工业经济 财务审计 产业经济 交通运输 房地产经济 微观经济学 政治经济学 宏观经济学 西方经济学 其他经济 发展战略论文 国际经济 行业经济 证券投资论文 保险经济论文
法学论文
民法 国际法 刑法 行政法 经济法 宪法 司法制度 法学理论 其他法学
计算机论文
计算机网络 软件技术 计算机应用 信息安全 信息管理 智能科技 应用电子技术 通讯论文
会计论文
预算会计 财务会计 成本会计 会计电算化 管理会计 国际会计 会计理论 会计控制 审计会计
文学论文
中国哲学 艺术理论 心理学 伦理学 新闻 美学 逻辑学 音乐舞蹈 喜剧表演 广告学 电视电影 哲学理论 世界哲学 文史论文 美术论文
管理论文
行政管理论文 工商管理论文 市场营销论文 企业管理论文 成本管理论文 人力资源论文 项目管理论文 旅游管理论文 电子商务管理论文 公共管理论文 质量管理论文 物流管理论文 经济管理论文 财务管理论文 管理学论文 秘书文秘 档案管理
社科论文
三农问题 环境保护 伦理道德 城镇建设 人口生育 资本主义 科技论文 社会论文 工程论文 环境科学