问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java和c++的区别

发布网友 发布时间:2022-05-02 17:48

我来回答

6个回答

热心网友 时间:2022-04-24 04:57

Java 是由 C++发展而来的,保留了 C++的大部分内容,其编程方式类似于 C++。但 Java 的句法更清晰、规模更小、更易学。Sun 公司对多种程序设计语言进行了深入研究,并摒弃了其他语言的不足之处,最终退出了 Java。正是这样,Java 从根本上解决了 C++的固有缺陷,形成了一种新的完全面向对象的语言。Java 和 C/C++的相似之处多于不同之处,有 C 基础的读者,学习 Java 会更容易。相比较而言,Java 的编程环境更为简单。

热心网友 时间:2022-04-24 06:15

1.指针

JAVA语言让编程者无法找到指针来直接访问内存无指针,并且增添了自动的内存管理功能,从而有效地防止了c/c++语言中指针操作失误,如野指针所造成的系统崩溃。但也不是说JAVA没有指针,虚拟机内部还是使用了指针,只是外人不得使用而已。这有利于Java程序的安全。

2.多重继承

c++支持多重继承,这是c++的一个特征,它允许多父类派生一个类。尽管多重继承功能很强,但使用复杂,而且会引起许多麻烦,编译程序实现它也很不容易。Java不支持多重继承,但允许一个类继承多个接口(extends+implement),实现了c++多重继承的功能,又避免了c++中的多重继承实现方式带来的诸多不便。

3.数据类型及类

Java是完全面向对象的语言,所有函数和变量部必须是类的一部分。除了基本数据类型之外,其余的都作为类对象,包括数组。对象将数据和方法结合起来,把它们封装在类中,这样每个对象都可实现自己的特点和行为。而c++允许将函数和变量定义为全局的。此外,Java中取消了c/c++中的结构和联合,消除了不必要的麻烦。

4.自动内存管理

Java程序中所有的对象都是用new操作符建立在内存堆栈上,这个操作符类似于c++的new操作符。下面的语句由一个建立了一个类Read的对象,然后调用该对象的work方法:

Read r=new Read();

r.work();

语句Read r=new Read();在堆栈结构上建立了一个Read的实例。Java自动进行无用内存回收操作,不需要程序员进行删除。而c十十中必须由程序贝释放内存资源,增加了程序设计者的负扔。Java中当一个对象不被再用到时,无用内存回收器将给它加上标签以示删除。JAVA里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。

5.操作符重载

Java不支持操作符重载。操作符重载被认为是c十十的突出特征,在Java中虽然类大体上可以实现这样的功能,但操作符重载的方便性仍然丢失了不少。Java语言不支持操作符重载是为了保持Java语言尽可能简单。

6.预处理功能

Java不支持预处理功能。c/c十十在编译过程中都有一个预编泽阶段,即众所周知的预处理器。预处理器为开发人员提供了方便,但增加丁编译的复杂性。JAVA虚拟机没有预处理器,但它提供的引入语句(import)与c十十预处理器的功能类似。

7. Java不支持缺省函数参数,而c十十支持

在c中,代码组织在函数中,函数可以访问程序的全局变量。c十十增加了类,提供了类算法,该算法是与类相连的函数,c十十类方法与Java类方法十分相似,然而,由于c十十仍然支持c,所以不能阻止c十十开发人员使用函数,结果函数和方法混合使用使得程序比较混乱。

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

8 字符串

c和c十十不支持字符串变量,在c和c十十程序中使用Null终止符代表字符串的结束,在Java中字符串是用类对象(strinR和stringBuffer)来实现的,这些类对象是Java语言的核心,用类对象实现字符串有以下几个优点:

(1)在整个系统中建立字符串和访问字符串元素的方法是一致的;

(2)J3阳字符串类是作为Java语言的一部分定义的,而不是作为外加的延伸部分;

(3)Java字符串执行运行时检空,可帮助排除一些运行时发生的错误;

(4)可对字符串用“十”进行连接操作。

9“goto语句

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

l0.类型转换

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

11.异常

JAVA中的异常机制用于捕获例外事件,增强系统容错能力

try{//可能产生例外的代码

}catch(exceptionType name){

//处理

}

其中exceptionType表示异常类型。而C++则没有如此方便的机制。

热心网友 时间:2022-04-24 07:50

  java和C++都是面向对象的编程语言,但它们之间也存在着不同。在Java中,一切都是一种*(从Java.lang.Object获得一切时,命令的单根链)。在C++中,没有这样的命令根链。C++既支持过程编程,也支持面向对象的编程;通过这种方式,它被称为混合编程。

热心网友 时间:2022-04-24 09:41

C++也是面向对象的语言,但是他比较难,跨平台性,以及拓展性也不及JAVA。java好多东西都给你封装在类里了。比如说指针。还有比如说C++得程序员去专门回收内存。java就不用了,都有JVM去实现。所以说C++是面向对象语言,但不是纯的面向对象语言。

热心网友 时间:2022-04-24 11:49

