admin 管理员组

文章数量: 1184232


2024年3月13日发(作者:我的世界服务器创建网站)

J2EE与.NET技术架构的区别

1.体系架构的比较

作为彼此竞争的应用平台,J2EE和.NET开发平台在目标和体系结构上极其相似,但

在实现上又完全不同。

(1)类似的平台基础构造 J2EE和.NET两个平台在底层的执行引擎都源于托管的虚拟

机概念,但.NET的CLR沿着Java虚拟机(JVM)走得更远,CLR在借鉴了JVM的自动垃圾

收集、异常处理等机制的同时,又为.NET平台添加了多语言支持、组件自描述等新的特

性。

在.NET和 J2EE平台上,程序的编译都经过两个类似的过程。首先,特定高级语言编

译器将C#(及其他.NET语言)和Java源代码分别翻译成中间语言(IL)和字节代码

(ByteCode)。.NET在中间语言设计时通盘考虑了多个主流高级语言,在这一层面实现

了.NET平台的跨语言承诺;J2EE的基石是Java语言,它最典型的特征是:一次编写,多

次运行。跨平台是J2EE一直引以为豪的关键,这是通过JVM来实现的。

其次,在执行时,中间语言被即时编译器(JIT)编译成特定平台的二进制代码,字节代

码则通过JVM解释执行,完成各自语言的指令功能。鉴于微软在“Wintel平台”上的代

码优化功底,.NET代码的执行速度较之于Java有明显的优势是不争的事实。但在

Unix/Linux平台上,由于.NET迟迟未能实现其跨平台的承诺,J2EE几乎成了惟一的选

择,执行效率的比较也就无所谓。在代码执行的同时,通用语言运行时和Java虚拟机也

都提出了异常捕捉、类型安全、内存分配和垃圾收集等自动化内存管理工作,大大减轻少

了现代软件的内存泄漏问题,减轻了程序员的繁重负担。

面向对象程序设计在J2EE和.NET平台中都获得了直接的支持,单根继承加多接口实

现是它们共有的特征。但在面向对象之外,.NET对现代组件编程提供了直接支持。当

然,当下很多企业中间件都是基于J2EE平台,只是.NET从设计、编码、配置到运行都给

予了组件编程更多、更直接的支持。

在基础的和企业级的服务上两个平台很难一决高低。从基础的集合、字符串操作到企

业级的API接口,如JMS、JDBC、JAX和JNDI等,J2EE在这方面有着非常坚实的结

构。微软.NET框架类库也不示弱,提供了从图画、网络、线程到、ADSI、

Windows表单和等一系列的API。

除去API类库的无缝的功能复用外,对本地平台的调用操作也是值得关注的。CLR

和Java虚拟机都支持本地方法的调用。在异构平台方面,J2EE更钟情于IIOP(Internet

InterORB Protocol),而.NET则使用SOAP。

(2)相同的三层/多层体系 基于三层/多层分布式计算结构已毋庸置疑地成为当今企业

应用的主流模式,也是两个平台较量的着力点。

在客户端,表示层负责用户与系统的交互。对于不同的处理要求,.NET和J2EE都提

出了基于桌面的应用程序和基于浏览器的Web应用的开发组件:Java Application与

Windows表单、Java Servlet/JSP与双双形成犄角之势。但Windows表单依


本文标签: 平台 语言 执行 内存