关于Java和.Net,持续更新中

平台比较(不说跨平台,我正在学习.NET,没有测试平台相关性质)
 JAVA平台包含:JVM、JAVA语言和JAVA运行库
 .NET平台包含:CLR,实现语言和CFL。
 Java只能使用一种语言实现,但是.NET可以使用不同的语言实现。但是.NET使用不同语言实现的条件是这些语言(如果需要交叉调用)则需要限制在最小的CLR子集(CLS)之内,这样限制了不少的功能。而且为了照顾VB.NET这样的不区分大小写的语言,CLS中的大小写也是不敏感了(原生语言中还是敏感的)。
 Java程序使用Java虚拟机运行,.NET程序使用内嵌的操作系统进程实现。JAVA虚拟机因为跨平台关系,不太可能使用核心态运行,但是.NET由于是亲生的,想怎么宠都可以。
 .NET执行的时候生成的代码是本地代码,但是Java执行的时候生成的是中间代码(JVM规范),由Java虚拟机执行中间代码和本地代码之间的转换,就这点而言JAVA速度慢一点。.NET和Java都支持“按需调用”,也就是在用到某个类型(组件)的时候才去分析这个组件的引用并加载到虚拟机中。JAVA对于引用是生成引用表,类似VTable,这样第二此使用的时候直接使用这个VTable就可以找到“中间代码”;.NET则直接生成类型的本地代码,并修改PE文件的入口指向这个“本地代码”(好像又慢一点)。
 Java提出了很多相关部署的东西,都是和Jar文件相关的,这样在部署的时候只需要一个文件就搞定(理想情况),其资源和class文件可以合在一起打包。更有甚者,其web Application的配置信息也可以一起打包。.NET提出了一个程序集的概念,和jar文件的初衷是相同的,但是其版本控制十分严格——看来m$是被Dell Hell给搞郁闷了——但是其文件不是在一个文件包里面(这个部分没有深究)
 
 待续............
 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值