java有什么好?

youhaodeyi 2007-01-24 08:52:45
我在运行java程序时,比如eclipse或者jbuild,他们都是用java写的,但是奇慢无比。而且对于java程序编译成的class文件,现在都有很多反编译工具可以得到源代码。这样岂不是很不安全?而且,如果我下载了某个用java写的软件,还要在机器上安装虚拟机,这对于一个一般的用户来说,可能比较麻烦。除了在java上面的应用比较多、java可以跨平台之外,它还有什么其他的优点?为什么那么多人都选择java?
...全文
950 37 打赏 收藏 转发到动态 举报
写回复
用AI写文章
37 条回复
切换为时间正序
请发表友善的回复…
发表回复
dongle2001 2007-01-27
  • 打赏
  • 举报
回复
"很多人之所以感觉JBuilder和Eclipse慢,那是因为物理被耗尽,开始使用虚拟内存,狂读硬盘造成的。"这句话应该送给觉得java慢的人,强调10000遍都不过分!

的确实这样呀。
jicken_woo 2007-01-26
  • 打赏
  • 举报
回复
你喜欢就学,就用。
不喜欢就算了。中国人那么多,岗位也多。虽然钱不一定多。。
也没人逼你。
-----------
不过要是工作需要,劝你还是务实一些。。
这种心态不好哦!!!^_^
youhaodeyi 2007-01-26
  • 打赏
  • 举报
回复
但是计算机语言和人类语言有很大的不同,如果遇到一个项目,就要考虑是用什么语言来实现,这时候就必须把各种语言的优缺点列出来做一个比较。所以在语言之间做比较是必须的,而不是无畏的。
longtian_haidao 2007-01-26
  • 打赏
  • 举报
回复
java在web 方面比较强
相对的慢 已经被 网络的慢掩盖
lxx2844 2007-01-26
  • 打赏
  • 举报
回复
我感觉java是最棒的
dmewy 2007-01-26
  • 打赏
  • 举报
回复
哈哈哈哈哈..
强人很多啊.
是有点慢.不过还算OK了.没有十全十美的东西,JAVA在web上还是很强啊.
Moon 2007-01-26
  • 打赏
  • 举报
回复
Java运行速度慢,那个要从原理上来分析,网上随便搜一下都能知道了
c/c++也有用武之地的
请大家不要老是拿着两种语言做无谓的比较,要比较,那你说说
是汉语好还是英语好?是法语好还是德语好?
有时候也是需要拿开发效率来换运行效率的!
现在的社会,时间就是金钱!
所以~请大家还是继续支持Java!
hanjin26 2007-01-26
  • 打赏
  • 举报
回复
"很多人之所以感觉JBuilder和Eclipse慢,那是因为物理被耗尽,开始使用虚拟内存,狂读硬盘造成的。"这句话应该送给觉得java慢的人,强调10000遍都不过分!
HxIn_it 2007-01-26
  • 打赏
  • 举报
回复
不懂的原因,我以前也和LZ有同样的想法。
rehte 2007-01-26
  • 打赏
  • 举报
回复
什么时候操作系统自带虚拟机就好了
==================================
Java开源可以说是解决这一问题的关键所在,以前Java的部署之所以困难,其中最重要的原因
就是Java的授权问题,授权问题是阻碍Java部署的最主要障碍。现在Java开源了,Linux可以
自由绑定JRE了,Linux是开发者使用的主力平台之一。Windows上面的问题主要是通过OEM厂商
来解决,就是OEM厂商在机器上预装Java平台。目前市场新买的电脑,不管是台式机器还是笔记
本基本上都预装了Java平台,所以这个部署问题正在得到解决。
Java的开源犹如打开一扇解放Java的大门,今后开源Java产生的影响将逐步体现出来。
开源的Java起码可以解决诸如以下问题:
1.Java平台发布和安装问题,比如和操作系统的绑定,Java应用软件的发布安装等问题。
2.吸引更多Java开发者,扩大Java开发社区。
3.开源社区将更有力驱动Java平台开发,使Java的发展更加健康。
4.Java开源激发的创新,尤其是开源创新将是无可估量,比如以前所说浏览器的JRE插件可能
会做的像Flash插件那么大,Applet有可能因此而复兴。MVM可能出现,桌面应用软件因此受益。
更多的脚本语言可能运行到JVM平台上。等等,人有多大胆、地有多大产。
Java开源的影响是深远的,多年之后评价这一事件可能会和Java诞生相提并论的事件,Java从此
从少年时期进入成年时期。几年后也许大家才能意识这一事件真正含义。

