java是完美的oop,c++是什么???????? 

解决方案 »

  1.   

    我一直用VC++,也一直陶醉与它的强大!现在我有点想学JAVA,但是我没有找到为什么要学它的好的理由!UP的意思是JAVA开发速度快,是吗?我想它一定也牺牲了别的什么?
      

  2.   

    我是向你们请教JAVA的优点!JAVA究竟能做什么???怎么没有人正面的回答呢?
      

  3.   

    JAVA比C++容易学
    用JAVA开发速度比C++快.
    但运行速度,没有C++快.毕竟速度是C++生存的根本
      

  4.   

    理由很多~~~ 送你一句中国留学生(水平当然了得)的话:
    当国内都沉浸在VC,VB的气氛中,,国外早已经是JAVA的天下了~~~~
    有的人说JAVA只适合网络编程,,我不这样认为,它的应用程序开发也是非常强大的呀~~~
      

  5.   

    谁说Java比C++好?我不觉得啊!
      

  6.   

    重要的是你学了没有?学好了没有?
    java 使用字节码,据说可以跨平台
      

  7.   

    首先,你要明白,Java和C++有各自的发展领域。Java不可能编写操作系统!C++也不可能写出与硬件无关的跨平台程序!你不能用看待C++的传统目光去看待Java的发展前景。象你这样的人比较多,所以中国现在还是C++主宰的世界,尽管国外已经是Java的天下了!Java语言是目前我所见过的最优秀的OOP语言,C++在这方面概念不是很清楚。
    JVM + Jini + Java几乎可以运行在目前你所能想到的任何平台(比如你家里的电饭煲)运行,而且可以和其他平台进行通信(比如你家里的电冰箱),并且这些平台都有远程的另外一个平台的系统来监控(比如你办公室的电脑)。我想C++做这些不是很容易吧!!!
      

  8.   

    我同事的遭遇:
      一天我们调试一个关于通讯的小问题,听说在网上有一个现成的,于是down了一个,是c++写的在win下编译:pass.很快我们的程序跑了起来,而且很正常......然后有一天,听说我们的适用版程序在客户的反映良好,现在另外有几个客户对我门的软件也赶兴趣,但是他们要求不是在98下跑这个程序,一个要用linux,一个要用unix,还有一个最恶心的是什么frebsd(好象是这样)然后我的同事不得不在三个不同的系统下重新编译那段程序,接着原来在win下跑得好好的程序在这几个系统下出现了各种恶心问题,我的同事因此一个星期都没有好日子过。
     最后他得出一个结论如果当初用的是java的话,他就不会发一个星期的噩梦了
      

  9.   

    总结两点:1.JAVA是更好的OOP语言  2.JAVA是跨平台的
    我想我应该开始学习JAVA了!请大家指教!
    不知道JAVA有没有经典的学习书籍?谢谢了!
      

  10.   

    JAVA和C++都只是一种编程的语言,在某一个方面可能JAVA更好一些,比如网络方面(jsp、servlets、applet);在应用程序方面C++则要好得多,几乎大型的应用软件都有它的功劳。
    作为程序员,这种问题很无聊(望谅解),还是把时间更多的放在如何提高你现在正在从事的编程领域的水平吧。
    不要再争论这种即无实际意义,又浪费时间的问题了。
      

  11.   

    yingjunyu,我不是在争论,而是在请教。
    难道一个JAVA的新手问这个问题有什么不妥吗?
    其实,你不必这么敏感,我对语言及工具之争(如C++和JAVA,VC++和CB)一样毫无兴趣。
      

  12.   

    java与其说是一种语言,还不如说是一种思想,在OO方面他做的比C++好,但是两者都有自己的优点。后pc时代了,现在我们面队的不仅仅是PC,不仅仅是一种单一的OS,用 java 的优点就在这里。至于执行效率的问题,随着计算机硬件的发展,速度将不是主要的问题,跨平台,可维护性,易读性等才是最重要的,就象开发windows程序,有必要还用汇编吗?但是,要申明一点,我是很喜欢C++和C的
      

  13.   

    不知道JAVA和JB有没有经典的学习书籍?谢谢了!
      

  14.   

    sun公司说java好,ibm也说java好,oracle也说java好...
    我们还需要理由吗:)欢迎光临Java,J2EE论坛( http://letsjava.yeah.net )。 
    http://www.minij2ee.com/ 
      

  15.   

    关于java,我也很困惑,不知该不该投入精力学习他。
      我见过一个pure java的mis系统,client端机器配置要求和服务器差不多,因为client端要运行java的图形界面,多高的成本呀。
    另:我现在正在主要开发一个4000万用户邮件系统,如果采用pure java的话,要选用sun的sparc工作站,应用程序服务器要用sun的iplanet,只用这样才有能满足性能及稳定性的要求。但成本太高了,不敢想象。而且做这种项目,要考虑很多和操作系统相关的东西,如果使用java倒是不用考虑这种问题,java也不让你考虑,但问题是java真能解决的好吗?而且现在搞java开发,人力成本也很高,有经验的人实在太少。最后我们只好采用pure c(因为c++也有效率问题)在linux和solaris(x86)平台来开发(即使是4cpu,4G内存的dell  pc server也要比sparc工作站便宜很多)。
      

  16.   

    个人觉得如果使用java作大项目,公司必须要有钱,要大量的投入,硬件和软件及人力成本的投入。
      

  17.   

    欢迎光临天际软件
    sesoft.y365.com,到讨论区讨论
      

  18.   

    JB好象是比较好的JAVA开发工具,JB有没有经典书籍?谢谢指教
      

  19.   

    java可以做小的应用系统的东西,嵌入的东西
    怎么样??
      

  20.   

    thinking in java
    比较好的书籍,特别是外文的,我到是没有看
    中文的我到是看了一点点,还在继续看
      

  21.   

    现在企业级的应用应当选择java,这个就是你有现在这个问题的原因,当然,肯能不是最好的答案
    现在企业级的应用应当选择java,这个就是你有现在这个问题的原因,当然,肯能不是最好的答案
    现在企业级的应用应当选择java,这个就是你有现在这个问题的原因,当然,肯能不是最好的答案
    现在企业级的应用应当选择java,这个就是你有现在这个问题的原因,当然,肯能不是最好的答案
    现在企业级的应用应当选择java,这个就是你有现在这个问题的原因,当然,肯能不是最好的答案
    现在企业级的应用------跨网络、跨地区的企业应用!!!!
      

  22.   

    初学者用:《java2从入门到精通》
    晋级:《Thinking in Java》 
    提高:《java核心技术》
      

  23.   

    讨论一种语言是否比令外一种语言优秀,
    根本不是中国绝大多数程序员或计算机工作者
    可以完成的工作,
    很多人都对C++和Java一知半解,
    写C++的不用stl和采用GP的编程方法,
    而且基本上都没有异常处理机制.
    Java也是只写一些幼稚的可笑的程序,
    建议去看看C++的发明者的个人主页看看,
    http://www.research.att.com/~bs/homepage.html
    此外myan翻译的Bjarne Stroustrup的一篇文章也值得一看.
    http://www.csdn.net/develop/read_article.asp?id=3900
    踏实一些,
    我想对提高我们民族的核心技术开发能力,
    对我们的创新能力会有所帮助.
      

  24.   

    to  Kevon(凯文)首先,你要明白,Java和C++有各自的发展领域。Java不可能编写操作系统!C++也不可能写出与硬件无关的跨平台程序!你不能用看待C++的传统目光去看待Java的发展前景。象你这样的人比较多,所以中国现在还是C++主宰的世界,尽管国外已经是Java的天下了!Java语言是目前我所见过的最优秀的OOP语言,C++在这方面概念不是很清楚。
    JVM + Jini + Java几乎可以运行在目前你所能想到的任何平台(比如你家里的电饭煲)运行,而且可以和其他平台进行通信(比如你家里的电冰箱),并且这些平台都有远程的另外一个平台的系统来监控(比如你办公室的电脑)。我想C++做这些不是很容易吧!!! 恰恰相反, 我觉得你说的绝大多数都是不正确的或者是片面的.
    Java也可以写操作系统, 而且已经写出来了.
    C++也肯定可以写出cross platform的程序,
    不知道你有没有用过QT.
    绝对可以跨平台,
    此外由于C++ is the superset of C
    所有遵循posix规范的C program,
    移植到C++中,
    完全可以做到跨平台.
    C++在OOP上的表现也是非常优秀的,
    而且C++支持GP(Generic Programming)和STL,
    Java到目前为止还不支持GP,
    template也不支持,
    C++和C在embeded开发中占有极其重要的地位.
    此外C++的performance根本是Java所不能比的.
    我觉得至少应该对C++和Java都有很好的了解才可以做出判断,
    不可以make a conclusion recklessly.
    这对于programmer,
    对于做学术的人是很要不得的.另注: 我一点都不讨厌Java,目前我就是在写Java代码.
    但这不能影响我对C++的喜爱. 尤其是C++ programming涵盖的思想,
    精致而极有思想
      

  25.   

    我看了几天的JAVA,觉得JAVA在OOP方面好象比C++更明确一点。
    使用过C++再学习JAVA是不是比较轻松,我暂时的感觉是这样的。
    我想C++和JAVA的存在都有很好的理由,我们都应该去掌握它们。
      

  26.   

    C++和JAVA我都很喜欢,他们各有千秋!就象要开发系统 你总不会用JAVA吧!不管怎样这两样我都要学好,用好!
      

  27.   

    只有Microsoft不说java好。原因大家都明白啊
      

  28.   

    java除了做网站开发其他都是垃圾,比如jbuilder,如果用c++开发估计效果比现在的强一百倍
      

  29.   

    java的思想是我学习它的主要原因
      

  30.   

    尺有所短,寸有所长,java和c++各有各的特点,不论哪一个只要你学会、学精了,都可以让你有个好的生活
      

  31.   

    请大家不要跑题,这里不谈论C++和JAVA谁更好!
    如果想谈论那个无聊的话题请移窝儿。
      

  32.   

    c++语言的特性如:封装性,重载性,继承性,多态性学学就知道拉。
    java是比较容易上手,可是它就是效率没有c++高。
      

  33.   

    to:juianw(西门吹雪):
    首先,你要明白,Java和C++有各自的发展领域。Java不可能编写操作系统!C++也不可能写出与硬件无关的跨平台程序!你不能用看待C++的传统目光去看待Java的发展前景。象你这样的人比较多,所以中国现在还是C++主宰的世界,尽管国外已经是Java的天下了!Java语言是目前我所见过的最优秀的OOP语言,C++在这方面概念不是很清楚。
    JVM + Jini + Java几乎可以运行在目前你所能想到的任何平台(比如你家里的电饭煲)运行,而且可以和其他平台进行通信(比如你家里的电冰箱),并且这些平台都有远程的另外一个平台的系统来监控(比如你办公室的电脑)。我想C++做这些不是很容易吧!!! 恰恰相反, 我觉得你说的绝大多数都是不正确的或者是片面的.
    Java也可以写操作系统, 而且已经写出来了.
    C++也肯定可以写出cross platform的程序,
    不知道你有没有用过QT.
    绝对可以跨平台,(在编写系统级的软件时这可能吗?WINDOWS下有dos.h,linux下有吗)
    此外由于C++ is the superset of C
    所有遵循posix规范的C program,
    移植到C++中,
    完全可以做到跨平台.(以你的逻辑来将,c也是完全的跨平台的语言?????)
    C++在OOP上的表现也是非常优秀的,(正是由于c++对c的向下兼容影响了它的OOP的特性!)
    而且C++支持GP(Generic Programming)和STL,
    Java到目前为止还不支持GP,
    template也不支持,(模板是java申明抛弃的东西!!!!!!)
    C++和C在embeded开发中占有极其重要的地位.
    此外C++的performance根本是Java所不能比的.(那要看在什么硬件上面了,如果是没有c++的硬件呢,还有是什么程序了,对于服务器端程序,用c++做,为每个客户端生成一个进程,而用java做,只是生成一个线程,最后的性能呢????)
    我觉得至少应该对C++和Java都有很好的了解才可以做出判断,
    不可以make a conclusion recklessly.
    这对于programmer,
    对于做学术的人是很要不得的.另注: 我一点都不讨厌Java,目前我就是在写Java代码.
    但这不能影响我对C++的喜爱. 尤其是C++ programming涵盖的思想,
    精致而极有思想 (你对c++的喜爱恐怕是你精于c++吧!!!!!!)
      

  34.   

    to cherami(cherami)
    有感于你的发言,
    我想说几句,
    1, Java也可以写操作系统, 而且已经写出来了.
    C++也肯定可以写出cross platform的程序,
    不知道你有没有用过QT.
    绝对可以跨平台,(在编写系统级的软件时这可能吗?WINDOWS下有dos.h,linux下有吗)
    Java本身就是个平台,
    在没有了解一件事情的本质的前提下就匆忙下结论,
    这是浮躁和没有水平的表现.
    估计你也没有用过QT,
    QT library是对Windows, Linux和其他主流平台都支持的,
    而且csdn也发布过焦点新闻,
    C++也开发出了相当于JVM的C++ 的virtual machine.2.用遵循posix规范的C program,
    移植到C++中,
    完全可以做到跨平台.(以你的逻辑来将,c也是完全的跨平台的语言?????)
    很遗憾,
    您又以偏盖全了,
    遵循posix规范的C是可以做到cross platform,
    不要说你连posix是什么东东都不知道吧????!!!!!!!!3.C++在OOP上的表现也是非常优秀的,(正是由于c++对c的向下兼容影响了它的OOP的特性!)
    说的对,
    但那是因为历史原因造成的,
    而且你完全可以写出pure的c++程序啊,
    只要你用pure standard C++,和standard c++ library.4.此外C++的performance根本是Java所不能比的.(那要看在什么硬件上面了,如果是没有c++的硬件呢,还有是什么程序了,对于服务器端程序,用c++做,为每个客户端生成一个进程,而用java做,只是生成一个线程,最后的性能呢????)
    C和C++也支持线程的,
    估计是你没有用过,
    所以匆匆下结论.
    AT&T, C++的发明地,
    他们写的程序在复杂度上根本不是国内包括美国很多公司写的程序所能比,
    很多种底层的通讯协议,
    能用Java写吗?
    即使能写,
    performance呢?
    建议你去看看richard steve的Tcp/ip illustrated(3卷),
    unix network programming(两卷), 
    unix advance programming environment,
    那样你会变得谦虚一些.
    我希望你也写过C++程序,
    那样你的发言会更有说服力一些.5. 精致而极有思想 (你对c++的喜爱恐怕是你精于c++吧!!!!!!) 
    也许吧,
    不过好象这不是你所能评价的,
    在中国我见多那些所谓的"专家"和"高手"
    我觉得做人还是谦虚一点的好,
    这不是虚伪,
    而是一种境界.6.
    对于Java一直认为是charming的feature,
    garbage collection.
    网上的C++高手已经写出了可以让garbage collection无法进行垃圾收集的程序,
    好象在CSDN myan的专栏中有,
    其实C++完全可以做到garbage collection,
    甚至会更加的elegent.
    而且像STL和auto_ptr, vector等class template都是自动回收内存的.写在后面的我觉得大家最好还是可以心平气和一些,
    没有必要几句话一说就心跳加快,脸红脖子粗.
    那不是一个有文化的人应当做的,
    整个中国包括我们的IT产业,
    实在浮躁的可以,
    希望大家可以多做一些实事,
    静下心来,
    多学点知识,
    我建议你去看看addision wesley的一系列的C++的书,
    像The C++ programming language.
    inside c++ model, etc.
    我想会有收获的,
    也比争论这种无聊的话题有意义得多.
      

  35.   

    to:juianw(西门吹雪):
    我感觉有继续讨论的必要。:)
    1、我确实没有用过QT。但是从目前QT的影响力来看,它应该是没有那么好吧。如果它真的那么好,为什么没有人用呢?虽然我没有用过QT,但是实际上我到是翻过一本书,名字是《在linux下使用qt编程》(好像是这样的),那本书比较薄。在书开始的部分并没有提到跨平台的特性。也许是我没有仔细看以至没有看到。我知道java是一个平台,但是这个平台为我们隐藏了具体的系统实现的细节,这就足够了。如果真的有c++的虚拟机,那么为什么也没有什么人用呢?2、“遵循posix规范的C是可以做到cross platform”,请注意你的用语,“可以”,也就是说你同样是“以偏盖全”!如果能cross platform,那么那些大师级的c程序员为什么不利用跨平台呢?难道他们不知道还有一个posix c吗?同样,c++的大师们又干什么去了呢?难道他们都认为他们的程序只需要在windows或者unix/linux平台下运行吗?如果严格的说,java也不能跨平台,如果你用一些平台相关的特性的话!但是跨平台应该是指总体的结果而不是应该遵循很多的特定规定才能达到的结果吧!我承认,任何一本c的教科书的helloworld是跨平台的,但是这样的程序有应用的价值吗?3、在你翻译的让我们阅读的那个c++的创建者的近期言论那篇文章里面,他自己都承认了他最头痛的就是和c兼容的那部分!但是为了其它的利益,他必须这个做,然后他倡导大家写纯c++,他这样做的目的是什么?仅仅是维护程序员的利益?还是为了维护c++的地位!可以这样说,保持和c的兼容是为了使c++有更多的用户群,因为凡是c程序员,他都可以说他是属于c++的一部分的。而很多c++程序员在写程序的时候也没有意识到自己实际写的是c。毕竟很多c++程序员都是从c转过来的,c的东西和他们太紧密了,再说在c++写c代码也没有错啊!正是这点使c++成为一个不很纯粹的语言!!!!c和c++之间的界线因此而模糊!!!有多少c++程序员在写c++成员的时候在重复一句话,我写的是c++而不是c呢?4、我没有说c++不能写多线程,但是有多少c++程序员写多线程呢?exec()函数在他们的头脑中已经根深蒂固了,即使exec又推出了execl(),execlp(),execle(),execv,execvp()等,但这些都是创建进程的,而不是线程,而且在介绍时还有附上诸如哪个函数有什么问题的说明!我确实没有用过c++下的多线程,因为我根本就没有见到有书介绍c++下的多线程。(可能是我看的书太少了。请问有多少人看过c++多线程的书?)。java不是用来写协议的,因为协议的实现和硬件和系统的联系太紧密了。这也正好印证了c/c++的平台相关性!java可以理解这些协议,无论是那个平台上的实现方式!!!!!java不是用来写底层的协议和应用的,它的目标是分布式应用和智能终端!这也是为什么c++/c还有市场的原因!如果java能很好的写底层的东西的话,现在已经没有c和c++了!!!可以这样说,我没有写过c++的实际的应用程序,我所写的都是一些可以“跨平台的”,“没有实际价值的”c++教科书后面的练习。5、既然“精致而极有思想”不是我所能评价的,那么谁可以呢?c++的创建者,还是c++大师们?只有当一个人赞赏什么的时候他才会说它好,而他能赞赏的前提得是他充分的理解它,而在它充分的理解了后又涉及到一个问题:“实际上有很多程序员不光是把自己喜爱的语言当成一种工具,
    更当成一种信仰。”说它“精致而极有思想”的人难道不是也这样吗?6、实际上我确实很欣赏java的垃圾收集!我很清楚的记得我刚到公司的时候培训c++的情形。当老师将到内存分配和内存泄漏的时候,我屏住呼吸聚精会神的倾听老师的讲解,那节课上老师给我们讲解得很清楚我也知道了c++下内存的很多知识!但是同时也让我明白,在c++写程序要很小心!否则,要么是内存泄漏,要么是系统或者程序的崩溃!少释放使用的内存则意味着内存泄漏,多释放一次就是系统的崩溃!(这里的系统主要是指你的程序而不是操作系统)。c++可以实现垃圾收集,为什么没有人做呢?c++高手已经写出了可以垃圾收集的程序!是的,c++是无所不能的!只要获得java虚拟机的地址和指针,没有什么不可能的,它也完全可以让jvm崩溃!当然,一个c++高手随便写几行代码就会让操作系统崩溃或者死锁!!!!一个不太懂c++的初学者也可能无意中写出让系统崩溃的程序!!!!!7、一点补充:我并不认为c++会被淘汰,但是用c++写的程序的移植性非常值得怀疑!我最欣赏的java的特点是它的简洁!在写代码时不需要考虑太多的事情特别是内存的分配和回收!在很多情况下你根本就不知道某个指针的内存是否分配了,也不知道它什么时候该被释放!我们应该考虑的是如何提高程序的性能和实现需要的功能以及如何正确合理的实现一个模型,将它抽象出来并合理的封装起来,提高它的内聚降低它的耦合!更进一步的,如何利用OO思想表达好世界的需要!本来不该说这么多的,但是以我对计算机和计算机语言的了解来说,我需要解释一些事情。为了表明我不是一个什么java狂热的鼓吹者,我吹嘘一下自己的情况:电子工程专业,95年开始打电脑游戏(沙丘),97年开始自学DOS6,开始真正了解计算机,很欣赏DOS的简洁直接,深入学习过自动批处理,99年开始学习linux,同样喜欢shell的简洁和积木式的命令使用并一直在使用。对操作系统的评价是windows不好,但是必不可少!毕竟很多软件只有windows下才可以运行!学习过的语言包括basic,c,c++,perl,java汇编以及单片机8051系列汇编,在这些语言中,basic简单易懂,perl数据解析功能强大,java简单、纯粹OO、跨平台,汇编及单片机高效但是烦琐,可以直接和硬件打交道。惟独对c和c++不是很欣赏,但是还有学下来了,主要是不喜欢c/c++中烦琐的概念(特别是指针、内存管理和模板)。学习的知识包括计算机基础,计算机结构和组成,单片机,模拟电路和数组电路,软件工程。正在看一本书:《软件工程 java语言实现》。也许就像你说的:“实际上有很多程序员不光是把自己喜爱的语言当成一种工具,
    更当成一种信仰。”我喜欢java,这是通过对比自己的计算机语言的学习得到的!我相信java的前途!现在java还有很多不足,但是java才出现了多少年,而c和c++呢?事物是在发展的,现在的缺点正是将来发展的动力!相信java!!!!
      

  36.   

    java在我眼里,只是为应用而应用;
    底层的东西通常并不为它所描述。
    一个程序员如果没有扎实的c/c++基础,
    很难透彻的理解好java。
      

  37.   

    JAVA之于VC++,尤如文学之于哲学!