感觉c++更底层一点,包括很多嵌入式的,也都是以c为基础的,以游戏开发举例,比如steam上的大型游戏也是用编程语言一点一点写出来的么?用Python能写游戏么?(我以前是运维开发Devops,其实运维这份工作本身也不是我想的,我热爱游戏就转了游戏开发,在这之中有必要去学c和java,从事自己喜欢的路至少不会让人生留遗憾,我选择生活,而不是谋生)当然游戏开发也不仅仅是编程,首先一般的游戏开发结构从底到顶为DirectX-游戏引擎-游戏,像gta5这样的次时代会更复杂,会涉及到建模,贴图,设计,交互,游戏引擎,,那么游戏引擎是由什么开发的?当然也是编程语言了,包括但不限于c,c++,java,python,先从游戏的底层架构DirectX说起,相当于所有显卡与游戏交互的一个图形程序api(wait,,,我好像难以分清图形应用程序接口api和图形用户接口GUI的区别了,感觉后者linux操作系统安装桌面描述的情况比较多),开发游戏时会调用到,而这个接口自身也是由c++写的,人家已经先写好了,后来者直接调用里面的函数就可以了,用于windows-Xbox等平台,既然底层是图形api,但是DirectX微软垄断,那跨平台ps4怎么办?微软自然不会给索尼苹果分一杯羹,答案是图形接口api并不只有微软自家pc x1独占的DirectX,还有AMD的mantle(竞争不过DirectX死了),行业领域开源通用的OpenGL(适用于Android,Apple,pc gaming,steam,ps4,xb1),Apple公司开发的专门适配于Mac和iOS平台的metal 3d(移动端ios首发独占的大作无尽之剑,还有当初更新ios8后发现狂野飙车8效果提升的非常明显),最后就是以前听说过的那模棱两可不知道是啥的vulkan(安装Intel集显驱动的时候应该很熟悉这个吧,当时都不知道这是啥,其实是新一代高性能图像处理和计算API),我们总是会把DirectX和unity混淆,可一套是底层的3D图形API,而Unity则是基于这套3d图形api之上构建的游戏引擎(引擎也分为物理运算引擎和画面引擎,前者有我们熟知的havok,euphoria,physx,后者就是各位耳尽能详虚幻3,寒霜3,雪莲花,ce3,RAGE,id tech 5,Dunia,Disrupt,AnvilNext等等),所以不要忘了游戏开发的架构组成

热心网友 时间:2022-04-24 14:14

都是面向对象的语言,但是用的地方不一样。
java 程序的总体布局是由很多类组成的,每个类都处于一个文件中。如果所有的类都位于同一个目录(文件夹)中,Java需要使用某个类(文件)的时候,就会自动 地找到它。通过使用import语句,也可以将不同目录中的类(文件)组合起来。
Java和C++中的注释在本质上是完全一样的。
  Java中没有全局变量。
  Java中没有枚举类型。
  Java中没有typedef。
  Java中没有结构或联合。
  可以像在C++中那样,在Java中对方法(函数)名进行重载,但在Java中不能对运算符进行重载。
  Java中没有多重继承,但它确实通过接口恢复了多重继承的很多功能。
 Java中没有模板,但它确实通过泛型恢复了模板的很多功能。
  在Java中,类可以有一个与类具有相同类型参数的构造器,但这个构造器没什么特殊的地位,不同于C++中的副本构造函数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请了解狗狗的朋友帮忙鉴别下狗狗的品种 这是什么狗呀~~狗狗达人请进~谢过 安装建筑机电工程抗震支架的专业队伍是否需要单位资质? 请大家帮我确认下这只狗的品种 阿里云网站域名备案流程全过程 内涵的搞笑句子 别人传出来的话与实际表达出来意思相悖 富士康车间赌博怎么举报 找一本武侠小说。大体内容是男主角是个杀手,而且很厉害,会一种武功一... 2k15为什么没有杜兰特 计算机语言问题 请问一下,怎么有人说java 是解释执行的呢,不是先编译为.class文件的吗?请指点 java有点混乱 对java平台的理解,java是解释执行吗 JAVA的翻译过程为什么称为半编译半解释? 求花兮茜《凤求凰》歌词。采用更有分 琴歌是以赞颂司马相如和卓文君的爱情故事为主题的民歌对吗 JAVA的翻译过程为什么称为半编译半解释 谁知到凤求凰是谁的作品??? 相传司马相如追求卓文君时所弹的是“四大名琴”中的哪一把? 关于《凤求凰》古筝曲 有什么故事?还有,除了古筝以外,是不是还有一曲萧也是吹的《凤求凰》? 琴歌凤求凰司马相如 凤求凰这首曲子是用什么乐器弹奏的 求后人根据卓文君和司马相如的爱情故事写的一首词或者琴曲 西汉著名辞赋家司马相如与《广陵散》《凤求凰》《阳春白雪》《下里巴人》哪首 司马相如和卓文君弹什么琴 夏天的垃圾桶忘记扔了,周围都是小飞虫,清理了一下垃圾,可是那些虫到处飞,怎么祛?用蚊香可以吗? 乔治·莫兰迪的人物生平 抖音里的莫兰迪高级感怎么下载 乔治·莫兰迪的介绍 j 自学java的瓶颈是什么? java语言特点不是 A 编译一次,到处运行 B类的多继承 C什么多态 D半编译半解释语言 求录音笔具体型号推荐,高三上课录音,至少5米远,录音清楚,杂音少,其他功能不介意,价格小于250,谢谢~ 我想买一个适合高中生用的录音笔~请问买什么的比较好! 对于上高中的学生,搜狗录音笔S1好用吗? 哪款智能录音笔比较好用?有适合学生党的吗? 支付宝转账到卡要多久到账 对于学生党来说,讯飞哪款智能录音笔性价比比较高? 那款录音笔性价比高? 学生用什么录音笔好 索尼和爱国者的录音笔哪个好? 哪一款录音笔比较好? 请问什么录音笔适合什么人群用? 支付宝转出到银行卡要多久 支付宝转账到银行卡多久可以到账 微信小程序微信支付调用哪个sdk 支付宝转账到银行卡要多久到 微信小程序提供的demo和sdk要一起用吗 “杂志社”这个词是什么意思? 中国国内 有哪些期刊杂志社?