约翰羊 2007-01-26
  • 打赏
  • 举报
回复
什么时候操作系统自带虚拟机就好了....
rehte 2007-01-26
  • 打赏
  • 举报
回复
WOW, lady-killer in action!:)
muymuy 2007-01-26
  • 打赏
  • 举报
回复
如果说Java是一个美丽的少女,那么C/C++就是一个风情万种的少妇,我都喜欢。
如果少女再多一点风情,那我会更喜欢。

希望这一天早一点到来!
rehte 2007-01-26
  • 打赏
  • 举报
回复
其实,Java现在已经能做很多传统C/C++的桌面应用,比如Office软件,这可是桌面应用
软件的典型和极致了,国内永中Office就是用Java/Swing做的,我真的看不出来和MS Office
有什么区别:无论是速度、响应、界面友好程度,他们有试用版,不妨试试就知道了。这个
Office可是纯Java/Swing的。
另外OpenOffice的界面部分其实也是用Swing做的,Sun公司自己的Office产品Star Office(OpenOffice开源以前的前身)也是用Swing做的。
现在浏览器也可以说是桌面应用软件的极致了吧,有一个浏览器Opera Mini也是Java Swing写的。
浏览器当然不推荐用Java写,一方面部署问题(JRE的安装),一方面重新开发的风险,还有就是许多
现有浏览器插件是C/C++写的,兼容问题。不用Java写绝对不是因为Java没有这个能力,而是其他
综合因素。
所以说Java桌面应用到来一点没有吹嘘、宣传的意思,如果去国外网站留心一下,许多评论都把
Java桌面应用的复兴作为近期的预言之一。
所以我们需要的是:硬件的升级、Java自身的改进,当然关键是我们开发者给于的支持和信心!
rehte 2007-01-26
  • 打赏
  • 举报
回复
muymuy:
这样说我很赞同,的确,客户端的机器通常要比服务器配置差的多,Java的做客户端的弱点是它的部署和内存消耗。单就速度来说,用户感觉Java的桌面软件慢一些往往是因为它自身带了一个很大的运行时环境造成的,比如它的虚拟机和bytecode以及jit后的二进制以及垃圾收集机制,这些既给Java带来了优点,也同时带来内存消耗问题。操作系统在应用程序内存超过一定阀值之后必然会产生虚拟内存耗尽,然后出现著名的内存抖动现象,不断在硬盘和内存之间swap。所以目前客户端硬件限制是Java桌面应用推广的一个最终要的限制因素。
当物理内存大于1G时,你会发现Java程序和本地程序一样快,根本感觉不出来什么区别。我的机器配置就是1G的,我往往会运行一个NetBeans IDE,一个OpenOffice,一个FireFox,一个MySQL数据库,有时还会运行WinAmp,机器仍然飞快,而且在各个程序之间切换,没有任何读盘的声响,速度非常快。
我觉得现在有一个Java客户端程序的配置门槛,最小要512M,推荐是1G内存。如果不能满足这些条件,的确Java应用软件会给人响应慢的现象。
幸好,硬件升级现在的趋势是至少512M以上,随着机器配置的升高,Java桌面应用的时代已经到来。
现在Java6已经实现了代码段共享,也就是如果启动多个Java程序,这几个程序之间共享虚拟机和类代码,只有运行时堆栈是独立的,这将大大减小内存开支。在今后的Java 7等版本中,有可能真正
实现所谓MVM(Multi-VM),即在一个Java虚拟机上运行多个Java程序,那时,多个Java程序共享一个虚拟机,Java程序所占用的内存只有自己的代码和运行栈,Java程序就有可能和C/C++一样小,
如果能在操作系统启动时实现一次虚拟机启动,那么Java的启动速度也将和C/C++一样快。
所以Java有着很好的桌面应用的前景,虽然历史上Java的确在桌面应用上落后很多,但是是金子总会发光的,随着硬件的提高和Java自身不断的改进,Java桌面应用繁荣的时代就要到来。
muymuy 2007-01-26
  • 打赏
  • 举报
