J2EE vs .NET

  前言 :

    J2EE出来的时候,我觉得很好,J2EE的理解是一套Web开发的API标准. 这个标准由Sun公司负责制定,其他公司如IBM,BEA等去实现. 以至于后来.NET出来时对它有一些抵触, 最近对.net的资料进一步的接触,才知道原来他们是各有所长.

l         共同点:

1.      都是基于web应用的开发.

2.      都是解释性的语言

3.      对象的销毁都基于垃圾收集器

4.      都支持Web Service的开发

5.      都支持XML,数据库访问

6.      安全控制

l       优缺点

内容

J2EE

.net

编程语言

Java

C#,C++,VB,Delphi等多语言

可移植性

垮平台

只适合于windows平台

动态网页

第一次访问时编译成一个Servlet存储.

访问时或第一次访问时编译成class.

 

网页实现手段

Jsp

Asp.net

网页开发

基于传统的HTML

使用专门的WEB控件使得开发网业同开发程序一样的流程. 支持事件

基本类型实现reference

用对象去封装一个基本类型

然后进行基本单类型与对象的相互转换

装箱

拆箱

中介语言

ByteCode

MSIL

编译方式

即时编译

JIT

执行宿主

虚拟机

CLR

Web Service

较弱

移动嵌入式开发

KJava, J2ME

Evc,Evb, Windows CE

网络传输类类型

Class文件

源数据(MetaData)MainFest

数据库访问

JDBC

ADO.net

执行速度

教快

本地接口

调用原生代码(JINI)

C++ 编程是唯一的二进制代码工具

 

l         编程语言

J2EE是只用Java语言实现, .NET支持多种语言,甚至连Fortran, Cobol,phyto都支持.但是Java语言是与平台无关的,由此可看出, 一个是平台无关性,注重于移植性, 一种注重语言无关性, 为的是将各类程序员都吸引到一个平台上.从而可以说,sun注重客户的应用,让客户在一个平台上一次性投资,可在多个操作系统中运行. 而微软则是注重吸引程序员,达到市场扩大目的.

l         动态网页

既然是web开发,就少不了动态网页,两者都有自己的开发技术,JSPASP. JSPServletJ2EE中对网页处理的最主要的技术,通过将Jsp调用时编译成为一个Servlet,而碰巧的是Asp.net也是将aspx文件编译成一个Class文件,并有一些事件,其中有HTML的部分直接转换到类的Render含数中去. ( 这与以前的asp不一样,以前IIS将启动一个asp解释程序将*.asp文件解释翻译成一个纯HTML输出到浏览器中. 另外 原来在<% %>之间可以定义函数,而在asp.net中只能支持在<script> </script>书写函数)

另外有一点确实是微软很高明的一招,.net中放入web.UI的控件,使的程序员不需要学习另外一种技术(网页制作),便可以象VB那样拖拖控件,更改属性,就可以开发出网页. 当然DreamWare,frontPage等等也都可以这样在Jsp中一样使用,但是明显没有这么方便.另外程序员需要学习这些工具的使用方法. 这也体现了一个原则, .net适合中小web应用,j2ee多用于大中型web应用开发. 如果一个程序员j2ee开发一个web应用,需掌握的学习的技术点远远大于用.net开发.

l         本地接口

J2EE更确切说应当是Java语言提供了JINI方式,通过这种原码编程, Java增加一些新的特性..net则只支持C++编译产生原生代码一种直接编译途径.

l         发布时的环境

J2EE程序执行时需要安装JDK( 也就是虚拟机).同样 .net程序执行时需要安装.net FrameWork. Java虚拟机中, 一个Java-其保存形式为class文件,被类装载器在需要时装入,然后由执行引擎执行.这种装入也可以通过网络,装入位于其它机器内的class文件.class文件由魔数,版本号,常量表,访问标志,this,Supper,接口,成员域,方法区以及属性区组成. ..ne则是运行CLR,实际上多个或一个类别组装到一个dll文件中,这个DLL文件首先有一个Mainifests,就是装配清单,装配清单中包含有多个classMetaData,一个MetaData定义了一个Clss类型.CLR通过查询每个Dll中的manifests来加载执行一个新类型class.这样一来避免早期微软的COM接口必须要写注册表才能注册使用的弊端.有一点必须注意:所有的.net程序其实都是在一个被称为运行宿主进程内运行.因为所有的 .net程序都是以装配件.dll文件保存的,当然需要一个exe作为这些dll的宿主进程(asp.net提供了一个,IE也是,windows shell也充当的宿主进程) 的宿主进程创建了多个app domain,每个app domain类似于操作系统的Proces.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值