李广新ID:lgx522
37490次访问,排名2841好友0人,关注者6
说实话,做实事
lgx522的文章
原创 29 篇
翻译 0 篇
转载 0 篇
评论 801 篇
最近评论
jamesyu123:我不是很聪明,那就是说PHP、RoR、Java都要掌握是吗?等待中。。。。
lynx1111:写得不错。支持!
请参考: http://www.mydwbi.com/forums/show/3.page
redex:假,大,空

想想IBM经常玩的那些复杂难用毫无效率但经常吹嘘的天花乱坠的
垃圾技术就感到好笑(再想想IBM的thinkpad x60, 吹嘘成世界上
第一台宽屏thinkpad!! 令人超级乍舌!! 再想想m$的所谓跨平台:
就是跨win98,me,2000,xp,2003的平台, 真是TMD超级搞笑!!)

脱离人们的……
aca_jingru:看来你还不了解啥叫linux, 内核而已,装了GONE以后,red hat也可以有gone的桌面, ubuntu只是linux的一种发行版本而已,
而关于软件有一种说法是,windows下的很多都是成熟软件,开源的也不是最好的,ubuntu现在还是不能和windows成熟的桌面相比的
lgx522:这是大半年前的体会,当时笔者正处于OOP的进阶阶段。也就是说,一直用OOP,但没有真正领会OOP。

这半年投入了对PHP等函数式编程的实践中,这才真正认识到OOP的好处。函数式编程也可以做到部分封装与重用,但比起OOP,还是困难得多。