回复
可能有人误会我的意思了,看来有必要说清楚点。

从语言层面讲,Java是一种编程语言(甚至是一个平台),C/C++也是一种编程语言,C/C++能做到的,Java照样能做。
不管是服务器端还是客户端,桌面应用还是后台应用,Java都能做。

Java,由于具有垃圾收集、跨平台以及更纯正的OO,使得它非常适合做Web,这是它的优势所在。

目前Java的运行速度已经很快了,甚至有文章已经证明它比C/C++还快,但是它的综合运行效率依然低于C/C++,原因是占用内存太多,一个非常简单Java程序都会占用10M甚至10多M的内存,复杂一点的Java程序会占用上百M的内存,像JBuilder和Eclipse这样的大家伙,会占用好几百M的内存,很多人之所以感觉JBuilder和Eclipse慢,那是因为物理被耗尽,开始使用虚拟内存,狂读硬盘造成的。

Java可以做客户端,可以做桌面应用,还可以做后台应用,但是由于Java综合运行效率低的问题,在一般PC上很少有Java做的软件,即使有用的人也少,因为它和用C/C++实现的同类型软件比起来,还是慢了些。

另外,我个人认为,我对Java没有偏见,对C/C++也没有偏见,我只是实事求是的把它们的优势和劣势说了出来。如果C++的Fans们看到我的言论,可能也会认为我对C/C++有偏见。
toploveall 2007-01-26
  • 打赏
  • 举报
回复
支持java,好处就像上面的人说的似的,其实还有很多很多好处,但是只有你会用java编程时,才能看到和体会到。
youhaodeyi 2007-01-25
  • 打赏
  • 举报
回复
如果这么说的话java在基础软件的开发上是处于劣势的。
rehte 2007-01-25
  • 打赏
  • 举报
回复
成千上万的基于Java的技术,成千上万的Java开源项目,
并不像某些人所说那样只能Web开发,那只能说明你的Java知识太浅陋了。从嵌入式系统,
到移动计算,到企业应用,到桌面应用,到航天飞机,到数据库,到集成开发环境,到编译器,
到网络开发,无处不在,无处不是主导。除了少数操作系统驱动之外,我还真难想象它不能在的
地方!

rehte 2007-01-25
  • 打赏
  • 举报
回复
Java不是不能做客户端应用、桌面系统以及基础软件,它有十二分能力做,
问题是没有必要用Java重新写一遍。这里面涉及到重新开发带来的风险问题。
如果你以前已经用C/C++写了一些软件,并且已经被成千上万的用户使用,而且由于
经过长时间的修改维护,功能已经很完善,结构已经非常复杂,即时Java非常善于
写这些程序,估计你也不会各种风险重新写过。
动动脑筋想想,这不是你写了一个几百行,几千行的玩具软件,而是动辄上万行、
几十万行甚至上百万行的系统程序,请问你敢冒着这个风险重新写吗?即时这个语言非常
优秀,非常善于写这方面的程序?
因此许多人误解了Java的能力,不是Java它不能,而是成千上万的其他原因!技术并不主导商业决策!
请问上百万行的Application Server,上百万行的NASA控制系统,甚至起码上几十万行的
Java IDE算不算是系统软件呢?!为什么它们能用Java写呢?这是因为它们是新出现的
桌面应用需求!
实际上就是Java速度本身来说,也已经与C++相提并论了,今天还刚看了一篇javalobby的文章
说现在JRubby在Java虚拟机上运行的速度是在C虚拟机运行的速度的两倍:
http://www.javalobby.org/java/forums/t89729.html
当然我的意思不是说java的速度已经全面超过了C,而是提醒那些对Java存有速度偏见的人
Java不再是你想象的那样,也是鼓励广大Java爱好者,Java除了你们喜爱的优秀品质外,
在速度上也不输于任何现代编程语言。
顽固的偏见、阴险的流言、狭隘的观点一旦进入人的大脑,就难以消除,这是人性的弱点。
人的顽固有时达到非常可怕的程度,人们往往难以接受自己过去是错误的,往往难以承认新的
观点和事物,即便是事实摆在面前,也会扭头不见,这种力量真是可怕。这种顽固造成了历史
多少顽固势力阻碍甚至扼杀新生事物。


加载更多回复(17)

62,612

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