很多书籍(无论关于哪一门一语言的)都是互相抨击对方。其实我觉得没有那么严重。要说
Java的优势,我个人认为,他更纯粹,毕竟完全从OO当中走来!c++在于它的历史悠久,内容更丰富,学习困难比较大。而且总是在适应这个环境。(开始为了c programmer后来为了oo's programmer)其实,自从c以来,语言就不再是一个很重要的话题,你可以抛开一切,努力从架构等提高自己。其他的并不重要。既然你已经可以用c写hello world!那么你就没有必要花大力气学习java c++,但是一旦需要,你可以在很短时间内学会他。这也许也是优势吧!我才疏学浅,只能体会这些,不好意思!

解决方案 »

  1.   

    公说公棒,婆说婆棒+++++++++++++
    Java特别象C++;由此很自然地会得出一个结论:C++似乎会被Java取代。但我对这个逻辑存有一些疑问。无论如何,C++仍有一些特性是Java没有的。比如说C++在写网关程序方面比JAVA更强.而且尽管已有大量保证,声称Java有一天会达到或超过C++的速度。但这个突破迄今仍未实现(尽管Java的速度确实在稳步提高,但仍未达到C++的速度)。此外,许多领域都存在为数众多的C++爱好者,所以我并不认为那种语言很快就会被另一种语言替代(爱好者的力量是容忽视的。
      我感觉Java强大之处反映在与C++稍有不同的领域。C++是一种绝对不会试图迎合某个模子的语言。特别是它的形式可以变化多端,以解决不同类型的问题。这主要反映在象Microsoft Visual C++和Borland C++ Builder那样的工具身上。它们将库、组件模型以及代码生成工具等合成到一起,以开发视窗化的末端用户应用(用于Microsoft Windows操作系统)。但在另一方面,Windows开发人员最常用的是什么呢?是微软的Visual Basic(VB)。当然,我们在这儿暂且不提VB的语法极易使人迷惑的事实——即使一个只有几页长度的程序,产生的代码也十分难于管理。从语言设计的角度看,尽管VB是那样成功和流行,但仍然存在不少的缺点。最好能够同时拥有VB那样的强大功能和易用性,同时不要产生难于管理的代码。而这正是Java最吸引人的地方:作为“下一代的VB”。无论你听到这种主张后有什么感觉,请无论如何都仔细想一想:人们对Java做了大量的工作,使它能方便程序员解决应用级问题(如连网和跨平台UI等),所以它在本质上允许人们创建非常大型和灵活的代码主体。同时,考虑到Java还拥有我迄今为止尚未在其他任何一种语言里见到的最“健壮”的类型检查及错误控制系统,所以Java确实能大大提高我们的编程效率。这一点是勿庸置疑的!
      但对于自己某个特定的项目,真的可以不假思索地将C++换成Java吗?除了Web程序片,还有两个问题需要考虑。首先,假如要使用大量现有的库(这样肯定可以提高不少的效率),或者已经有了一个坚实的C或C++代码库,那么换成Java后,反映会阻碍开发进度,而不是加快它的速度。但若想从头开始构建自己的所有代码,那么Java的简单易用就能有效地缩短开发时间。
      最大的问题是速度。在原始的Java解释器中,解释过的Java会比C慢上20到50倍。尽管经过长时间的发展,这个速度有一定程度的提高,但和C比起来仍然很悬殊。计算机最注重的就是速度;假如在一台计算机上不能明显较快地干活,那么还不如用手做(有人建议在开发期间使用Java,以缩短开发时间。然后用一个工具和支撑库将代码转换成C++,这样可获得更快的执行速度)。
      为使Java适用于大多数Web开发项目,关键在于速度上的改善。此时要用到人们称为“刚好及时”(Just-In Time,或JIT)的编译器,甚至考虑更低级的代码编译器(写作本书时,也有两款问世)。当然,低级代码编译器会使编译好的程序不能跨平台执行,但同时也带来了速度上的提升。这个速度甚至接近C和C++。而且Java中的程序交叉编译应当比C和C++中简单得多(理论上只需重编译即可,但实际仍较难实现;其他语言也曾作出类似的保证)。
      

  2.   

    Java是强制OO,C++是随程序员爱用不用
    BTW,Java没有template这点真是最大痛脚
    至于执行效率,反正执行效率低可以提高硬件配置,而越高的硬件配置利润越高,所以只要有企业用户购买(实际情况基本如此),这是增加利润来源的好途径。
    看看在内存要求方面臭名昭著的WebSphere和DB2就知道IBM的策略之一了。
      

  3.   

    这里大家太专注于程序语言的外部了:java比起C++,没有了指针,多重继承,同时也提高了安全性
    原先了解一点c++,现在一直在学JAVA,感觉JAVA比 C++更 能体现出面向对象的思想。建议看《CORE JAVA》,里面对比了JAVA AND C++
      

  4.   

    楼主的意思是问问JAVA在OO方面和C++有什么优劣?其实JAVA的优势是它是一个纯粹的OO,而C++则是个大杂烩,过程化的程序设计,面向对象的,基于对象的,泛型的融合在一起。如果说在OO上和C++比,那么JAVA并没有什么优势。C++也可以是OO的,它也实现了OO的基本东西,比如类,对象,继承,多态,C++有的JAVA也有,OO上面并没有谁优谁劣。JAVA取消了一些C++中由于灵活性而导致的复杂性,比如指针,多重继承(JAVA中用interface支持)等等