最近台阶终于上来了,学会写自己应用中通用的类,学会了扩展已有的Java类库,这才充分体会到OOP对代码质量提高的重……
文章分类
收藏
    相册
    Java
    Java技术 深度历险
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 一个JavaFans的质疑和忧虑收藏

    新一篇: 软件从业者的杞人忧天 | 旧一篇: 浅析开源的现实利益

    本人学习使用Java也算是有几个年头了。对Java可说是又爱又恨,爱它的跨平台和广大的开源支持,恨它的速度慢、耗内存,和朝令夕改般的混乱。估计广大同道也多是如此吧?
    本人水平有限,对其底层运作的机制基本上是不懂的。只是看Think in java上的介绍,Java的内存管理与垃圾回收机制是相当耗费资源的。
    使用Java的IDE,只要是功能一复杂,速度和内存消耗就令人忍受,不论是JB、WSAD、JDeveloper,还是Eclipse,全一样。
    与之相比,.NET在此方面的表现就可说是令人惊叹了。在普通配置的机器上,往往连开几个Visual Studio都不会导致明显的问题,同样身为JIT,真不知MS是怎样做到的?
    联想到过去的VJ,本人甚至怀疑MS根本就是在误导Sun的底层开发,但Java在Linux上的速度与内存表现同样不佳,这样就很令人失望了。无疑,Java的开放性与充分的OOP是卓越的,甚至目前仍然是最好的;可惜,世间美好的事物也许总是有缺陷的,多年过去了,Java的速度与内存消耗仍旧是其硬伤。

    在开发效率上,Java也是广遭诟病。对于大多数的工程,使用Java也许是最慢的。据很多牛人的说法,Java开发高级企业应用是高效的。可惜IT界的大多数应用其实都是中小应用,大多数开发人员也是做中小应用,那么是否意味着我们就永远只能用这把牛刀去杀蚂蚁?
    其实,从学习研究的角度上讲,Java无疑是最值得花费时间与精力的。经过多年开源界的狂热,其对OOP的阐释之精深广泛可说是NO.1。具有讽刺意味的是,纯正的OOP本来就是为大幅提高软件开发效率而产生的,真正熟练掌握OOP的确可以达到这样的目标。可惜当前真正熟练掌握OOP所需要的时间、精力、智力也许远远超出了广大同道的预算。最终令人扼腕的事实就是,多数人在熟练掌握OOP之前就不得不放弃了这样的努力。这与J2EE所反复宣扬的初衷应该是背道而驰的。
    回想起当年使用VB、PB、Delphi日子,其实是很惬意的。即使现在看一看那些代码,以纯正OOP的观点看来,称之为垃圾都不为过,可是它真的能用!即使是所谓“写完即扔掉”,但很easy,生产效率的确很高!对于牛人来说,可视化编程只能看作是小孩子的玩具,可是大多数程序员正是用这些玩具支撑起了软件业的天空!
    无庸置疑,J2EE这类的牛刀的确是可以打造出艺术珍品,而可视化工具这类的玩具也许只能批量制造日用品。但是,绝大多数人类正是依靠日用品过活!

    MS的垄断和伎俩是惹人生厌的,但MS正是生产日用品的公司,而且它的日用品最容易使用,所以它如此成功。
    .NET现在与Java相比只能算是个毛头小伙,但小心,如果现今的统治者(J2EE)还是摆出一付学院式的傲慢,对程序员的苦恼置之不理的话,那么它的末路也就不远了(正如当年的Unix与Dos、Windows)。

    开放与免费对于我们这样的穷国是非常重要的。可是如果当某一天,多数人发现在开源领域浪费的时间与精力远远超过选用商用软件成本的时候,只怕会义无反顾地投向原本所痛恨的MS!但愿这一天不要来临。
    忧哉。

    发表于 @ 2004年08月23日 12:20:00|评论(loading...)|编辑

    新一篇: 软件从业者的杞人忧天 | 旧一篇: 浅析开源的现实利益

    评论

    #adijava 发表于2004-08-24 18:38:00  IP:
    TrackBack来自《一个JavaFans的质疑和忧虑 》

    Ping Back来自:blog.csdn.net
    #喻赣辉 发表于2004-11-15 16:41:00  IP:
    TrackBack来自《软件从业者的杞人忧天 》

    Ping Back来自:blog.csdn.net
    #stupid is not your name, but that is true? 发表于2004-08-23 14:10:00  IP: 211.144.195.*
    1. 一些地方,java运行速度已经超过C++. C#我没有比较,过几天再说

    2。C# , .net 的问题更多,因为脱胎于问题多多的COM, 所以DLL地狱问题并没有解决,反而加上了一个regasm,regsvr32, register database的地狱

    3。在MS$平台上浪费的时间远远超过java. 而java的变化比.net小很多。这也许是很多人不敢升级到.net 1.1的原因吧。



    最后一句:“坐井观天”常被用来讽刺针砭那些目光短浅、见识有限而又自以为是的人。另一方面,它又告诉我们,一个人认识的形成与所处的环境有直接的关系。青蛙如果不是“天天坐在井里”,怎么会误以为天只有井口大呢?同样,小鸟因为飞行在天上,所以对天的认识和了解自然远胜于井底之蛙。也许对青蛙来说,从“井里”“跳到井口”并非难事,而在人的生活中,要克服自身经验的局限性,开阔胸襟和视野,做到胸怀全局,高瞻远瞩,则并非易事,需要作出艰苦的努力。http://jky.zjnu.net.cn/learn/wlkc/xxywjcfx/pmsj/0306.htm
    #lgx522 发表于2004-08-23 14:13:00  IP: 218.63.92.*
    各位高人有无开发效率方面实际的对比和经验,不妨一同交流。
    如有高招,望指点。
    #crazybit 发表于2004-08-23 14:31:00  IP: 210.76.108.*
    VB可一点也不垃圾阿,友情强档就是VB写的。
    #lgx522 发表于2004-08-23 16:13:00  IP: 218.63.92.*
    纠正一点,文中所谓之“垃圾”,是笔者过去使用可视化工具编写的一些代码。尽管简单实用,但谈不上什么设计方法,扩展性与可维护性自然就不行了。
    过去(甚至包括现在)很多程序员都是用VB开发应用程序,而且产生了很多精品,是很让人佩服的。

    至于Java的速度、内存消耗、易用性,是Java界的众多核心人员都在努力改进的问题(包括Games Golsling)。SWT的确是很快,但还不够完善。笔者对.NET是新手,除了感受到ASP.NET相对于JSP的简易之外,实在无权谈论,还望身为小鸟的楼上不吝赐教。
    #say one line 发表于2004-08-24 11:15:00  IP: 219.136.158.*
    why not compares Turbo C 2.0 and .Net IDE ?
    #何之 发表于2004-08-24 11:19:00  IP: 61.130.50.*
    呵,干吗那么紧张,umbrella,你的意思就是说MS里的全是笨蛋了!
    神经过敏!
    #asdf 发表于2004-08-24 11:27:00  IP: 211.90.168.*
    你对Java的理解还不够层次啊
    你学Java这几年,就达到这样一个水准,不会吧
    #wang 发表于2004-08-24 11:28:00  IP: 218.94.3.*
    又是一个替MS说话的狗!!!!
    #Elevener 发表于2004-08-24 11:46:00  IP: 211.138.91.*
    To clip、hv、asdf、wang,能不能说点有意义的东西啊???

    CSDN上怎么总是有这些一开口不是叫骂就是"相轻"的人呢?
    #virushuo 发表于2004-08-24 09:18:00  IP: 211.101.189.*
    看来你算不得javafan....
    用vs的ide跟eclipse比,太可笑了吧。您怎么不用jcreator跟vs.net比?

    另外,如果说java的内存回收有问题,.net就要加一个“更”字。
    #jyli 发表于2004-08-24 11:52:00  IP: 61.145.145.*
    那你是替sun说话的毛驴。

    # 回复:一个JavaFans的质疑和忧虑 2004-08-24 11:28 AM wang
    又是一个替MS说话的狗!!!!
    #MS 发表于2004-08-24 11:58:00  IP: 222.132.21.*
    To Wang:
    你大概不知道Mircosoft, Windows, MSDOS,还有Bill Gate,这些单词你是不是听到都想吐!你知道FDISK,FORMAT,DIR,COPY什么意思吗,你没有用过吧!你生下来就只会用Linux,Java,你只知道cp,mv,ls,rm对吧?
    您刚才也是用Linux,用Mazilla,或者Netscape发的好贴吧!

    又一只不知道替谁说话的狗!

    真 他 妈 的 恶 心!
    #Eudemon 发表于2004-08-24 12:04:00  IP: 202.96.150.*
    java的支持者也该看看微软的长处。

    微软为什么经常取得成功?有一点是肯定的,只要是好的,有用的技术,他从来不拒绝把他们吸收到自己的旗下,甚至抄袭和剽窃。
    可以说,微软在不断的和竞争对手竞争中,不断的学习对方。反过来看看,微软的竞争对手又有多大程度的学习和吸收了微软的先进东西呢?
    #2002PP 发表于2004-08-23 13:16:00  IP: 221.224.216.*
    Visual Studio是由C写的,
    如果ms用C#来写,速度肯定会慢的让你受不了.
    而Eclipse是用SWT,NetBean使用Swing写的.
    能有这样的速度已经很不错了,特别是Eclipse.
    java的IDE大都是免费开源的如Eclipse,NetBeans并且可
    在许多平台上运行,而不仅仅是windowns.
    #ljw0082002 发表于2004-08-24 12:17:00  IP: 218.104.96.*
    java有java的市场,m$有m$的市场。没有谁比谁更好。也没有谁比谁更高明。骂m$的人在用m$的从操作系统到开发平台、office的全部盗版。骂java的人总是要下载j2se,j2me,j2ee。大家何必浪费口水?
    #没啥可说的 发表于2004-08-24 12:19:00  IP: 210.75.198.*
    用J2EE开发中小型企业产品是很愚蠢的.
    java是不可磨灭的优秀!但是当前是一个功利的社会,开发效率决定一切,雇用一个java高手的花费远远超过一个.net低手,但是他们能够基本完成同样的项目,所以....还有争论的必要吗???现实是残酷的,如果你的收入已经很好的满足了你的需求,那么闲暇时候钻研自己的java实在是一种梦幻而理想的生活,但是如果你还在劳苦奔波,还是尽快填饱肚子要紧啊,无奈中.........真的没什么可争的
    #clip 发表于2004-08-23 13:20:00  IP: 61.169.175.*
    思维过时,拿点新意思出来,好吗?
    #Turbo Chen 发表于2004-08-23 13:27:00  IP: 219.133.4.*
    爱一个人,就要包容它的一切,包括缺点。学语言也一样。
    #Kaede 发表于2004-08-24 12:22:00  IP: 222.33.90.*
    我服了 呵呵 没意义!
    #初手 发表于2004-08-24 10:03:00  IP: 220.173.16.*
    JAVA的学习周期的是太长了,我觉得你说得对
    #支持 发表于2004-08-24 12:22:00  IP: 218.19.60.*
    觉得发帖的人有水平,

    回复的,咳!!!!!
    #j&n 发表于2004-08-24 10:04:00  IP: 61.128.197.*
    用J2EE开发中小型企业产品的确是杀鸡用牛刀,吃力不讨好!现在我们老板也开始Java和.NET两手都要抓了。原来他可是只搞J2EE的哟!
    #cmic 发表于2004-08-24 12:27:00  IP: 218.61.136.*
    to:2002PP
    Visual Studio使用C写的,但Visual Studio.net使用C#写的,不懂不要乱说话。
    to:stupid is not your name, but that is true?
    “C# , .net 的问题更多,因为脱胎于问题多多的COM, 所以DLL地狱问题并没有解决,反而加上了一个regasm,regsvr32, register database的地狱 ”

    .net使用自己的.net framework根本就没有DLL hell,不懂不要乱说话。

    “在MS$平台上浪费的时间远远超过java. 而java的变化比.net小很多。这也许是很多人不敢升级到.net 1.1的原因吧。”
    我写的程序从.net1.0升级到.net1.1只重新编译一下没有改一行代码。
    #航邺科技 发表于2004-08-24 12:28:00  IP: 221.237.27.*
    大家还是客观的看待问题吧,各有千秋。
    #BS----MS 发表于2004-08-24 12:32:00  IP: 218.94.3.*
    CSDN被MS收买了,尽是一些为MS歌功颂德的文章!
    看看首页就知道了!真他们的恶心!
    #身为小鸟的楼上 发表于2004-08-23 17:49:00  IP: 211.144.195.*
    不太明白lgx522 的问题,你是支持我的观点还是反对我的观点?

    比较应该如此进行:

    1。都是新生,
    2。都是1年经验
    3。都是5年经验
    3。都是3年经验

    。。。这样比较应该比较公平
    #2002PP 发表于2004-08-24 12:40:00  IP: 221.224.218.*
    to cmic:

    "Visual Studio.net使用C#写的"
    看来你对开发工具和类库的概念没搞清楚!

    我说的是Visual Studio.net(这是个开发工具!)这个IDE是用C语言编写的,不是说net的类库是用C编写的!请不要混淆!
    #dt 发表于2004-08-24 15:33:00  IP: 211.100.13.*
    不管什么,大家还是努力提高自己的技术水平才是硬道理,不要花费时间讨论这些。
    #a 发表于2004-08-24 10:21:00  IP: 220.166.240.*
    1. 一些地方,java运行速度已经超过C++. C#我没有比较,过几天再说

    真长见识,第一次听说解释的比编译的快。
    #bird 发表于2004-08-24 12:45:00  IP: 211.144.195.*
      v2.7或更低版本的ADO,Delphi中执行以下带参数的SQL会出错:“select * (select * from t where f=:p) a”,2.8的就没有问题。查找出这个问题费了很多周折。先是一个很复杂的SQL总报错,然后简化为上述的还是报错,怀疑跟ADO版本有关,发现主文件版本2.70的有问题,2.71的就没问题,想直接替换ADO的支持文件(Program Files\Common Files\System\ado),结果替换成功了,再试时发现文件又被恢复成老版本了,最后在去掉shell后在命令行中替换文件成功,操作系统真是一个巨大的病毒。直接升级到ADO2.8也可以。
      其实开发人员、用户、客服人员都一样,发现有问题时都是想者升级软件到高版本,不明白是什么原因,也许问题就解决了。不明白的事情太多,但未知不能阻止程序员去解决问题,许多时候解决问题都是不需要也不知道道理的,只有说有效果比有道理重要。
      所述问题确认是ADO处理参数问题后,我们换成基于Zeos的代码来处理参数把参数值直接插入到SQL中形成完整字符串,这样也方便调试、优化SQL,同时解决另一个更复杂的SQL在ADO2.8中执行时导致MSVCRT.dll出现Access Violatioin错的问题。
    #bird 发表于2004-08-24 12:47:00  IP: 211.144.195.*
    cmic :不懂不要乱说话。

    1. .net framework 没有dll hell? 哈哈,你见识太少了
    你知道什么是GAC么?

    2。你用过Maverick.dll?
    那么,1.0 ->1.1的wetn1


    3. java速度的确比C++快!
    #中立 发表于2004-08-24 15:47:00  IP: 61.181.26.*
    未来一段时间内,软件开发界就是Java平台和.Net平台之争。
    现在很难评价谁比谁强,因为两者都处于发展期,而不是成熟期。
    这种争论是不会有结果的。我说,选哪个都不错。最好是两者
    都要,一个也不能少。


    #争什么!!!!!!!!!!!!!!!!!!! 发表于2004-08-24 15:50:00  IP: 219.146.137.*
    他们斗的越厉害,做程序员的越受益!
    #rock~java 发表于2004-08-24 10:31:00  IP: 218.13.90.*
    1. 一些地方,java运行速度已经超过C++. C#我没有比较,过几天再说

    真长见识,第一次听说解释的比编译的快。
    的确有这么回事。不要只关注字面的意思
    #bird 发表于2004-08-24 12:50:00  IP: 211.144.195.*
    例2.1 MDB不能打开问题
      一单机版软件使用Access数据库发布到用户后运行总是提示不能独占打开数据库,但确实没有其他人使用,问题也是找了很长时间,怀疑过病毒、杀毒程序等,最后知道只是因为MDB文件属性是只读的,发布时刻的光盘,直接拷贝到用户的机器后就仍然是只读的。
      不知道是因为只读的原因,问题就很难搞定。当然这也可以说是软件的缺陷,它应该有更友好的提示,也许写Jet引擎这段代码的作者也没考虑到这么多,也许文档里写有,但我们不知道。程序员的未知总是很多,遇到的问题总是很多,但是我们还是要用这些自己无法全部把握的东西。
      这个世界,什么都必须去重用,什么都重用,比如女人、还有男人。

    例1.1 中间件内存问题
      一Delphi中间件执行批量数据处理时内存剧增,几个小时后内存占到近1G,处理完了内存也不下降。用Turbo MemorySluth等内存工具查没查到问题,最后采用最原始的方法:在一段代码前后执行AllocMemSize,看其差值,正常应该为零,查出一段代码每处理一条记录就会泄漏100K左右内存,只是因为该代码自己创建的类实例没有释放,释放了就好了。这个问题查了很久,如果该段代码的作者习惯于自己创建的对象就自己释放,就不会需要多个人费劲心机来跟踪查找,还怀疑到ADO、Midas、三层结构有问题。
      对于程序员,很多事情都没有对错,只是习惯,比如遵循命名惯例书写惯例、写注释、使用try...finally...end来保证资源释放等,坏习惯的累积最后导致软件出现一些不容易查找的疑难杂症,好的生活习惯会意味着好的生活质量,好的编程习惯也会意味者好的产品质量。
    #dao 发表于2004-08-24 10:40:00  IP: 202.100.240.*
    比较内存回收的问题的话
    如果说.net要加一个“更”字,那JAVA要加十个“更”字,呵呵
    #vkuja 发表于2004-08-24 12:51:00  IP: 202.45.83.*
    如果我们的后代还在用的话就好!
    #ng 发表于2004-08-24 10:40:00  IP: 220.194.176.*
    这些比较一点意义都没有
    具体项目具体对待,每天没事干做点有意义的事.时间多的不行了?

    用J2EE开发中小型企业产品的确是杀鸡用牛刀,人是活的,该用的时候再用.可以用jsp+servlet+javabean
    #不足道哉 发表于2004-08-24 13:04:00  IP: 218.246.63.*
    惊天霹雳!

    1. 一些地方,java运行速度已经超过C++. C#我没有比较,过几天再说
    2。C# , .net 的问题更多,因为脱胎于问题多多的COM, 所以DLL地狱问题并没有解决,反而加上了一个regasm,regsvr32, register database的地狱
    3。在MS$平台上浪费的时间远远超过java. 而java的变化比.net小很多。这也许是很多人不敢升级到.net 1.1的原因吧。
    最后一句:“坐井观天”常被用来讽刺针砭那些目光短浅、见识有限而又自以为是的人。另一方面,它又告诉我们,一个人认识的形成与所处的环境有直接的关系。青蛙如果不是“天天坐在井里”,怎么会误以为天只有井口大呢?同样,小鸟因为飞行在天上,所以对天的认识和了解自然远胜于井底之蛙。也许对青蛙来说,从“井里”“跳到井口”并非难事,而在人的生活中,要克服自身经验的局限性,开阔胸襟和视野,做到胸怀全局,高瞻远瞩,则并非易事,需要作出艰苦的努力。http://jky.zjnu.net.cn/learn/wlkc/xxywjcfx/pmsj/0306.htm

    我是“坐在井里”听到这么牛的话!
    1.不知老兄能解释一下第一条JAVA运行速度超过C++(第一次听说)是在那些地方,可否将比较的代码拿出来我拜读一下?解析的运行速度高于编译为机器代码的运行速度?难道解析为机器代码时花费的是负的时间?超过光速在编译。。。(头有点大)
    2.“所以DLL地狱问题并没有解决,反而加上了一个regasm,regsvr32, register database的地狱”。.Net的装配件怎么又和DLL扯到一起了?.Net是可以使用DLL,但是装配件根本不用注册表,不知哪里又来的“地狱”?
    3.“在MS$平台上浪费的时间远远超过java”。太抽象了,能不能举个例子我LOOK?是开发效率还是运行效率?是复用性还是维护性?
    #cycker 发表于2004-08-24 16:06:00  IP: 218.18.43.*
    我认为学习Java主要是学习它的oop的思想,
    而其它的关于java的知识学不学就取决于你到底应不应用。

    做一个真正的程序员,就应该注重编程思想;编程于语言之外。
    #zhangxize 发表于2004-08-24 13:13:00  IP: 220.196.158.*
    居然有人说JAVA比C++速度快,第一次听说,在任何地方,C++的速度绝对比JAVA快,因为这是语言本身决定的
    #Crazer 发表于2004-08-24 16:19:00  IP: 61.187.64.*
    我觉得争论那一种语言更好更快根本就是浪费时间,喜欢MS的就去ms喜欢java的就java,做什么项目都用合适的语言和工具,我觉得无论是那种语言都有优点和缺点,对于你的项目来说,用什么效率高就用什么,提高效率赚更多的钱才是企业的生存之路.
    #iooirrr 发表于2004-08-24 13:15:00  IP: 61.157.95.*
    无聊的文章

    一个字:烂


    #ukey 发表于2004-08-24 16:21:00  IP: 218.79.81.*
    讨论这个有什么用呢,认定一个方向去学就行了!
    #cdjjh 发表于2004-08-24 10:56:00  IP: 218.6.200.*
    深有同感
    #云彩 发表于2004-08-24 16:21:00  IP: 218.27.66.*
    用那个平台,是么语言有时么关系?能否做出好系统关键是你的系统要设计得好,否则都是垃圾!JAVA开发的垃圾也不少,其他语言同样。关键是团队有没有好的设计思想!
    #:) 发表于2004-08-24 13:18:00  IP: 221.226.115.*
    java的大多数IDE可都是free ware.
    .net ?, m$哪天要抓了。楼上一大批同志估计要下岗了.
    #hv 发表于2004-08-24 10:58:00  IP: 211.161.36.*
    无聊
    #杨过 发表于2004-08-24 16:28:00  IP: 61.54.63.*
    别吵了,就此打住!
    整天吵来吵去,好好的提高自己的水平才是正事!
    ^_^
    #frankie 发表于2004-08-24 13:29:00  IP: 218.19.249.*
    浮燥不堪!学的一招半式就赶不及炫耀。最讨厌分帮分派,不都是中国人吗?java又不是你的,我也学,他也学,人人学。学一点知深就白眼他人,一个字贱格!我不是特指某人,如果你觉得难受,那么我正是说你!
    #umbrella 发表于2004-08-24 11:02:00  IP: 211.148.219.*
    SUN会解决的,你们说那么多废话干什么。JAVA里面有很多天才,不用你们在这里吐口水,别玷污了JAVA。
    #-o- 发表于2004-08-24 13:30:00  IP: 221.216.12.*
    工人埋怨铁锤太重
    #aderly 发表于2004-08-24 16:34:00  IP: 219.133.29.*
    如果你还在劳苦奔波,还是尽快填饱肚子要紧啊
    說的真對!
    #haha 发表于2004-08-24 13:36:00  IP: 219.238.165.*
    java运行速度已经超过C++. 看java的hotspot,看一下就明白了.
    #A~Z 发表于2004-08-24 13:38:00  IP: 159.226.110.*
    我喜欢Java,但我用C#,呵呵
    #sniperK 发表于2004-08-24 13:42:00  IP: 219.133.185.*
    不要过分相信和依赖freeware,举个简单的例子,可能他们硬着头皮做出free ware 的IDE,但他们决不可能再做出MSDN这样的资源库,MSDN在提高开发效率上的帮助所带来的效益早已经超过了free ware所省下来的¥
    #zl 发表于2004-08-24 16:52:00  IP: 222.82.65.*
    JAVA在某些方面确实可以比c++运行的快,比如大规模的矩阵运算
    #to 摩登原始人  发表于2004-08-24 22:49:00  IP: 221.232.65.*
    摩登原始人 :oracle的核心都是java写的吧,
    从oracle9i开始改成java的。
    #sniperK 发表于2004-08-24 13:43:00  IP: 219.133.185.*
    痛快!

    【浮燥不堪!学的一招半式就赶不及炫耀。最讨厌分帮分派,不都是中国人吗?java又不是你的,我也学,他也学,人人学。学一点知深就白眼他人,一个字贱格!我不是特指某人,如果你觉得难受,那么我正是说你! 】
    #Starboy 发表于2004-08-24 23:01:00  IP: 222.248.18.*
    我说的jAVA 某些方面快过C ,或者接近,均是大体正常条件,并不是放在不利于C而单纯对JAVA有利的条件下进行的。否则也没有比较意义。

    JAVA 除GUI外的大部分情况下的性能十分接近或超过C/C++,没有必要不服气。虽然各类评测不是很一致,但大量的开发实践也可以间接证明这点。大家遇到JAVA较慢的应用,基本上都是GUI方面的,而GUI方面的程序给大家印象深刻,于是容易产生JAVA慢的错觉。而GUI应用开发,并不是JAVA的长项和主要应用。

    至于说有没有用JAVA开发数据库和操作系统,或者大型软件。这个显而易见,ORACLE 、DB2是基于JAVA的,很多模块都是JAVA开发的,也有纯JAVA开发的数据库,如POINTBASE。 操作系统也不能说完全没有,SUN上就有一个桌面系统项目,可以说是准操作系统了。大型软件就更多了。

    最简单的比较例子。用好的纯JAVA WEB服务器(如weblogic, websphere, tomcat)和用好的C/C++的WEB服务器相比(如APACHE IIS),大家也可以发现,他们的并发性能、稳定性、处理速度、数据吞吐量也是差不多的。由此可见,在除GUI 以外的应用,这些语言达到同样应用的最终性能是差不多的,那么总体来说,两种语言的本身性能也是在同一水平线上。软件间的微小差别,只是开发人员的水平差别,或者侧重点不同造成。我觉得这样比较可以避免以偏盖全。能全面综合的反应一个语言的性能水平。

    #宪哥 发表于2004-08-23 22:13:00  IP: 220.234.138.*
    OO的目的还是为了复用和重构,如果跟一个工程跟上几年,就知道这些才是工程生命周期的关键。而构建只是一个开始。
    #hj 发表于2004-08-24 23:07:00  IP: 218.93.78.*
    java 和 .net 都不是本国的东西
    你们支持的再 好 万一他们倒闭了
    我们难道 回去用C

    有 时间 还是为 四化建设 作出点 贡献坝
    #。。。 发表于2004-08-24 13:50:00  IP: 219.140.81.*
    说java运行速度超过了C++就代表你不懂c++,也不懂java。
    #dgt 发表于2004-08-24 17:01:00  IP: 202.107.194.*
    争什么争?两个都学不就得了,谁规定了一定要选其中之一?
    #SGP 发表于2004-08-24 23:14:00  IP: 218.109.76.*
    个人认为虚拟机上用统计预测,可能会在某些高层计算上有速度优势,这种优势应该是建立在优化预测基础上的,因为是编译时自动实现,省略是人工的编程工作,所以会给人感觉速度高于C++,如果C++中人为的增加这种机制,速度是绝对不可能高于C++的。
    (就如果在C++中打开/关闭编译优化的概念差不多)。
    #Starboy 发表于2004-08-24 17:17:00  IP: 222.248.18.*
    大家可能一直觉得JAVA很慢,两年前你是对的,现在要看什么情况下。看了以下,大家也许不相信,建议大家试着找找国外一些较全面的综合评测,包括JAVA之父也说过,大家要改变对JAVA性能的看法,JAVA并不慢,比大家想像的要快很多,许多国外评测,在评测后,也表示了惊讶。

    大体来说,JAVA慢的地方是界面部分,也就是在桌面应用方面要比VC慢约三-五倍。这就是为什么使用那些IDE时感觉慢的原因,尽管目前1.4有了大幅提升,但和VC比仍然还是慢。ECLIPSE在界面的速度上又有了长足的进步。但仍需努力。

    就其它方面来说,应该说JAVA和C++甚至C都非常接近,部分甚至超出。也就是说,在很多方面,性能的影响已经没有必要去过多考虑了。

    如:
    数学运算:由于JDK1.4 的BUG,除大数运算(bigdecimal)奇慢外(1.3版的大数运算是很快的),其它均已十分接近或达到大部分主流C编译器生成的代码的性能,在整数运算上(希望我没记错)甚至超出C的水平。大数运算的BUG不知道是不是得到更正了,还好,除了加密之类的少数应用外,很少用到大数运算。

    字符串操作:略慢,但已基本上在同一水平线上。
    IO操作:总体上和C接近。

    在和C#的比较中,JAVA和C#互有高低,总体来说,性能在同一水平线上。

    另外,由于JAVA语言本身的简洁性,同等技术水平下,错误率要低些,同时由于语言结构的简洁,也更容易发挥出本身的性能水平。

    在本人的实际开发中,在不怎么涉及GUI的情况下,JAVA写出的程序的性能完全可以和C++相比美。

    比如人机博弈就是比较考验程序各类运算性能的一类相对综合性的程序,其GUI界面的部分对主体性能没有什么影响,主要是算法和编程技巧。使用基本相同的算法,JAVA和用VC++编写的五子棋软件,经过较充分优化后,达到同样搜索深度所花的时间基本上是差不多。记得世界五子棋软件比赛,第一名是俄罗斯的黑石,俄罗斯的数学水平大家都知道,该软件的算法和编程也是一流,第三名就是中国的一位用JAVA编写的SuperFive。虽然算法不同,没有绝对的可比性,不过由此也可见,JAVA现在在很多方面的性能已经不再是大家印象中的那么差了。如果真如大家所说,JAVA的性能仅是C的三分一甚至五分一,如果在起跑线上就差了三倍的话,无论你算法如何高明,在人工智能这种对性能要求苛刻的领域,要想在顶尖的博弈算法较量中获胜,几乎是不可能的。

    总之,如果你不是对界面的性能要求苛刻的话,完全可以忽略JAVA和其它任何一种语言的性能差异,但是由此带来的诸多好处,却让你享用不尽。你可以专心的去实现你的设计、功能、想法,又快又简单,尽量少的约束和优雅语言结构。

    我的建议,考虑是否用JAVA,尽可以从其它方面比较斟酌,性能你不用太费心了。
    #jk 发表于2004-08-24 23:30:00  IP: 218.58.249.*
    .net要学,java也要学。。。。。。
    #我真为楼主感到痛惜 发表于2004-08-25 11:59:00  IP: 61.185.224.*
    哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

    一大堆垃圾充斥着程序员队伍,你这样的人也算是JavaFans???

    拜托不了解情况的垃圾不要乱发言,我真是服了

    无言。。。。。。。。。。。。。。。。。。。。。。。。。
    #gpinfo 发表于2004-08-24 17:22:00  IP: 219.139.35.*
    JAVA有问题是不错,但SUN公司的问题更大,我都很怀疑我选择java是否正确
    #wayne zhang 发表于2004-08-24 14:17:00  IP: 222.64.24.*
    c#,java这类解释型的语言永远也比不上c/c++的编译型语言.
    特别是在将来64位计算机中.
    我看过byte code的定义,虚拟机非常像以前所说的Pcode机.
    所有的虚拟机只有一个算术/逻辑运算器,也就是说在两个操作数的情况下,
    必须先将两个操作数压栈,然后进行计算后再存放到算术/逻辑运算器中,
    或者也可能将结果存放到堆栈中.
    例如,你要计算A+B+C的值,
    虚拟机一般如此定义操作
    Push A (将A压栈)
    Push B (将B压栈)
    Add (将堆栈里的两数相加到算术/逻辑运算器中, 假设为RegA)
    push RegA (将结果再压入堆栈,以便进行下一步计算)
    push C
    Add (将结果与C相加)

    由此看出虚拟机也被称作是stack computer

    而不是像c/C++那样产生的间接代码
    load reg1, A
    load reg2, B
    add regA, reg1, reg2
    load reg3, c
    add regA, regA, reg3
    由此看出c/c++编译产生的代码跟接近实际计算机, 因为实际的计算机
    是register computer.

    上面的操作看似语句数相等,但执行速度相差很大
    虚拟机中的ADD,是要从内存(堆栈)中取出两个数, 而c/c++产生的代码
    add rega, reg1, reg2却是直接寄存器操作.
    我们知道,寄存器是在CPU中的,他的访问速度比内存访问速度快好几个数量级,
    尽管现在出现片内的cache,但其速度还是会慢,而且有时cache内的数据可能
    被切换到内存中.

    Intel新推出的64位itanium中就有几百个cpu片内寄存器, 如果使用专门为这种
    cpu设计的c/c++编译器,产生的代码将有大部分操作在寄存器中,其执行速度大大提高.

    既然register computer这么好为何不在虚拟机中使用呢?
    其原因不言自明, 为了跨平台(跨CPU)! 在实际生活中, 大部分的服务器的芯片都是
    register computer型的(如Intel, AMD, PowerPC), 而大多数嵌入式芯片都是stack
    computer型的, 因为嵌入型的cpu应尽量设计的小, stack computer由于片内只有一个
    寄存器则使CPU较小.


    在编译原理的代码优化理论中有一类被称作寄存器分配的算法,(当然有许多实际算法)
    其基本想法是先设定一定的寄存器数量, 然后在变量分配时尽量分配给寄存器.如果寄
    存器数不够才分配给内存.但这些算法(基于过程,着色图法)都相当复杂.所以在java和
    c#中均未采用.
    因此严格地说, 在某些嵌入式计算机中java程序可能运行在与c/c++相同的数量级上.
    但在服务器中(特别是将来拥有大量寄存器的64位计算机中), 其运行效率可能相差好
    几个数量级(特别是在运算密集型应用中).
    #搞笑 发表于2004-08-25 12:04:00  IP: 219.239.109.*
    哈哈,真够可以的,一群中国人为了外国人的东西争来争去的,这个不好那个好的,我看就你们说的好,有种自己去写一个语言出来,没种就好好的做你的开发去吧
    #四化建设 发表于2004-08-24 23:43:00  IP: 211.144.195.*
    C 也不是本国的东西。整个计算机技术都不是本国的东西。
    我们中国在计算机技术上没有任何贡献。
    其实,其他领域也是。这个问题是有原因的
    #Prayer 发表于2004-08-24 23:45:00  IP: 211.91.223.*
    兄弟们,不管是java还是c都只是一种工具。
    就像菜刀和水果刀一样!
    一种工具是不能适合所有的开发条件的!
    #井上小鸟 发表于2004-08-24 14:20:00  IP: 211.144.195.*
    一听说java运行速度超过了C++却不能相信,

    难道你们自己连动手写一个循环测试的能力都没有。
    我写了,的确java快,这证明我的寓言很棒!也说明我起码比那些浮躁的中国人牛。我懂java还有C++.哈哈
    对了,我的jdk是1.41,VC++6.
    ------------------------------
    不服你就说
    #bird 发表于2004-08-24 14:20:00  IP: 211.144.195.*
    有“故事”是寓言的特点之一。但寓言中的故事一般较短,不作曲折复杂的情节描写,这是寓言故事有别于童话故事之所在。<br>
      先看课文的第一节,简短的两句话交代了各自所处的位置,为下文的对话提供了背景,并从某种程度上预示出由于生活环境的不同,双方对事物(“天”)的认识可能出现差异。这是故事的序幕。<br>
      对话是由青蛙挑起的,这与第一节的用墨顺序相一致。因为井里光线较暗,刚飞落的小鸟难以一下子看清井里的一切;而青蛙则不同,它在暗处,对小鸟这一不速之客的飞临看得清清楚楚,由它主动招呼正是情理中事。它像主人似的询问小鸟:“你从哪儿来呀?”语气是平和的。活泼的小鸟也如实地说明了来意,不仅说明了“从天上来”,而且说明了来的目的--因为“飞了一百多里,口渴了”,所以“下来找点水喝”。<br>
      真是“言者无心,听者有意”,问题就出在这“一百多里”上。因为在青蛙的心目中,天只有井口那么大,怎么能飞行一百多里呢?基于这种认识的差异,对话就由-般性的招呼应答,转入对天的大小的讨论,情节就向前推进了-步。青蛙的话语逻辑是,“天不过井口那么大”,所以不用“飞那么远”,而小鸟却说“飞了一百多里”,可见小鸟是“说大话”,是诳语。对于青蛙的少见多怪,小鸟并未反唇相讥,它诚恳地、冷静地也是善意地予以纠正:“你看错了。天无边无际、大得很哪!”而青蛙不但毫无触动,反而“笑了”,这“笑”是不以为然的笑,其内心独白是:我对“天”太熟悉,太了解了,休想蒙得了我!“我天天坐在井里,一抬头就看见天。我不会弄错的。”这里用“天天”、“一……就……”表明对“天”的观察和了解不仅时间久,而且极便当,意在强调见解的可靠性。却不料这样一来,其错误的症结所在反倒一清二楚了。于是小鸟也“笑了”。这个“笑”是恍然大悟的笑,是忍俊不禁的笑。但话语仍是诚恳的、与人为善的:“朋友,你是看错了。”这个“是”,有着重、强调意味,表示肯定的不容置疑的语气。“不信,你跳出井口来看一看吧。”小鸟一针见血地点出了问题的要害:“坐在井里”便会以为天只有井口那么大,而“跳出井口”自会发现“天无边无际”。故事在高潮处嘎然而止。<br>
      对寓言来说,故事不过是寓意的载体,寓意才是故事的灵魂。本文的故事浅显而生动,寓意则深刻而丰富。它一方面说明看问题,认识事物,站得要高,看得要全面,不然就会像坐井观天的青蛙那样犯了错误,还浑然不觉,自以为是。正因为如此,“坐井观天”常被用来讽刺针砭那些目光短浅、见识有限而又自以为是的人。另一方面,它又告诉我们,一个人认识的形成与所处的环境有直接的关系。青蛙如果不是“天天坐在井里”,怎么会误以为天只有井口大呢?同样,小鸟因为飞行在天上,所以对天的认识和了解自然远胜于井底之蛙。也许对青蛙来说,从“井里”“跳到井口”并非难事,而在人的生活中,要克服自身经验的局限性,开阔胸襟和视野,做到胸怀全局,高瞻远瞩,则并非易事,需要作出艰苦的努力。
    #狗狗 发表于2004-08-24 17:33:00  IP: 211.136.253.*
    汪汪汪!!
    #可怜 发表于2004-08-25 12:24:00  IP: 61.144.49.*
    我只能说楼主对java知之甚少,而且楼主肯定是迷恋RAID工具的人.
    只能说太浮浅了.
    难道你想变成只会用微软那些快速开发工具的傻瓜吗!
    微软是在猪化程序员,让它们什么都不懂,只需要会用它们的工具就行了.
    #mark 发表于2004-08-25 12:49:00  IP: 221.10.4.*
    不要使用侮辱性的语言,不然别人会说你妈没教养好你。
    #tangzy 发表于2004-08-24 14:25:00  IP: 218.93.6.*
    都是美国人的东西,有什么好争的。一打起仗来我们都玩完!
    #斜晖飘枫 发表于2004-08-25 13:21:00  IP: 221.239.14.*
    永远没有最优秀的计算机语言,但会有最优秀的程序员。
    大家把用在这种没有意义争斗上的时间用在学习上,也许你就会发现java并不像你想象的那么次,C#也有许多令人激动的地方。
    #JavaFans 发表于2004-08-24 14:26:00  IP: 211.144.195.*
    1.我们知道,寄存器是在CPU中的,他的访问速度比内存访问速度快好几个数量级, 尽管现在出现片内的cache,但其速度还是会慢,而且有时cache内的数据可能 被切换到内存中. Intel新推出的64位itanium中就有几百个cpu片内寄存器, 如果使用专门为这种 cpu设计的c/c++编译器,产生的代码将有大部分操作在寄存器中,其执行速度大大提高.

    -------------对
    2.既然register computer这么好为何不在虚拟机中使用呢?
    其原因不言自明, 为了跨平台(跨CPU)!
    -------------错
    jvm不是跨平台的,jvm本身使用机器相关的实现。再加上JIT.
    节约了大量程序load时间。能不快么?

    为什么bea的jrockit很快?就是针对x86进行了优化。
    后来sun也采用了类似的技术。所以java比C++快

    明白了,小青蛙们,跳出来吧

    welcome to java world ,.


    #Benson 发表于2004-08-24 17:38:00  IP: 221.15.224.*
    HelloWorld.我们在努力say Hello!
    #test all 发表于2004-08-25 13:21:00  IP: 211.98.111.*
    1. 一些地方,java运行速度已经超过C++.

    这个"一些地方"值得推敲

    一些地方,中国远远超过美国
    一些地方,你比bill gates还牛
    #偶 发表于2004-08-25 00:15:00  IP: 218.64.49.*
    三个字,没意义
    #tangzy 发表于2004-08-24 14:27:00  IP: 211.144.195.*
    tangzy是典型的粪青,你有种用大刀长矛和鞭炮和鬼子干?
    #怀疑 发表于2004-08-24 14:28:00  IP: 218.19.195.*
    2004-08-24 2:20 PM 井上小鸟
    难道你们自己连动手写一个循环测试的能力都没有。
    我写了,的确java快,这证明我的寓言很棒!也说明我起码比那些浮躁的中国人牛。我懂java还有C++.哈哈
    对了,我的jdk是1.41,VC++6.


    贴出你的测试代码吧,让大家看看你的c++写的怎么样。
    #Starboy 发表于2004-08-24 17:41:00  IP: 222.248.18.*
    我上面说了JAVA速度比C或者C++快,和C#同一水平。也许有人就会说,你写个JAVA和C 的评测程序看看,比比到底谁快。

    严格来说,要准确的做出评测是很难的,这也是许多评测的数据也相互不一致的原因。这就有点类似中国散打和泰拳谁厉害一样。应该说差不多,我也只能说差不多,也就是学哪个,学好了,用两个拳种打架难分高下,或者中国散打略好点吧,目前对抗成绩是如此。也就是说泰拳的技击水平和中国散打在同一水平线上。我们也只能通过类似对抗赛这样尽量统一规则的情况下进行比较。大体上能从成绩上说明一定问题。

    同样的JAVA和C对比也是一样,通过大量的应用软件,通过大体相同条件的代码测试,大家大体可以得出结论,很多方面JAVA和C接近或差不多。绝大部分人知道这个结论就可以了。如果一定要测个绝对准确是很难的。比如我写了一段JAVA的程序和实现同样功能的程序,测出来,JAVA更快些,于是用C的就不服气了,说我的JAVA程序比C程序写得好,然后写一段经过进一步优化的代码来比,结果又比JAVA快了很多。然后JAVA派的也不服气,说STARBOY的JAVA水平只是二流,又请一个JAVA的一流高手写了一段更优化的,结果又胜出。然后C派的又说,我们用的编译器不是最佳的,我们要改用INTEL最新优化的编译器,JAVA又说我们还没加优化参数。。。。

    哈。。。评测和实际开发表明,JDK1.4在除界面以外的很多方面的性能确实和其它语言差不多了。
    #无聊 发表于2004-08-25 00:22:00  IP: 202.105.153.*
    他们只是工具,现在是人在使用工具。。不是工具来使用人。真搞不明白。争来争去。只是为了在自己虚伪的外表标注上一个阿Q式的圆圈来满足自己内心的自以为是的虚荣,结果却发现所有的这一切都是那么可笑。
    #善意的小鸟 发表于2004-08-24 14:32:00  IP: 211.144.195.*
    请把“天”改成“JAVA的运行速度”,
    请把“飞了一百多里,口渴了”改成“JAVA跑得比C++快”
    请把“天不过井口那么大”改成“JAVA用C++解释执行”
    请把“你看错了。天无边无际、大得很哪!”改成“你错了。在一些JIT技术的运用下JAVA在一些方面已经超过了C++的运行速度”
    请把“我天天坐在井里,一抬头就看见天。我不会弄错的。”改成“我3岁就学编译原理数据结构,我不会弄错的。”
    。。。。。。

    #平凡 发表于2004-08-25 00:26:00  IP: 221.194.1.*
    java 的运行速度目前是无法和c/c++相比,
    java的伪代码能和机器码比速度吗?
    争论这些有意义吗?
    还是别打口水仗了把精力放在更有用的事上吧!
    #wayne zhang 发表于2004-08-24 14:33:00  IP: 222.64.24.*
    JIT难道不是把字节码载入,并进行代码优化的吗?只要有字节码, 就只有一个寄存器, jit也不能把类似Add的语句翻译成add reg1, reg2, reg3这样的汇编代码.
    #sunmast 发表于2004-08-25 14:03:00  IP: 211.144.20.*
    那些说java比c#快甚至比c++还快的人们
    你们就自己一个人在家里不停的sy好了
    #Drizzt 发表于2004-08-25 14:10:00  IP: 210.82.117.*
    都在吹捧自已用的东西有多好,有多快,好不无聊~~~
    都是中国人,争个鸟,有种做一个比人家快的好的出来
    #平凡啊 发表于2004-08-25 00:34:00  IP: 211.144.195.*
    平凡你为什么叫平凡。

    java整数速度的确比较快。你难道无法自己写段代码来验证一下么?抱歉,我不提供代码。因为这是非常初级的程序。
    #你懂什么? 发表于2004-08-24 14:33:00  IP: 165.21.7.*
    你懂什么????
    #cccc 发表于2004-08-25 14:56:00  IP: 218.104.129.*
    oracle和db2是用java开发的,真是搞笑,那两个公司不会闲着没事要用java把以前的程序重写吧。
    #yscfdavid 发表于2004-08-24 14:34:00  IP: 218.98.129.*
    一群学出问题的程序病人
    #乱说一通 发表于2004-08-24 14:34:00  IP: 165.21.7.*
    乱说一通
    #b828 发表于2004-08-24 17:59:00  IP: 219.238.143.*
    哎呀!这么争来争去的有什么意思吗?

    这倒把C/C++看成MS独有的东西了。难道C/C++程序员都是姓MS的吗?

    Java是耗内存,载入速度慢,那是由虚拟机及byte code的特性决定的。其实当把类载入内存,程序运行起来以后,速度也不慢呀!

    单纯的比速度没有太大的意义,用C/C++写程序,用不同的编译器编译或者用不同的优化策略,执行的时间可能都不一样,有时候相差特别大。单纯比较某一种测试、或者在MS Windows上的运行速度又有多大用呢?

    再说.NET和J2EE,只是个人习惯问题,有些人可能去公司的时候,加入的小组正好是用.NET,然后就维护.NET;如果正好是用J2EE,那么就维护J2EE,这也是人之常情。谩骂有什么意思?那某人如果加入的小组只是在后台用C开发,一般不接触.NET或J2EE,那它不是要两个一起骂?
    # 善意的小鸟  发表于2004-08-24 14:38:00  IP: 211.144.195.*
    1.不知老兄能解释一下第一条JAVA运行速度超过C++(第一次听说)是在那些地方,可否将比较的代码拿出来我拜读一下?解析的运行速度高于编译为机器代码的运行速度?难道解析为机器代码时花费的是负的时间?超过光速在编译。。。(头有点大)
    〉〉这是因为JIT技术的运用
    2.“所以DLL地狱问题并没有解决,反而加上了一个regasm,regsvr32, register database的地狱”。.Net的装配件怎么又和DLL扯到一起了?.Net是可以使用DLL,但是装配件根本不用注册表,不知哪里又来的“地狱”?
    〉〉.net没有用注册表?这可是你说的。
    〉〉还有请回顾一下dll hell的定义
    3.“在MS$平台上浪费的时间远远超过java”。太抽象了,能不能举个例子我LOOK?是开发效率还是运行效率?是复用性还是维护性?
    〉〉有多少人迷失在MSDN中,有多少人宣称他发现了MS¥未公开的秘密,这就是问题所在,为什么在java上没有人说他发现了JAVA未公开的秘密?我理解是,ms提供的技术support远远不如java好。这就是唯一的秘密!
    #C# 发表于2004-08-25 00:47:00  IP: 218.17.77.*
    呵呵,争论的挺激烈的嘛。
    看一个简单的实例:matlab 7.0, 一款最优秀的科学计算软件,
    用 java 做界面,用 C 做数学函数,人家不会相信什么java快过c而倒过来用的。
    就象前面有人说的,真正要求速度的实时系统,用java肯定玩完,
    用fortran 和 c 倒是很多。
    如果总讨论个什么MIS,B/S 这些当然比较不出java和c的速度上的优缺点。
    C#取代C++是大势所趋,不信就继续抱着java睡罢。

    #难道你们自己连动手写一个循环测试的能力都没有。 发表于2004-08-24 14:40:00  IP: 211.144.195.*
    难道你们自己连动手写一个循环测试的能力都没有。
    #四化建设 发表于2004-08-25 00:50:00  IP: 211.144.195.*
    matlab 7.0, 一款最优秀的科学计算软件,
    用 java 做界面,用 C 做数学函数,
    是因为原来大量的C代码需要重用。
    拜托你咚咚脑子
    #许总QQ44567953 发表于2004-08-25 16:08:00  IP: 218.19.148.*
    本人前两星期还在看软件设计师的书,看到后面居然明白一个道理:上面的理论没有任何一条是中国人提出来的!中国人用老外的理论来考自己!
    所谓的专家也是在天天喊口号,讲计算机原理,现在连计算机核心芯片都没有,我觉得喊着也没有意思!。
    #Eudemon 发表于2004-08-24 18:05:00  IP: 218.19.214.*
    高端的应用J2EE是很昂贵的,这点大家应该很清楚吧,希望没有大家没有异议。
    低端的应用,我相信大家主要是使用一些开源软件来实施的。
    中间的呢?估计会混合使用不同的软件。估计部份是高端的,部分是开源的。
    那么样的情形,会使我们进入一个很复杂的境地。
    一个问题的解决会和其他另外一个问题绑在一起,这样做法是相对来讲比较危险的。
    开源软件到底会怎么走,走向何处是一个很复杂的问题。开源软件他现在还处于免费午餐的阶段。但事实证明给我们的是:这个世界上并没有免费午餐。所以,以后的事情还很难说。
    能否两边都抓,两边都不放。
    #anliu 发表于2004-08-25 01:14:00  IP: 221.232.86.*
    反正java,做网站的数量远不如.net
    起码 .aspx 后缀名的网站
    现在已经满天飞了。
    jsp 的连 PHP 都比不过。

    这都是实话。。。。不要骂我。

    -------------那么你看看网易,搜狐,网站用的什么技术,都部分采用了JSP,但没采用.net,新浪既没用JAVA也没用.net,总之采用asp.net的我也没发现几个,你说的漫天飞从何而来,还事实呢?你贴出几个网站让大家见识见识呀,还有,你用google搜索一下c#和java ,看看搜索的结果,c#连JAVA的零头都达不到.
    #ROBEON 发表于2004-08-25 16:18:00  IP: 222.241.219.*
    路过
    #java的速度? 发表于2004-08-25 01:15:00  IP: 219.137.15.*
    java最后运行的一切机器指令都是可以用c程序完全模拟出来的,因为java虚拟机肯定是c或者c++实现的,所以说速度超过c肯定是表面现象。除非sun公布java执行的细节,否则所谓测试只是数字游戏,sun对java的宣传实在是应该受到鄙视。
    #I don`t like JAVA  发表于2004-08-24 14:44:00  IP: 219.149.222.*
    如果java速度的确比C++快,那以后做游戏都用JAVA了?
    #wangguan007 发表于2004-08-25 16:21:00  IP: 210.211.5.*
    oracle9是用java开发的,没错。
    #.net 发表于2004-08-25 16:22:00  IP: 220.160.215.*
    哈哈我就喜欢.net你们不服气去跳楼啊1
    #善意的小鸟 发表于2004-08-24 14:49:00  IP: 211.144.195.*
    to: I don`t like JAVA
    请注意,我说是一些方面啊。
    现在有不少优秀的游戏也是用java写的。
    #wayne zhang 发表于2004-08-24 14:56:00  IP: 222.64.24.*
    新的更高性能的计算机首先推出的是c/c++编译器, 据说现在Intel的c/c++编译器效率最高, 超过了gcc, vc.
    #java大虾 发表于2004-08-24 19:04:00  IP: 219.148.146.*
    本人业余时间一直在用JAVA做一个较为复杂的工程图表显示与数据处理程序玩。也曾用过VB与VC++。在某些方面JAVA的确比C++要快。并且我用JAVA设计的程序在图像显示与数据处理上比VC++数万元的专业商业软件的速度一点不差。程序的速度的关键在于程序良好的结构与发挥类库某些速度上的优化的优势,如图像缓冲,数据缓冲等。

    JAVA比C++某些方面要快,这么弱智的问题还有人需要解释。首先JAVA是完全可以编译运行,而不是解释运行,并且可以在不损害跨平台的条件下动态编译。其次C++是用new在系统内存的堆中来创建新的对象,而JAVA的内存机制与堆的内存管理机制是不同的,因而在创建新的中小对象的速度上,JAVA要比C++快得多,尤其是小型对象的创建速度。再次,JAVA中并不是没有指针,而是除了基本类型外,其余所有的对象都是用指针来操纵,这个指针也可以称为对象的句柄,因而其速度同C++一样也是很快的。JAVA耗费内存是多,但是较当前的电脑配置一般都是没问题的。不是JAVA有垃圾收集,内存就可以随便浪费,如果程序特别耗内存多半与程序结构有关系。不过JAVA程序的启动速度确实慢一些。
    再有JAVA是源代码开放的。我在编程遇到一些类似的图形设计问题时中可以参考JAVA的源代码,看看别人是怎样做的。
    #Perry 发表于2004-08-25 07:07:00  IP: 213.107.224.*
    无聊

    这种比较有意义吗?如果说速度,有哪种语言比汇编更快?可是,你会拿汇编来写一个动态网页或者基于图形界面的应用程序吗?在这里吵来吵去的人有多少人会用3种以上语言?又有多少人用过2种以上的操作系统?不同的语言,都是为了特定的应用环境而诞生的,否则现在就不会有那么多种语言“百花齐放”了。再说回来,java本来就不是为了取代C++而产生的,它的功能和应用领域和C++只有一小部分是相同的,如果就在这一小部分相同点里面进行比较是没有意义的。要说操作系统,传统操作系统是用25%的汇编和75%的C实现的,但是说复杂的高级的应用,尤其是含图形界面的应用,有多少是用纯C来实现的呢?大家都只到vb和delphi运行效率不及C++高,为什么还要用呢?当然是为了特定的应用的需要。没有一种语言是万能的,只要你能够把它用到合适的地方就可以了。现在组件编程在应用开发中显示出越来越重要的作用,java在组件编程中还是有相当的优势的。甚至可以说java在一定程度上还推动了组件编程。很多关键应用现在正在用java实现(有不少在线游戏的服务器程序就是用java写的,Oracle数据库用java全部重写了一遍),这些足以证明java是一个优秀的语言,可以被用在重要的,关键的应用上。但是,并不因此就说其他语言不优秀了,其他语言都不值得用了。这个世界本来就是多元化的,各种不同的东西都有其自己存在的必要,不必去苛责。另外,这个世界也没有万灵药,没有大一统的解决方案。所以,还是尽量在各个具体的领域选择合适的应用开发平台。

    正是因为组件开发显示出越来越重要的地位,而java几乎是唯一选择和事实标准,微软才退出了.net与之抗争。微软为什么把.net作为其最重要的战略,可以看出它对组件编程的未来的重视。当然,我丝毫不怀疑同样的构件策略下.net的性能会好于java,因为.net只为windows平台进行优化,而java则是为所有平台而考虑,兼容就意味着妥协,而这种妥协则体现在性能上。其实.net也为了com而妥协,而这种妥协,我个人认为是完全走错了方向,因为.net的架构设计和com是完全不同的,为了这种兼容,也给.net蒙上了阴影,走入了dll hell。微软是为了体现对过去产品的延续性支持而在.net里面继续支持com,但是这只是口号而已,现在微软已经停止支持com和dcom,在.net 2.0里面应该可以放开手脚了。

    总之,对大多数人来说,都是处在应用开发层面的,用java或者.net会大大节省开发的时间。这些高级语言对开发人员入门的要求并不如c++之类的语言高,但是要写出高性能的应用来,对开发人员的要求还是非常高的。如果你要做底层的操作系统层面的开发,就要多看看c,甚至汇编。学习编程是一个螺旋形的过程,你会不断回到原来的区域,但是站在不同高度看。实现和优化也是一个20/80过程,如果要实现某个功能花去20%的时间的话,优化它要花80%的时间。与其在这里争吵,还不如回去看看书,看看别人写的优秀的代码,提升自己的代码水平。另外,如果你想到30岁的时候拜托因只会写代码而被23岁的应界生抢走饭碗的话,最好多掌握几种语言,多学习几种操作系统。而不是在这里钻牛角尖。C++快还是java快,关我什么事,不会因此而加我的工资或者减我的工资的,如果我都会,我就有饭吃了。

    祝大家愉快
    #ayya__(*)hotmail.com 发表于2004-08-25 16:34:00  IP: 211.137.110.*
    [正如当年的Unix与Dos、Windows]

    这句话比较傻...
    #Perry 发表于2004-08-25 07:09:00  IP: 213.107.224.*
    错别字不少,请原谅
    #doodoofish 发表于2004-08-24 15:01:00  IP: 66.159.225.*

    作者挺可爱的。我有几句话要说:

    Visual Studio.NET是用C写的,它的速度理应比用Java写的Ecilpse和 JBuilder快。 速度是C的优点, 拿Java和C比速度不能说明什么啊。

    C#的垃圾回收机制和Java的类似,说Java因为有了垃圾回收就比.NET慢也是无稽。

    OOP是现代编程历史中最重要的发现,它的重要性远超出Java本身。 不知道作者为什么如此讨厌OOP。 除非你是做系统级别的东西或小程序,那样的话用过程化编程也无不可,但作者好像是搞应用程序的,如此怀念过程化编程似乎没有道理。 另外,作者说的Delphi其实也是OOP的。

    上面有位同行说Java社区没怎么学MS好的地方。第一,MS在程序开发领域好的地方主要有两个: XML WebService和集成环境。 很高兴告诉这位同行,Java社区的XML WebService能力其实已经超越MS力推的.NET。两年前,MS在XML和WebService领域是先锋,当年SUN甚至还不是XML WebService的积极参与者。 但就在过去的两年里,Java社区在XML和WebService领域奋起直追,到现在已经形成了对XML和WebService的强大支持。 Dom4j, JDom, Apache Axis等著名技术的出现,使得XML和WebService充分为Java服务。Tomcat + Apache Axis支撑起来的Web Service性能上已经超越了.NET的内置WebService实现,而且Apache Axis操作起来容易且更灵活。 MS在Web Service上的优势就这样在两年内被Java社区所抵消并超越。 同样在这两年内,一个Eclipse从无到有, 其提供了一个灵活和可扩充的开发集成环境。 两年内,支持它的插件从200个增长到500个,并有越来越多的独立软件开发商开始支持Eclipse插件的开发。 IBM将把它当作开发平台, Motorola把它提升为公司的通用IDE, SAP公司的Java研究员几乎全部作业在Eclipse之上。 才两年时间,Eclipse从无到有并广泛地被业界接受,即使Visual Studio .NET也没有这样的佳绩。 而Visual Studio.NET下一个版本的一些新功能在现在的Eclipse已经提供了。Visual Studio .NET最让人骄傲的所见即所得的可视化设计,也已经在Eclipse里出现,并在不断完善中。 所有的这一切都发生在短短两年之内。 .NET的出现非但没有削弱Java社区的力量,相反是刺激了Java的进一步发展。

    上面也有一位朋友提到MSDN是微软技术的知识库,它大大方便了技术的查询,而java社区则没有丰富的文档支持。不知道这位朋友有没有用过Google, 所有的Java问题几乎都可以在Google上一搜便知,而Google所涵盖的内容远比MSDN要广泛得多。 java社区的创新激情是不可限量的,JDocs.com是一个新成立的Java API文档中心,所有当前使用的Java API文档包括Struts、Log4j、hibernate等都可在那里找到。

    最后再重申一次,J2EE不是什么庞然大物,大中小项目可通吃。 举个例子,小项目可用JSP/Servlet + Java Bean + JDBC,中型项目可选用Struts/JSF + Hibernate/JDO + Sprin
    #刚毕业的菜鸟 发表于2004-08-24 19:46:00  IP: 220.201.32.*
    大家在这里据理力争,真是长见识啊!我想大家也不想成为什么都懂什么都不精的蠢才吧!还是钻研一门学问好!如果能成为j2ee架构师或者是.net架构师中的一个,我想大家都会对自己满意的,当然想成为其中的任何一个都是有难度的!
    #垃圾程序员 发表于2004-08-24 15:05:00  IP: 218.81.204.*
    唉,痛心。这就是国人!!!
    #梁士兴 发表于2004-08-24 19:59:00  IP: 218.21.178.*
    C++是最快的,如果觉得还不够快,可以写汇编进去,反正可以一起编译
    #jingrunx 发表于2004-08-25 08:17:00  IP: 61.232.213.*
    一个竹筒两个底,.Neter一头,javaer一头
    #循环测试? 发表于2004-08-24 15:15:00  IP: 218.19.195.*
    难道你们自己连动手写一个循环测试的能力都没有。 2004-08-24 2:40 PM 难道你们自己连动手写一个循环测试的能力都没有。
    难道你们自己连动手写一个循环测试的能力都没有。

    大多数程序跑的慢的问题都是因为程序写的效率不高,而不是语言的问题。
    所以测试要科学公正还是比较难。这里有人能从理论上证明自己的实验结果吗。
    #++ 发表于2004-08-24 20:25:00  IP: 61.186.117.*
    说这么多干什么?

    编程去。。。
    #... 发表于2004-08-25 16:47:00  IP: 202.98.143.*
    有意义吗?
    #Kendiv 发表于2004-08-24 15:18:00  IP: 61.51.214.*
    不管什么,大家还是努力提高自己的技术水平才是硬道理,不要花费时间讨论这些。
    #FX C90 发表于2004-08-25 09:06:00  IP: 222.182.37.*
    VB做稍微大点的东西非常麻烦
    Delphi还不错
    #稀硫酸 发表于2004-08-24 15:19:00  IP: 218.104.43.*
    大家都是妈生的程序员,不过一些是sun他妈生的,一些是MS他妈生的,重要的是大家都是同行,握握手,多交流,做个朋友吧!邓爷爷说了,不管黑猫白猫,会抓老鼠就是好猫。现在两只猫都挺会抓老鼠的,成绩都不赖,为什么偏偏要分出到底哪只抓鼠速度更快一点呢。说实话,这种争吵很伤各位编程爱好者的感情,本文作者开头就承认他(她)不太懂系统低层,其中言论可能有失偏颇,善意指出就行了,何必大大兴师问罪一番呢?火药味好重啊!!
    #kiler 发表于2004-08-24 15:20:00  IP: 203.86.72.*
    不管什么,大家还是努力提高自己的技术水平才是硬道理,不要花费时间讨论这些。

    这句话说的好。
    #大日本皇军 发表于2004-08-25 17:01:00  IP: 222.183.125.*
    看来,微型软件公司和太阳微型系统公司的策略奏效了。支那人不为自己使用别国的开发语言而感到羞辱,还在那里唇枪舌战,也不知是什么原因?还不如支那事变时的那些“支那英雄”!至少他们不装备日本武器。大和民族就是比你们先进,可以和美利坚合众国在IT市场共同进退,分享亚洲的馅饼。可能你们还不知道,当你们的那个叫什么什么想的286机器到大英帝国征战时,太阳女神和自由女神就已经签订了亚洲电脑市场份额的分配比例,我们可以发展自身的优势:一个做硬件、一个做软件。那时你们还沉浸在刚刚迎来的港澳台的贸易喜悦中:)。掌管着亚洲最大地盘、最多人口和资源的国家,居然连军队都会使用大和民族的计算机和运输车。你们成天叫嚣收复台湾、侵占尖阁列岛,还想灭亡我们,也不想想凭什么!?好了,身为支那猪的弱智们,如果真的要想光宗耀祖,远的你们做不到,劝你们先学学我们的语言,也免得以后交战时误伤了这些好管制的二等国民呀!
    #w 发表于2004-08-24 20:46:00  IP: 221.225.134.*

    >>>>>>>>用C或者C++ 实现,恐怕在zip和连接sqlserver数据库方面就要花掉不少时间了,还有那个ssh,你们自己想想,要在这方面花多少时间。

    可笑,c/c++ 在所有语言中开源项目是最多的,随便找找都是一大堆library,你所用的jdbc,还不是建立在别人的基础上的,他的易用性还不如Delphi组件呢,不了解底层东西,永远都被别人牵着鼻子走,

    java 和 C#之争其实是微软和IBM,sun之争而以。
    #cc 发表于2004-08-24 20:47:00  IP: 211.101.206.*
    java 、C#全垃圾!都是些臃肿、庞大的加上些花骚的“模式”的,最后只不过是实现个MIS的工具!
    它俩是造成程序员工资普遍低下的祸手!

    鄙视这些烂货!!!
    #JAVA 发表于2004-08-25 17:06:00  IP: 218.22.2.*
    楼下得记着关门.
    #Eudemon 发表于2004-08-24 20:55:00  IP: 218.19.214.*
    Java有可能比C/C++快,但这样的条件是很苛刻的。
    存在于快可能性主要体现于虚拟机对代码的优化上。
    我学习的主要是微软的.NET技术。在Jeffrey.Richer大师所著的《.NET框架程序设计(修订本)》中的P18页有简单的阐述。虽然说的是C#和C/C++之间的问题,但原理也差不多。
    我把主要的内容写出来吧!
    1.虚拟机的编译器,可以根据不同的CPU类型,生成特殊的CPU指令,使得某些功能的执行效率得到提高。这是使用C/C++编译产生的通用执行代码所不能做的。(当然,我们也可以用专用的优化过的C/C++目标文件取代通用部份,这就类似打补丁)。
    但是,我个人认为,这种机会多吗?有多少执行指令可以被其他高级指令取代,从而达到提高效率?
    2.当虚拟机发现某些逻辑运算肯定是为true 或false时,他可以避免产生真正的CPU执行代码,并针对本地化的代码进行优化,使代码量更小,执行效率也有可能更低。
    3.通过对执行中的代码进行监控,根据其观察到的执行模式,被编译的代码可以被重新组织以提高分支预测的成功率。从而达到提高执行效率的问题。

    所以,我认为,要使java等语言的执行效率高于C/C++,存在一锭的可能性。但并非是一个普遍现象。

    在这里还需要说明的一点就是。C#中所以用的JIT技术,相对来讲比Jvm优秀。他是通过把程序在执行中,编译一次形成本地代码,然后运行的,这段编译好的本地代码会放在代码池中。当这个方法被再次调用时,不会再次进行编译工作,而是直接从代码池中的运行该代码。而JVM的工作原理好像与此有差异。
    所以,以前的测试结果是:
    C/C++> C# > Java。

    至于目前JVM是否已经有所改进,我就不得而知了。但最终还是要看具体应用的。脱离了实际应用来讲,是比较荒谬的。
    我想,要是我们用Java,C#之类的来做天堂2,DoomIII,CS之类的游戏,又或者来做Photoshop,Oracle,DB2,Linux之类的系统,你们谁敢用?
    谁敢用用Java做的数据库系统和操作系统,或者图形软件。或者我们用Java来做导弹导航系统软件?
    大家有兴趣,去看看Java自己的授权使用说明,看看Java自己是怎么样平说自己的使用范围的。
    脱离的应用环境来空泛的谈论是没有意义的。

    鼓吹Java万能,神圣不可侵犯的朋友们,你们有本事用Java来做一个JVM看看。
    #qwycd 发表于2004-08-25 09:14:00  IP: 212.223.91.*
    从理论上讲,Java是不可能和C++,C一样快的编译和执行的,如果抛弃代码优化的话。这也是我们做图像处理的不用Java的原因。包括现在的3D游戏,基本上用C++做,各位有听到过Java的3D游戏吗?Java慢就是慢,各位不要否认,它的优势不在速度上,如果Java运行最快又跨平台,那还要C++和C干什么?

    #Perry 发表于2004-08-24 15:29:00  IP: 213.107.224.*
    最近写了几个应用,发现java在一些领域的确有优势的请大家好好想想,如下应用用其他语言如何完成,大概要多少代码量

    场景1、备份

    备份sqlserver 2000数据库,把所有的database全部dump成文件,然后压缩,压缩以后通过ssh传送到远程的服务器上。
    实现方法:
    先从sysobject取出所有table的名字,创建一个list
    然后循环取出table,执行backup .. to disk='c:\sqlbackup\xxxx.dump'
    然后压缩该文件,压缩完以后删除源文件
    用ssh协议的传输把文件送到远端服务器上。

    连接数据库有jdbc,压缩文件的zip功能java内置了,用ssh传输文件有一个开源的java项目jsch包,只要调用那个包,代码不到50行就可以完成。

    这个任务C#可以在免费代码的基础上完成吗?C#连zip都不肯做,都要调用第三方控件,ssh呢?
    用C或者C++ 实现,恐怕在zip和连接sqlserver数据库方面就要花掉不少时间了,还有那个ssh,你们自己想想,要在这方面花多少时间。
    #C++! go forward 发表于2004-08-24 21:04:00  IP: 222.90.28.*
    你们就慢慢yy着吧。如果猪也能做C++编译器,那么Java一定比C++快。
    #017 发表于2004-08-25 17:10:00  IP: 218.107.197.*
    还是 basic 好...........................................................................................................................................................................
    #wayne zhang 发表于2004-08-24 15:30:00  IP: 222.64.27.*
    我目前还没有比较过jit与c++产生的代码哪个load速度快,我现在来说一下关于load速度, 我们一般使用Java来开发服务器端应用程序,服务器载入的时间的快与慢其实是无关紧要的, 我可以在载入期间不接受客户连接,且待启动后再允许连接, 载入时慢几(十)秒钟我认为并不重要,启动后的响应,快速运算才是衡量服务器的效率的尺度.
    #Starboy 发表于2004-08-25 17:17:00  IP: 222.248.18.*
    1. 各类平台对比,性能一项通常不是最主要因素
    2. 之所以在这里指出性能对比,只是见评论的个别同志仍对JAVA的性能存在很大的误解,只是想在此澄清此点。澄清性能问题,并非表示对JAVA平台的支持,或对其它平台语言的反驳。仅仅是希望告诉大家一个关于JAVA性能新的正确认识。

    3. 既然只是讨论性能,那大家如果对此评论应注意就事论事,不要扩大化,不要扩大到平台之争、语言之争,也就是仅仅对JAVA性能的准确认识。只是希望更准确认识这个客观存在。希望大家认识这个问题思辩的目的性,同时也注意自己表达方法,否则只能被认为你对问题的把握和认识是存在不足的。

    我发现,很多人对JAVA的性能一直存在着误解,包括那些经常使用JAVA开发的程序员也是如此。

    在运算性能上,采用JIT编译技术的JAVA程序不比编译过的C慢。也就是在同一水平,在某些评测中,甚至在整数计算方面略为超出。

    在其它字符串操作、IO操作等方面,JAVA和其它语言的性能均较为接近,基本在同一水平上。

    在GUI方面,JAVA与C、C#等语言仍然有着较大的差距。这也是大家容易以偏盖全下结论的主因。

    另外,在性能比较上,也存在几个容易混淆的概念。
    1、理论性能和实际性能。理论上,JAVA的性能不可能超过C。因为JVM是C写的,在这个转换过程中,不可能存在负损耗,只能尽量接近零损耗。换句话说,JAVA能达到多快,C绝对有办法达到甚至大大超出。 但实际性能是指正常情况下,程序员开发应用时通常会使用的编码能达到的性能。这些编码都不是极致优化的情况,比如为了追求性能极大化,甚至可以在C中插入汇编代码,或者使用各类技巧,使编译出的代码更接近汇编,这些情况的比较就没有太多意义了。在大家通常会采用的编程方式下,二者在运算性能上就差不多了。 JAVA使用JIT动态即时编译后,运行起来后,它实际也是运行编译的本地代码,并不是解释型的伪代码,所以速度和C编译的代码没什么差别。 大量的程序和评测也证明了这点。

    2、如何评价一种语言的性能?主要有两种手段,一个是相同条件下,分别编写同样功能、结构的代码,然后进行多次运行比较。另一个是分别对比用不同语言实现的大体相同功能的应用软件的性能。前者比较有针对性,但由于语言不同,评测者主观倾向的不同,以及评测者对两种语言掌握程序不同,很难写出公平的对比程序。后者针对性差,但由于一个完整应用通常综合应用了一种语言的诸多方面,比较能体现出这个语言的综合性能,这也是一种基于概率和统计的方法,各项因素会产生正负相抵,反而能更准确体现语言的实际的综合性能。

    3、依以上评测方法,用JAVA开发的除GUI以外的应用中,其性能和同类其它语言如C开发的应用程序,基本上是同一水平。至于为什么使用C或者使用JAVA开发,主要并非因为性能的原因,使用JAVA和C或选择其它语言通常因为其它一些因素的考虑而下的决策。比如历史原因、是否涉及到底层硬件操作、团队的语言掌握情况等。

    4、对于JAVA性能,国外技术界的知名人士都有中肯的评价。例如,JAVA之父在接受采访时就表示,JAVA的性能并不比其它语言慢(大意)。《JAVA2核心技术》的作者也在著作中本地方法一章写道,选用本地方方法其中一个原因是最大化代码运行速度。但实际上,这点是极不可能的原因。如果采用JIT技术,用JAVA编写的计算代码速度并不比编译过的C代码慢。

    谨希望
    #WXJ_Lake 发表于2004-08-25 09:18:00  IP: 210.22.147.*
    再次看到这样的争论很失望。讨论哪种语言更快更好本来是很好的事情,但是可惜这里没有人能真正在技术层面上论证这个命题,都是据一些不相干的例子,看别人是怎么做的,引用别人的评测。

    有谁,能全面系统的研究两者的优劣,写出令人信服的论文,从而把类似的争论提升到学术讨论的层次上来? 我非常期待这样的,能令人收益的讨论, 而不是如现在这般叽叽喳喳。
    #Java&C# 发表于2004-08-24 21:12:00  IP: 219.130.52.*
    不管白猫还是黑猫﹐能抓住老鼠的就是好猫。同样﹐能解决客户问题的就行﹗客户才不管你是用什么实现的。
    #fion 发表于2004-08-24 21:17:00  IP: 218.19.249.*
    天下有大勇者,必有过人之节,无故加之而不怒,其谓有忍耐、涵养。人情所不能忍者,匹夫见辱,拔剑而起,挺身而斗,此不足为勇也。
    #灭了日本猪 发表于2004-08-25 17:22:00  IP: 211.144.99.*
    日本变态鬼,我操你老妈
    #flyingbugs 发表于2004-08-25 17:23:00  IP: 159.226.50.*
    善意的小鸟:

    你就是个不学无术的人, 呵呵


    java很好 很不错 我很喜欢 也很精通

    但请你尊重事实啊

    java比C++快, 嗯,刚开始我还以为你是说:
    在一些企业应用中,由于j2ee的资源与线程的分配和优化,它运行的总体效率比一些C++写的应用要快。
    这一点 我是认同的。

    可你说 就单纯的运行效率, java比C++快, 那你就真的是头脑发热 典型的fans症了。


    你的那个例子, 肯定是一个特例, 而且 你肯定没有打开C++的优化选项, 说不定还是在debug模式下的,我告诉你,C++针不针对CPU优化 效率能相差很多倍!!

    对了 , 希望你能不带偏见的看问题, 这样才有利于自己的提高,有利于java社团的发展,
    如果java社团每个人都象你现在这样, 那我们真的很危险了。

    ---------------------------
    flyingbugs
    2004/08/25
    #Eudemon 就是个白痴 发表于2004-08-24 21:23:00  IP: 221.232.65.*
    oracle和db2正是用java做的,
    这下你打开眼界了。
    #fisher 发表于2004-08-24 21:30:00  IP: 210.38.173.*
    真烦~~~~~~~~~~又是语言的争论!

    各有各的好处也有短处,笨!要解决!全部语言都学就可以了!
    #flashelf 发表于2004-08-24 21:37:00  IP: 222.33.36.*
    好文
    我都没看全文一看滚动条就知道了什么意识了。
    #flashelf 发表于2004-08-24 21:40:00  IP: 222.33.36.*
    反正java,做网站的数量远不如.net
    起码 .aspx 后缀名的网站
    现在已经满天飞了。
    jsp 的连 PHP 都比不过。

    这都是实话。。。。不要骂我。
    #御风而行 发表于2004-08-25 09:33:00  IP: 218.4.149.*
    是不是选择一个语言,我们只需要看他的速度?草看了诸多回复,感觉很多人的选择就是这样,我觉得这个选择未免儿戏了。如“回复:一个JavaFans的质疑和忧虑 2004-08-25 7:07 AM Perry”所说“如果说速度,有哪种语言比汇编更快?”!

    看看http://wwws.sun.com/software/java/why.html上面是怎么说的?
    The Java platform provides freedom of choice through platform compatibility. It's a highly secure, open, robust, viable, and flexible platform. It allows youto:
    ? Reduce costs
    ? Bring products to market faster
    ? Enjoy "Write once, run anywhere" flexibility
    ? Develop robust applications for consumer devices

    不同语言有不同的适用环境,java最擅长的是开发highly secure, open, robust, viable的 web应用程序。

    对这里讨论的话题有疑问的看看http://wwws.sun.com/software/java/quotes.html或许会有帮助。

    还是那句经典的话:“Google is our best teacher.”
    #RedFox 发表于2004-08-25 09:38:00  IP: 218.14.3.*
    JBuilderX 速度是太慢了。
    eclipse 要好点。
    所以我都只有用 JCreator 了。

    #ppgo 发表于2004-08-24 21:54:00  IP: 61.183.131.*
    java程序是启动慢,运行起来,特别是网络通讯和高性能计算,是很快的。而做GUI本来就不是java的强项
    #老实的程序员 发表于2004-08-25 17:35:00  IP: 219.134.36.*
    年青人。不是自已的东西何必去让人指长论短的。
    提高自已的本事。让别人以你为荣
    #。 发表于2004-08-24 21:56:00  IP: 218.19.160.*
    不是吧,又扯到php了。。作企业应用php就不行了。
    #guanqi 发表于2004-08-25 22:25:00  IP: 218.88.32.*
    java可以洗衣煮饭??
    #摩登原始人 发表于2004-08-24 22:16:00  IP: 218.81.177.*
    oracle 和 db2 的核心可是用c++写的哦。如果用java写的就没有人用了。不过,这两个数据库的管理工具倒是用java写的,那个速度正是慢的可以。我从来不用。我只用tado。
    #repeat 发表于2004-08-25 22:29:00  IP: 211.160.91.*
    不要闹了,你爱什么就学什么吧,讨论这些无用的东西
    #只看到缺点的人,总觉得有点鼠目寸光,让人无语!!! 发表于2004-08-25 09:50:00  IP: 202.204.68.*
    只看到缺点的人,总觉得有点鼠目寸光,让人无语!!!
    #abc 发表于2004-08-25 22:36:00  IP: 202.156.2.*
    http://www.idiom.com/~zilla/Computer/javaCbenchmark.html

    这是java和C++的benchmark,最近进行的一系列benchmark都证明了在大多数情况下java快于C++,但不是在任何情况下。
    建议大家多看少说,CSDN的骂战让我作为一个中国程序员觉得脸红。
    很多人认为java比C++慢通常基于两种认识:
    第一,启动速度慢,没错,JAVA在启动的时候需要unzip jars,需要进行必要的JIT,当然会比native code慢,但先进的VM技术已经将JAVA的运行速度提高到了一个相当高的高度,同时我们要看到的是,JCP已经认识到了JAVA启动速度慢对用户感受的影响,在最新的J2SE 5.0里面将会通过在多个JAVA程序间共享一部分标准库的方式提高java的启动速度,更加令人激动的是在J2SE 6.0中所有的java程序将运行在一个中央的jvm上,这将极大的提高java的启动速度同时降低内存占用率。(这是project barcelona的介绍 http://research.sun.com/projects/barcelona/)
    第二,GUI响应速度慢,这一点对于机器稍微慢一点的哥们可能感受比较深,不过我在我的DELL OPTIPLEX GX270上感觉不到。这应该是由于Swing为了跨平台的缘故,自己绘制widget的缘故。我个人认为,另一方面也是由于许多设计实现低劣的程序导致了大家对java GUI慢的误会更加深刻,比如没有处理Swing主线程和逻辑线程之间的关系。

    真希望以后CSDN上不要再出现这样无意义的争执,java好吗?好,它为我们提供了一个完美的平台,一个开放的环境,让我们可以从菜鸟一直成长为神。.net好吗?也好,它提供了一个简单易用的开发环境,为不需要接触细节的人们做了优