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

JAVA和C++的区别59

发布网友 发布时间:2023-10-16 12:40

我来回答

5个回答

热心网友 时间:2024-11-21 00:23

java和c++就有着比较密切的关系。很多人认为java就是简化版的带虚拟机的c++。这样我们在学习java后再学习c++可以让我们了解到java相对于c++而言做了哪些简化。特别是在面向对象特性方面。(c++可以实现部分函数语言的特征,特别是它有函数指针,可以把函数当做一个对象传递;java这样做的话需要写一个“函数对象”,感觉就不是很直接了。但是意图应该是一致的。抽象性也差不多,同样的功能java可以使用接口来实现。)我们注意到java和c++的过程控制语句是比较相似的。

另一个角度,我们要知道,c++的复杂性是必须的。和c++在工业领域中所处的位置有关系。以及这个语言所代表的特殊的层次和功能。那么java在作出了简化之后,相应的失去了很多的灵活性。但是增加了简单性,便利性。在设计上也比较纯粹一些。但是语言风格比较固定,类库的风格也比较一致。但是这两种语言都是成熟的语言,在工业领域运用多年。

对于java程序员来说,学习C++不是一件容易的事情。但是有助于程序员对程序语言本身的很多机制的理解。特别是面向对象方面。C++比较复杂,而且健壮性弱,需要程序员格外细心。从这个意义上来看,C++如同林黛玉,美丽,脆弱,难以了解,但是却很有才。java如同薛宝钗,美丽大方,会照顾人,懂事,贴心,但是不够灵活。

再换一个角度,c++语言的类库很丰富,而且跨平台性也比较好。运行速度快。灵活。所以我们java程序员,学习c++可以说是必须的。

另外,C++现在并没有退出工业领域,现在还有相当丰富的应用,业务在使用c++。推荐大家可以看一下QT。游戏领域的可以看一下irrlicht。这些都可以作为学习的起点,你就可以做出比较有成就感的东西,对于学习也是一种鼓励。特别是QT。

最后,java在UI上一直饱受诟病。特别是swing,复杂,速度慢。对javaFX期待中。另外java虚拟机上有很多其他语言建议大家可以学习一下scala。

最最后,很多人比较java和c++哪个好。我觉得是没有什么大的意义,无论哪个好,哪个强,我们如果都学会的话,岂不是更好?岂不是对我们更有利?

最最最后送大家一句话,古语:技不压身。

参考资料:http://my.oschina.net/clarkhill/blog/9227

热心网友 时间:2024-11-21 00:23

都能够实现面向对象思想(封装,继乘,多态)。而由于c++为了照顾大量的C语言使用者,
而兼容了C,使得自身仅仅成为了带类的C语言,多多少少影响了其面向对象的彻底性!JAVA则是完全的面向对象语言,它句法更清楚,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷。
Java和c++的相似之处多于不同之处,但两种语言问几处主要的不同使得Java更轻易学习,并且编程环境更为简朴。
我在这里不能完全列出不同之处,仅列出比较显著的区别:
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里无用内存回收程序是以线程方式在后台运行的,利用空闲时间工作。
另外,站长团上有产品团购,便宜有保证

热心网友 时间:2024-11-21 00:24

1、Java源码会先经过一次编译,成为中间码,中间码再被解释器解释成机器码。对于Java而言,中间码就是字节码(.class),而解释器在JVM中内置了。
2、C++源码一次编译,直接在编译的过程中链接了,形成了机器码。
3、C++比Java执行速度快,但是Java可以利用JVM跨平台。
4、Java是纯面向对象的语言,所有代码(包括函数、变量)都必须在类中定义。而C++中还有面向过程的东西,比如是全局变量和全局函数。
5、C++中有指针,Java中没有,但是有引用。
6、C++支持多继承,Java中类都是单继承的。但是继承都有传递性,同时Java中的接口是多继承,类对接口的实现也是多实现。
7、C++中,开发需要自己去管理内存,但是Java中JVM有自己的GC机制,虽然有自己的GC机制,但是也会出现OOM和内存泄漏的问题。C++中有析构函数,Java中Object的finalize方法。
8、C++运算符可以重载,但是Java中不可以。同时C++中支持强制自动转型,Java中不行,会出现ClassCastException(类型不匹配)。

基本上就是以上内容,回答中有什么遗漏欢迎网友们补充,希望对您有所帮助。

热心网友 时间:2024-11-21 00:24

java是在C++的基础上开发的。java是纯面向对象编程,C++不是,java没有指针,没有内存溢出,C++有。

热心网友 时间:2024-11-21 00:25

个人觉得JAVA和C++的区别就在于是否需要管理指针
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
八月中国最凉快的地方 八月份哪里最凉快,去哪旅游好?美丽的地方 乱字同韵字是什么意思 华硕笔记本电脑触摸板怎么开笔记本电脑触摸板怎么开启和关闭_百度知 ... 陕西职务侵占案立案准则 结婚后我的恋情维系了十年,怎么做到的? 玉米仁子饭产自哪里 中国期货交易所的交易品种有哪些? 历史要怎么读,有啥诀窍 高中历史诀窍 海南设立海口江东新区 C语言与C++与JAVA的区别是什么?15 C++和JAVA得区别?123 海南自贸区方案发布 忽然对一个人朝思幕想,总希望收到他的信息,但我又不想发信息给... 微信不想接收一个人的信息但是又不能拉黑名单让对方知道,有这种...175 如何在不删除微信好友的前提下,接收不到对方发来的信息,并且对...324 微信上给对方发消息,对方一直不回,这算什么情况?13922 我手机是三星9300为什么开启不了root 愤愤不平与其意思相近的四字词语还有哪些?9 三星i9300总是一键root失败!该怎么做?6 艾米果的做法,艾米果怎么做好吃,艾米果的家常做法8 这是什么昆虫?学名。 土话叫:狗踏对。会飞。 后腿不停摩擦,...1 怎样清洗康佳滚桐洗衣机1 卡西欧EF-521SP-1AV验货 手机里面照相机的像素怎么调548 如果第一套房是全款,第二套房贷款,付几成,贷款是怎样算的?房... 我有一个了,还想再申请一个应该怎么办1 哈电力热工自动化专业能进电网吗 考汉语国际教育硕士,湖南大学、南开大学、首都师范大学好还是华... 金秀儿早早孕的测试结果准确吗?看着有点变粉了呢! 金秀儿早早孕试纸测试结果准确吗?有点担忧。 担保人强制执行丈夫会不会也有责任19 用了金秀儿早孕试纸,第一天有灰印,高兴坏了,结果第二天再测却... 担保人承担连带责任后,账户被冻结,财产也会被同时查封吗4 金秀儿早早孕试纸准么?这次大姨妈推迟了一个星期,用金秀儿早孕... 担保人注明了个人行为会影响家庭财产吗1 下午用金秀儿早早孕试纸测过了很久出现粉印,是怎么回事? 担保人名下财产是否会被法院查封39 轿车机动车道正常右转弯,打了装向灯,反光镜里距离电动车25米转弯,后... 我手机是三星9300为什么开启不了root 三星手机怎么root,总失败1 我的三星I9300怎么总是ROOT失败?提示说系统平台问题,... 关于三星i9300获取root权限的问题9 小金鱼幼儿园小班教案活动反思怎么写2 我想再申请一个怎么申请35 我有一个了 还能在申请一个 怎么弄?6 已经有一个想重新申请一个怎么操作60 vivo手机我有个了,还想再申请一个怎么办9 我想再申请一个怎么申请35