分享
 
 
 

Eclipse 3.2 Java开发新特征全面体验

王朝java/jsp·作者佚名  2008-05-31
窄屏简体版  字體: |||超大  

引言

Eclipse是流行的Java集成开发环境(IDE)。同时它还可以作为其它语言的开发环境(例如C++和Ruby)并且作为开发桌面或服务器应用程序的富客户端开发平台。如今,Eclipse开源社区拥有几十个开源项目,其范围从商务智能到社会网络等各个方面。Eclipse是非赢利性基金会的名字,由它全面负责这些工程。

Eclipse的每个版本在Eclipse的发行历史上都具有里程碑意义:在2006年6月30日同时发行了共十个Eclipse工程。本文将集中探讨Eclipse 3.2版本的IDE,非凡是它的Java开发工具(JDT)。

JDT构成

JDT的历史可以追踪到在1996年用Smalltalk编写的Visual Age for Java(VAJ)。在VAJ中,一切都被编译并且全部被调入内存。这种设计不能进行比例缩放,难于扩展,从而使其很难进行再创造。

在1999年,该IDE团队开始开发Visual Age Micro Edition(VAME)。这个工具开始完全用Java编写,并使用标准Widget工具箱(SWT)来实现其用户接口。当时的VAME的主要设计市场针对的是嵌入式空间中的开发与应用。为此,它使用了标准Java虚拟机,并且让工作区位于文件系统中。然而,文件和文件夹名字都是一些不能读的UUID。

与VAJ提供的编译器相比,VAME的增长式编译器快了将近十倍。这种模型是基于状态构建的(与当前的Eclipse形成对照,它是基于源码的)。VAME有它自己的仓库系统Rapier,并且可以使用插件方式来对之进行扩展。

VAME一开始并没有吸引社区开发者的注重力,但是其中的确包含很多好主意-开发者以后使用之来开发了他们的下一代工程-Eclipse。在2001年,Eclipse 1.0发行。当时,它被描述为"一种通用的IDE,并不非凡针对于什么内容"。从一开始,Eclipse和JDT都被构建为一种针对其它开发工具使用的开发平台。工作区存储在磁盘上并且对其它工作区开放。Eclipse 1.0中使用的不是一种专利式数据仓库,而是集成了CVS。

与其先行者相比,Eclipse还有另一个重要区别:它是开源的,而且其用户社区大量存在并且是自维持性的。Eclipse 3.2大多数的新的和改进特征直接来源于Eclipse用户。自从3.1版本以来,共有超过30,000个请求被修改并得到增强。去粗存精,下面让我们来重点分析几个对于大多数Java开发者非凡重要的特征。

Eclipse编译器

JDT的强有力的特征之一是它的内植的完全兼容于javac的增长式Java编译器。尽管你能使Eclipse使用Ant和javac,甚至能够使问题标记显示于IDE中(这是3.2版本中的新特征),但是,Eclipse编译器本身就提供了更好的诊断技术。

该JDT编译器最初的开发目的是针对VAME,以后针对Eclipse作了修改。这个编译器基于开发者称之的"编译三规则",并在模式上遵循了Asimov的机器人学规则:

1. 正确性-一个编译器不能损害一个源程序。

2. 高效性-除了与规则1相冲突的地方之外,一个编译器必须是快速的。

3. 友好性-一个编译器必须帮助用户纠正编程错误,只要这样的帮助不与规则1和规则2相冲突。

正确性:当设计一个Java编译器时,你不仅必须遵循相应的规范,而且还要领悟该规范的精神,只考虑正确性是不行的。因此,JDT开发者一直在努力奋斗以与其它编译器基本保持一致(包括Sun的编译器)。在Eclipse 3.2(相比之下,在VAJ中根本没有进行单元测试)中仅针对正确性的检查就超过15,000多次的单元测试。

高效性:成千的工程和成百万行的代码往往是很经常的事情。这意味着,大量的问题,例如内存消耗必须能够被猜测和加以分级,需要解决。Eclipse 3.2使用回归式优化策略对此作了进一步提炼。例如,开发者可以重写一个流程图以便使用位操作,结果它从以前百分之20的时间消耗降低到了百分之4。

友好性:报告错误是一种艺术,只用行号是不够的,二级错误被最小化。例如,假如你在一个文件中丢失了一个分号,它不会影响所有另外它所依靠的文件。改进的静态分析功能有助于发现错误模式。另外,Eclipse还能够对Javadoc进行正确性检查。

在3.2版本中,Eclipse编译器是Java-SE-6.0兼容的。Eclipse支持Java 6分类和StackMapTable属性(甚至在Java 6发行之前)。而且,该编译器提供了大量的新的诊断功能-有助于你发现存在于代码中的问题。与3.2版本的编译器(提供了45种诊断功能)相比,VAJ则仅提供了3种诊断功能。最新的一些诊断功能包括针对如下内容的检测:

· 使用显然是null的变量。

· 不必要的null检查。

· 到方法参数的偶然赋值。

· 切换大小写。

· 使用非泛型(原始)类型。

· 未使用的标签。

· 不必要的$NON-NLS$标签。

在默认情况下,大多数的这些功能都处于off状态。当然,你还可以使用@SuppressWarnings注解来把它们设置为off状态。

从3.2版本开始,假如你想在Eclipse外部使用Eclipse编译器,你可以单独下载这样的版本。它的命令行兼容于javac,并且下载尺寸仅有1MB左右。既然Eclipse编译器是开源的,所以大量的其它工程,例如Apache Tomcat,就可以绑定到其它的软件当中。

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有