Java与C/C++的区别

Java与C/C++的区别

Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终推出了 Java语言。下面给大家介绍Java与C/C++的区别,欢迎阅读!

Java与C/C++的区别

1指针

Java 没有指针的概念,从而有效地防止了在 C/C++语言中,容易出现的指针操作失误(如指针悬空所造成的系统崩溃)。在 C/C++中,指针操作内存时,经常会出现错误。在Java 中没有指针,更有利于 Java 程序的安全。

2多重继承

C++支持多重继承,它允许多父类派生一个子类。也就是说,一个类允许继承多个父类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。所以 Java 不支持多重继承,但允许一个类实现多个接口。可见,Java 既实现了 C++多重继承的功能,又避免了 C++的许多缺陷。

3数据类型

Java 是完全面向对象的语言,所有方法和数据都必须是类的一部分。除了基本数据类型之外,其余类型的数据都作为对象型数据。例如对象型数据包括字符串和数组。类将数据和方法结合起来,把它们封装在其中,这样每个对象都可实现具有自己特点的行为。而 C++将函数和变量定义为全局的,然后再来调用这些函数和变量,从而增加了程序的负担。此外,Java 还取消了 C/C++中的结构和联合,使编译程序更简洁。

4自动内存管理

Java 程序中所有的对象都是用 new 操作符建立在堆栈上的,这个操作符类似于 C++的“new”操作符。Java 自动进行无用内存回收操作,不需要程序员进行删除。当 Java 中一个对象不再被用到时,无须使用内存回收器,只需要给它加上标签以示删除。无用内存的回收器在后台运行,利用空闲时间工作。而 C++中必须由程序释放内存资源,增加了程序设计者的负担。

5操作符重载

Java 不支持操作符重载,操作符重载被认为是 C++的突出特征。在 Java 中虽然类可以实现这样的功能,但不支持操作符重载,这样是为了保持 Java 语言尽可能简单。

6预处理功能

C/C++在编译过程中都有一个预编译阶段,即预处理器。预处理器为开发人员提供了方便,但增加了编译的复杂性。Java 允许预处理,但不支持预处理器功能,因为 Java 没有预处理器,所以为了实现预处理,它提供了引入语句(import),它与 C++预处理器的功能类似。

Java 不支持缺省函数参数,而 C++支持。

在 C 语言中,代码组织在函数中,函数可以访问程序的全局变量。C++增加了类,提供了类算法,该算法是与类相连的函数,C++类方法与 Java 类方法十分相似。由于 C++仍然支持 C,所以 C++程序中仍然可以使用 C 的函数,结果导致函数和方法混合使用,使得 C++程序比较混乱。

Java 没有函数,作为一个比 C++更纯的面向对象的语言。Java 强迫开发人员把所有例行程序包括在类中。事实上,用方法实现例行程序可激励开发人员更好地组织编码。

1字符串

C/C++不支持字符串变量,在 C/C++程序中使用“Null”终止符代表字符串的结束,在 Java 中字符串是用类对象(String 和 StringBuffer)来实现的,在整个系统中建立字符串和访问字符串元素的方法是一致的。Java 字符串类是作为 Java 语言的一部分定义的,而不是作为外加的延伸部分。此外,Java 还可以对字符串用“+”进行连接操作。

2goto 语句

“可怕”的 goto 语句是 C/C++的“遗物”。它是该语言技术上的合法部分,引用 goto语句造成了程序结构的混乱,不易理解。goto 语句一般用于无条件转移子程序和多结构分支技术。Java 不提供 goto 语句,其虽然指定 goto 作为关键字,但不支持它的使用,这使程序更简洁易读。

3类型转换

在 C/C++中,有时出现数据类型的隐含转换,这就涉及了自动强制类型转换问题。例如,在 C++中可将一个浮点值赋予整型变量,并去掉其尾数。Java 不支持 C++中的自动强制类型转换,如果需要,必须由程序显式进行强制类型转换。

拓展内容:

Java的历史

美国硅谷有一句行话,每10年~15年有一次轮回。最近的一次轮回就是从Java开始。Java已经成为当今社会的一种热门语言,有着广泛的 应用和巨大的前景。本为阐述了Java语言的特点,分析了当前社会软件行业的现状,最后对Java的应用和前景做了分析和讨论。

<span style="color:#ff2000">  关键词:软件,Java

前景

Java是一个由Sun公司开发而成的新一代编程语言。使用它可在各式各样不同种机器、不同种操作平台的网络环境中开发软件。不论你使用的是哪一种WWW浏览器,哪一种计算机,哪一种操作系统,只要WWW浏览器上面注明了“支 持Java”,你就可以看到生动的主页。Java正在逐步成为Internet应用的主要开发语言。它彻底改变了应用软件的开发模式, 带来了PC机以来又一次技术***,为迅速发展的信息世界增添了新的活力。

