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++的区别就在于是否需要管理指针