Java桌面应用可行性的研究
谈到Java,我们不得不谈到Java优秀的可移植性,这基本上是Java最值得夸耀的地方。一次编译,随处运行,Java的这一切都源于它的运行方式——采用JVM(Java虚拟机)托管运行。由于采用操作系统最小交集,对于每个平台,它都能有一套实现机制,保证实现相同的效果。但是正由于Java的这种特性,也导致了Java的低效。 为什么程序员以及用户都不喜欢用Java做桌面开发呢? 主要有以下几点原
·
谈到Java,我们不得不谈到Java优秀的可移植性,这基本上是Java最值得夸耀的地方。一次编译,随处运行,Java的这一切都源于它的运行方式——采用JVM(Java虚拟机)托管运行。由于采用操作系统最小交集,对于每个平台,它都能有一套实现机制,保证实现相同的效果。但是正由于Java的这种特性,也导致了Java的低效。
为什么程序员以及用户都不喜欢用Java做桌面开发呢? 主要有以下几点原因:
1、启动速度慢:Java采取JVM进行托管运行,在启动Java程序的时候,首先要加载JVM,然后才是依次加载Java所需的类库,这需要一定时间的延时。
2、占用内存大:加载JVM需要消耗极大的内存,而且由于Java采取自动回收垃圾的机制,内存回收并不由Java程序本身控制,而是由JVM来自动实现,这样不能通过手工马上释放内存。Java并没有提供一个手工处理垃圾回收的机制,而仅仅提供了一个简易垃圾回收的方法。如果内存占用不大,也许Java永远也不会进行垃圾回收。
3、需要安装JRE:JRE(Java Runtime Environment)是Java程序的运行环境,这需要用户额外的安装一个应用程序,最新版本的JRE5.0大约为15M左右,这使得任意一个Java桌面应用程序的安装包都在15M以上,即使一个简单的“Hello world”程序。
4、响应速度慢:JDK提供的标准的界面开发包为awt包和swing包。他们的底层实现并不是直接调用操作系统自身提供的小窗口部件,而是采用另外一套轻量级实现机制进行窗口小部件模拟,以保证在各个操作系统下看到的效果都一样。但是一来看上去样子很别扭,二来效率低下,响应速度慢。
5、Java的布局:为了保正在每个操作系统看到的效果都一样,Java采取了Layout策略。这样就不能像Window程序开发通过简便的可视化拖拉就可以达到我们想要的结果,而要进行复杂的布局管理器设置。每个Java开发人员在学习界面编程都不得不去面对复杂的布局管理器编程。
6、能够操纵的系统API太少:由于采用系统交集,所以Java也只能操作所有操作系统一致拥有的API,这样将使桌面应用程序的功能不得不大大减少。很多功能都是Java开发人员无法得到的,连拿到磁盘空间这种最基本的API,Java程序员甚至都无法做到。
看到这篇文章, 让我想起了前段时间听说的一件事情, 一Java开发的小型信息系统原来采用B/S结构, 但却因为客户方的客户端机器配置太差(据说内存才128M), 而改用Dephi开发, C/S结构. 当时不明白为什么改用Dephi, 后来问程序员, 结果也不清楚. 直到我看到了这篇文章, 呵呵. 原来如此啊. 理解了为什么后来会出现AJAX, 也就理解了AJAX这两年的火爆了.更多推荐
已为社区贡献1条内容
所有评论(0)