用Java实现的HotJava浏览器显示了Java的魅力:跨平台、动态的Web、Internet计算。从此,Java被广泛接受并推动了Web的迅速发展,常用的浏览器现在均支持Java applet。

工业界不少人预言:"Java语言的出现,将会引起一场软件***",这是因为传统的软件往往都是与具体的实现环境有关,换了一个环境就需要作一番改动,耗时费力,而Java语言能在执行码(二进制码)上兼容,这样以前所开发的软件就能运行在不同的机器上,只要所用的机 器能提供Java语言解释器即可。

历史

Java自1995诞生,至今已经16年历史。Java的名字的来源:Java是印度尼西亚爪哇岛的英文名称,因盛产咖啡而闻名。Java语言中的许多库类名称,多与咖啡有关,如JavaBeans(咖啡豆)、NetBeans(网络豆)以及ObjectBeans (对象豆)等等。SUN和JAVA的标识也正是一杯正冒着热气的咖啡。

据James Gosling回忆,最初这个为TV机顶盒所设计的语言在Sun内部一直称为Green项目。我们的新语言需要一个名字。Gosling注意到自己办公室外一棵茂密的橡树Oak,这是一种在硅谷很常见的树。所以他将这个新语言命名为Oak。但Oak是另外一个注册公司的名字。这个名字不可能再用了。

