当前位置: 首页 > news >正文

东莞做公众号的网站sem是什么方法

东莞做公众号的网站,sem是什么方法,保险官方网站,怎么做自己的品牌网站java和.NET的比较 前面wuxq贴的文章比较详细的分析了C#和 Java在语法上的异同,(后面几章是分析C#的特征的) 下面再看看他们的编译实现,还有一些相关技术背景。 c#和java的确很相像,但是他们之间最大的不同是java采用解释执行, 而c#采用编…

java和.NET的比较

 

前面wuxq贴的文章比较详细的分析了C#和 

  Java在语法上的异同,(后面几章是分析C#的特征的) 

  下面再看看他们的编译实现,还有一些相关技术背景。 

  

  c#和java的确很相像,但是他们之间最大的不同是java采用解释执行, 

  而c#采用编译。但是c#的编译和c的编译又完全不同,他是一种jit编译 

ava也有,但是他们工作方式又有不同。 

  

  语言编译器(如CSC)将.cs文件编译成扩展了PE格式的文件中(eg:exe or .dll) 

  PE文件中= IL伪代码(p代码,Microsoft Intermediate Language, MSIL)+ 

            元数据(Metadata). 

             * [  

                元数据是类型库、注册表内容和其它用于COM的信息,反正就是 

                一些各种类型的定义、各种类型成员的签名以及其它数据 

               ]                    

             * [ IL代码是CPU无关的,这也意味着. 你要用目标机器上的一个 

                 编译器才能把IL代码转换成原始代码。 

                 MSIL将负责算术和逻辑操作符,控制流,直接内存访问,堆栈操作 

                 参数和局部变量,堆栈分配,对象模式,实例类型值,临界区,数组... 

                 IL代码自身变成了NGWS runtime的受管执行进程的入口  

               ] 

  NGWS runtime 即时编译器(JITters)根据一有的PE文件生成我们所要的native code. 

  MSIL和JITER让我们联想起了Java的byte code, jvm和jit。 

  他们是如此的相像,但实际上有天壤之别: 

  1。 

   MSIL可以理解为.net上的汇编语言。这是因MSIL 不是一种 

   可执行码仍然是一种某种形式的语言不过是编译的时候加上了 

   metadata包装成了二进制流的格式,我们可以通过ms的ildasm 

   反编译器查看到这种类似于汇编语言的中间码。而java的 

    bytecode,从某种意义下它已经是一种可执行码了(不过不是cpu执行而是jvm执行). 

   

  2。C# 的JITER和 java的 jvm jit工作方式不同。 

    .net的运行库和java的代码库的不同。在java中所有的系统库都以 

    bytecode形式存放,然后由jvm解释程序中所有的需要用到的库代码 

    然后调用本地系统的接口完成相应的操作。 

  

    而.net的通用运行库(CLR)是100%本地代码。.net系统是一个 

    充满了CLR的dll的大容器。当jit载入MISL时,MISL并不指 

    挥.net系统去调用本地的系统接口。而是指定.net系统去编译连接 

    那些需要的clr的dll。编译出来的是100%native code。从技术上 

    说,全部的处理过程如下:当一个类型被装载时,装载器创建一个存 

    根(stub),并使它连接每一个类型的方法。当一个方法第一次被调用 

    时,存根把控制交给JIT。JIT把IL编译为原始代码,且把存根指针 

    指向缓冲了的原始代码。接着的调用将执行原始码。在某些位置上, 

    所有的IL都被转换成为原始代码,而JITter处于空闲状态。可以看出 

    中间有一个代码缓冲器。 

  

总结: 

  

可以说c#是结合了c/c++编译和java的中间代码的自的优点, 

又屏蔽了各自的缺点::c/c++不独立平台,java的低效率 

  

Java自己也有JIT,但是它的jit是不彻底的,仍然不是100%的 

native code,仍然需要jvm的解释执行。因此java的性能一直没有办法 

提高。 

  

C#的方法是编译但是又不同于c的编译,他将编译分为几个阶段来进行。 

汇编代码的编译肯定比源代码来的快,jit的局部代码编译肯定比全部程 

序编译来的快,因此使用c#编程性能上的损失比java少的多,当然和c 

比起来还是有一点延迟特别是代码启动的时候,但是比java好得多了。 

  

 

转载于:https://www.cnblogs.com/wancy86/archive/2013/05/18/java_dotNET_compare.html

http://www.lbrq.cn/news/2725993.html

相关文章:

  • 百度如何把网站做链接整站优化网站
  • 做网站哪家便宜企业线上培训课程
  • 猎头公司网站建设方案疫情排行榜最新消息
  • 网站logo做黑页网络舆情软件免费入口
  • 个人博客网站设计的目的什么是网络营销战略
  • 浙江网站建设公司电话seo 的原理和作用
  • 北京手机网站制作多少钱软文代写价格
  • 淄博网站制作定制推广怎样创建一个自己的网站
  • 馆陶网站建设电话互联网推广销售好做吗
  • 全站加速 wordpress百度指数峰值查询
  • 做网站的软件是什么广州推广工具
  • 郑州做网站哪家比较好宁波百度seo排名优化
  • 新手做市场分析的网站seo推广论坛
  • 页面模板 wordpress东莞百度推广优化公司
  • 做网站ie缓存网店推广实训报告
  • 怎么看一个网站是由哪个公司做的网站数据统计工具
  • 忒低网站长怎么做百度关键词数据
  • 网站开发工程师职业定位360网站推广客服电话
  • 网站首页模板免费下载汕头seo外包公司
  • 网站建设的博客外贸网站平台哪个好
  • wordpress靶机seo外链建设方法
  • 素锦wordpressseo网站诊断分析报告
  • app与网站的区别是什么一个网站的seo优化有哪些
  • 添加网站描述电商平台怎么注册
  • 心理服务网站建设内容seo站内优化站外优化
  • 江宁网站建设要多少钱怎么自己创建网页
  • 公司网站建设付款分录沈阳seo关键字优化
  • 如何做公司网站营销型网站制作
  • 沈阳网站建设推广域名是什么意思
  • wordpress怎么编辑保存王通seo
  • 【121页PPT】智慧方案智慧综合体智能化设计方案(附下载方式)
  • 【160页PPT】机械行业数字化生产供应链产品解决方案(附下载方式)
  • NAS播放器的新星,一站式全平台媒体库管理工具『Cinemore』体验
  • 银河麒麟服务器jar包部署自启动配置
  • 【2D】圆上数值积分(半径方向用高斯积分减少点数)
  • 大数据项目_基于Python+hadopp的城市空气污染数据关联性可视化分析系统源码_基于机器学习的城市空气污染预测与分析系统的设计与实现