在命名征集会上,大家提出了很多名字。最后按大家的评选次序,将十几个名字排列成表,上报给商标律师。排在第一位的是Silk(丝绸)。尽管大家都喜欢这个名字,但遭到James Gosling的坚决反对。排在第二和第三的都没有通过律师这一关。只有排在第四位的`名字、得到了所有人的认可和律师的通过,这个名字就是Java。

10多年来,Java就像爪哇咖啡一样誉满全球,成为实至名归的企业级应用平台的霸主。而Java语言也如同咖啡一般醇香动人。

Java优势

Java舍弃了C语言中容易引起错误的指针(以引用取代)、运算符重载(operatoroverloading)、多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在Java1.5版本中,Java又引入了泛型编程(GenericProgramming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。

优势一:可移植性、跨平台

Java采用多种机制来保障可以执行,其中最重要的就是Java即是编译型又是解释型的,开发的源码和经过编译后形成的二进制代码同样是可一直的。而且Java采用的是国际标准的数据类型,在任何机器上都是一致的。

优势二:稳定性、安全性

Java有三重机制保障稳定性。首先,Java不支持指针数据类型;其次,它提供了内训关了机制。Java的运行环境提供了四级安全性保障机制:字节码校验器,类装载器,运行时内存布局,文件访问限制。上述机制使得Java成了最安全的编程语言之一,防止病毒程序的产生和***程序对本系统形成威胁。

优势三:分布式

分布式包括数据分布和操作分布。Java支持客户机/服务器计算模式,具有数据分布和操作分布的特性。

优势四:多线程

Java的多线程处理提供了并行执行多个任务的能力,并且为客户端提供了高度的交互性。Java语言在有复杂同步机制的语言层、在有线程类语言库层和锁走机制的运行时间层,都能很好地支持多线程处理。

优势五:动态性

Java的“滞后联编”机制使得它完全利用了面向对象编程模式的优点,其设计能适应变化的环境,用户可以动态地从网络中任何一个地方安装代码模块,动态的适应不断变化的环境,而且支持动态数据和动态协议。

在Java中,要写出低劣的代码也不是一件容易的事情。一方面,垃圾回收机制堵住了内存泄漏的可能性,另一方面就是异常捕捉机制,它强迫你做最坏的打算。编写程序时,难免会遇到一些意外,比如文件无法打开、网络读取失败等特殊情况。在C++等语言中是依靠返回值来判断的,如果一句句地检查返回值,那实在是太麻烦了。从而,程序员习惯性地忽略返回值的检查,并安慰自己一切都会好起来的。这便埋下了隐患。在Java中,Java的方法可以抛异常,而你必须应答异常,即使你不想进行任何操作。比如编写打开文件的代码,你不得不响应异常以防意外发生。未雨绸缪,使得Java系统更稳健。

C语言和C++之间的关系

C++ 读作”C加加“,是”C Plus Plus“的简称。

顾名思义,C++是在C的基础上增加新特性,玩出了新花样,所以叫”C Plus Plus“,就像 iPhone 7 和 iPhone 6、Win10 和 Win7 的关系。

C语言是1972年由美国贝尔实验室研制成功的,在当时算是高级语言,它的很多新特性都让汇编程序员羡慕不已,就像今天的Go语言,刚出生就受到追捧。C语言也是”时髦“的语言,后来的很多软件都用C语言开发,包括 Windows、Linux 等。

但是随着计算机性能的飞速提高,硬件配置与几十年前已有天壤之别,软件规模也不断增大,很多软件的体积都超过 1G,例如 PhotoShop、Visual Studio 等,用C语言开发这些软件就显得非常吃力了,这时候C++就应运而生了。

C++ 主要在C语言的基础上增加了面向对象和泛型的机制,提高了开发效率,以适用于大中型软件的编写。

C++和C的血缘关系

早期并没有”C++“这个名字,而是叫做”带类的C“。

”带类的C“是作为C语言的一个扩展和补充出现的,目的是提高开发效率,如果你有Java Web开发经验,那么你可以将它们的关系与 Java 和 JSP 的关系类比。

这个时期的C++非常粗糙,仅支持简单的面向对象编程,也没有自己的编译器,而是通过一个预处理程序(名字叫 cfront),先将C++代码”翻译“为C语言代码,再通过C语言编译器合成最终的程序。

随着C++的流行,它的语法也越来越强大,已经能够很完善的支持面向对象编程和泛型编程。

但是一直也没有诞生出新的C++编译器,而是对原来C编译器不断扩展,让它支持C++的新特性,所以我们通常称为C/C++编译器,因为它同时支持C和C++,例如 Windows 下的微软编译器(cl.exe),Linux 下的 GCC 编译器。

也就是说,你写的C、C++代码都会通过一个编译器来编译,很难说C++是一门***的语言,还是对C的扩展。

C++是在C语言的基础上进行的扩展,C++包含了C语言的全部内容。

Java与C/C++的区别

转载请注明出处我优求知网 » Java与C/C++的区别

学习

关于c罗的作文800字

阅读(55)

本文为您介绍关于c罗的作文800字,内容包括关于c罗的800字作文,写c罗的作文400字。在学习、工作、生活中,大家都接触过作文吧,作文是通过文字来表达一个主题意义的记叙方法。写起作文来就毫无头绪?下面是帮大家整理的关于c罗的作文800字,希望

学习

听力学就业前景

阅读(55)

本文为您介绍听力学就业前景,内容包括听力学专业前景,听力学就业。听力科学是研究听觉生理和病理的科学。20世纪逐渐形成,1930年发现耳蜗生物电现象后发展较快。下面让为你介绍一下听力学就业前景吧!

学习

隐藏的父爱作文(精选)

阅读(50)

本文为您介绍隐藏的父爱作文(精选),内容包括隐藏的父爱作文500字,关于父爱的中学生作文摘抄。在日复一日的学习、工作或生活中,大家对作文都再熟悉不过了吧,借助作文人们可以实现文化交流的目的。还是对作文一筹莫展吗?下面是收集整理的隐藏

学习

祝高考学子的祝词

阅读(62)

本文为您介绍祝高考学子的祝词,内容包括高考学子金榜题名祝词,祝福高考学子的祝福词简单。在日常学习、工作或生活中,大家或多或少都会用到过祝福语吧,祝福语是指对人们的美好祝福的语句。写起祝福语来就毫无头绪?以下是整理的祝高考学子的

学习

给高考学子加油文案

阅读(52)

本文为您介绍给高考学子加油文案,内容包括给高考同学加油文案,给高考生加油鼓励的文案。在日常生活或是工作学习中,越来越多人喜欢在朋友圈上发布文案,文案用于记录和分享生活中有意义的事。那什么样的文案才是经典的呢?以下是整理的给高考

学习

解读杜甫

阅读(51)

本文为您介绍解读杜甫,内容包括解读杜甫的一生,解读杜甫传。杜甫是伟大的唐代诗人,诗歌的发展在唐朝时期达到鼎盛与唐王朝开创的盛世场面脱不了关系,然而一个时期的文化发展与当时的社会情况密不可分,杜甫刚好生在盛唐由兴至衰的转点,因此从

学习

杜甫的《佳人》古诗原文

阅读(62)

本文为您介绍杜甫的《佳人》古诗原文,内容包括佳人杜甫原文,杜甫的佳人诗的意思。《佳人》是唐代大诗人杜甫的作品。此诗讴歌的就是这种贫贱不移,贞节自守的精神。全诗文笔委婉,缠绵悱恻,绘声如泣如诉,绘影楚楚动人。“在山泉水清,出山泉水浊

学习

小米手机网速慢是怎么回事

阅读(82)

本文为您介绍小米手机网速慢是怎么回事,内容包括小米手机网速慢是怎么回事啊,小米手机网速慢卡顿怎么处理。使用手机的时候,我们有可能会感到手机网速很慢。那么小米手机网速慢是怎么回事呢?下面就让jy135来告诉大家吧,欢迎阅读。

学习

税务局中层竞聘演讲稿

阅读(70)

本文为您介绍税务局中层竞聘演讲稿,内容包括税务局竞聘副科演讲稿,地方税务局竞聘演讲稿。演讲稿可以帮助发言者更好的表达。在现在社会,很多地方都会使用到演讲稿,相信写演讲稿是一个让许多人都头痛的问题,下面是为大家整理的税务局中层竞

学习

life in the future英语作文附中文(精选)

阅读(61)

本文为您介绍life in the future英语作文附中文(精选),内容包括lifeinthefuture的英文作文,lifeinthefuture英语作文40字。在生活、工作和学习中,许多人都写过作文吧,作文是从内部言语向外部言语的过渡,即从经过压缩的简要的、自己能明白的语

学习

数字成语

阅读(95)

本文为您介绍数字成语,内容包括数字成语一到十大全,数字成语一到十接龙百千万。在日常生活或是工作学习中,用到成语的地方还是很多的,成语是中国汉字语言词汇中一部分定型的词组或短句。那么,都有哪些经典成语呢?以下是为大家整理的数字成语

学习

广东(理科)二本大学排名

阅读(74)

本文为您介绍广东(理科)二本大学排名,内容包括广东理科二本大学排名及分数线,广东二本院校排名一览表。广东省共有42所二本批次招生的大学参与了2017广东二本大学排名理科,其中排名第一的是广东财经大学,排名第二的是广州美术学院,排名第三

学习

数字记者

阅读(73)

本文为您介绍数字记者,内容包括数字记者是真的么,数字记者有什么好处。它是一种依托于新型ENG设备、便携式编辑设备,可以在新闻现场第一时间完成源素材采集、就近编辑、在当地回传的新型工作模式。下面为您带来数字记者,希望能帮到你呢。

学习

选购红糖的方法

阅读(50)

本文为您介绍选购红糖的方法,内容包括红糖选购的正确方法,在网上怎么选购红糖。红糖作为常用的滋补性中药,具有益气补血、健脾暖胃、缓中止痛、活血化淤的作用。以下是为大家整理的选购红糖的方法,供大家参考。

学习

函授和自考有什么区别

阅读(32)

本文为您介绍函授和自考有什么区别,内容包括函授和自考有什么区别吗,成人大专自考和函授的区别。函授和自考都是成人提升学历的途径,属于国民教育系列,都是国家承认的学历,学信网可查询。接下来整理了函授和自考的区别相关内容,文章希望大家

学习

java读文件写文件的方法

阅读(64)

本文为您介绍java读文件写文件的方法,内容包括java读文件写文件,java写入文件和读取文件。有的时候经常为真么读写文件最合理发愁,因为JAVA提过读写文件的方式太多了。今天,为大家搜索整理了java读文件写文件的方法,希望大家能有所收获!

学习

冠词a和the的用法区别

阅读(115)

本文为您介绍冠词a和the的用法区别,内容包括冠词a和the的用法区别例句,冠词a和the的用法。a,an是不定冠词,也就是用来指一类事物中的任意一个,通常放在可数的单数名词前.如果名词是以元音发音开头的用an(注意:是读音而不是拼写,不是单词

学习

PETS和CET的区别

阅读(25)

本文为您介绍PETS和CET的区别,内容包括pets和cet什么区别,pets和cet。PETS和CET有啥区别?各自含金量如何?这是大家都想知道的问题。以下是整理的PETS和CET的区别,希望对大家有所帮助。

学习

普洱生茶和熟茶的区别

阅读(79)

本文为您介绍普洱生茶和熟茶的区别,内容包括普洱生茶和熟茶的区别在哪,普洱生茶与熟茶的价格。普洱生茶和普洱熟茶是不同的,下面我们来说说普洱生茶和普洱熟茶的区别吧。以下是收集整理了普洱生茶和熟茶的区别,供大家参考借鉴,希望可以帮助

学习

考研国家线和学校分数线有什么区别

阅读(39)

本文为您介绍考研国家线和学校分数线有什么区别,内容包括考研国家线与各学校分数线一样吗,考研分数线和国家线有啥不同。我们在进行考研的时候,我们了解清楚国家线和学校分数线到底有什么样的区别。为大家精心准备了考研国家线和学校分数

学习

高考补录跟征集志愿有区别吗?

阅读(33)

本文为您介绍高考补录跟征集志愿有区别吗?,内容包括高考补录和征集志愿有什么区别吗,高考补录征集志愿什么时候。导语:高考补录跟征集志愿有区别吗?两者肯定是不一样的。已经将相关的内容分享给大家了,希望能够帮助到大家!再次提醒考生,补

学习

喷墨与激光打印机的区别

阅读(38)

本文为您介绍喷墨与激光打印机的区别,内容包括喷墨与激光打印机的区别是,打印机激光好还是喷墨好。打印机是电脑最常用的输出设备,作为办公必不可少的装备。而目前的打印机主要分为喷墨和激光打印两种。面对不同价位、不同需求,打印机选喷