zoukankan      html  css  js  c++  java
  • 体系结构

    NET和JAVA的比较系列(1)- 体系结构

     
    .NET体系结构

     

    对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解。

    clip_image002

    图1

     

    简单的说下几个名词:

    上图中CTS和CLS构成了通用语言基础架构CLI(Common Language Infrastructure)的一部分,CLI还包含CIL(常称为MSIL),CIL就是我们常说的IL代码,是所有的.NET语言编程生成的中间代码,其实就像汇编语言一样的中间代码,只不过IL是处于.NET和汇编语言之间的语言。这一点和Java中的字节码(Bytecode)类似,以后的文章会讲解它们的区别。

    CLI、CTS、CLS和CIL的关系可以用下图来表示:

    clip_image004

    图2

    具体开发运用程序时如下图:

    clip_image006

    图3

    JAVA技术体系
    

      

    说下我找到的JAVA相关的资料,JAVA只是粗浅的了解一些。有的可能说的不准确,希望错误的地方大家指出,对于JAVA来说就没有这么“庞大”了,毕竟JVM中只运行JAVA一种语言。

    Sun官方所定义的Java技术体系包含Java程序设计语言、各种硬件平台上的Java虚拟机、Class文件格式、JavaAPI类库、来自商业机构和开源社区的第三方Java类库。

    我们可以把Java程序设计语言、Java虚拟机、JavaAPI类库这三部分统称为JDK。(JavaDevelopmentKit),JDK是用于支持Java开发的最小环境。可以把JavaAPI类库中的Java SE API子集和Java虚拟机这两部分统称为JRE(Java Runtime Environment),JRE是支持Java程序运行的标准环境。图4展示了Java技术体系所包括的内容,以及JDK和JRE所涵盖的范围。

    clip_image008

    图4

    JAVA中的很多名词不是很了解,先贴几个:

    • JPDA:Java平台的调试架构
    • JavaFx:作为一个富客户端平台的下一步演进。它的目的是为企业业务应用提供一个轻量级的,硬件加速的Java UI平台。
    • Swing: 所谓的Lightweight组件,不是通过native方法来实现的,所以Swing的窗口风格更多样化。但是,Swing里面也有heavyweight组件。比如JWindow,Dialog,JFrame
    • 同时,由于AWT是通过操作系统实现的,所以AWT的组件只能采取各个操作系统的交集,组建数量少,功能少。而Swing则不依赖于操作系统,所以组件多,功能强。
    • AWT: 是通过调用操作系统的native方法实现的,所以在Windows系统上的AWT窗口就是Windows的风格,而在Unix系统上的则是XWindow风格。

    同样JAVA的实现如图5

    clip_image010

    图5

    图4是根据组成部分的功能划分的,按照技术所服务领域划分, Java技术体系可以分为四个平台,分别为:

    • JavaCard:支持一些Java小程序(Applets)运行在小内存设备(如智能卡)上的平台。
    • JavaME(MicroEdition):支持Java程序运行在移动终端(手机、PDA)上的平台,对JavaAPI有所精简,并加入了针对移动终端的支持,这个版本以前称为J2ME。
    • JavaSE(StandardEdition):支持面向桌面级应用(如Windows下的应用程序)的Java平台,提供了完整的Java核心API,这个版本以前称为J2SE。
    • JavaEE(EnterpriseEdition):支持使用多层架构的企业应用(如ERP、CRM应用)的Java平台,除了提供JavaSEAPI外,还对其做了大量的扩充并提供了相关的部署支持,这个版本以前称为J2EE。

    目前作为Andriod基本取代了JavaME成为了移动领域开发的热点。JAVA体系相比.NET只多不少,不是一张图就能展示完的。本来想找个完整图展示所有的JAVA技术体系,可惜没有找到。

    接下来说下我理解的.NET(C#)和JAVA的相关技术对应关系。有错请指出啊~~

    .NETC#

    JAVA

    WPF/WinForm

    Swing等/AWT

    ASP.NET

    JSP、Servlet

    EntityFramework/NHibernate/ibatis.net

    Hibernate/ibatis

    Spring.NET

    Spring

    MVC

    Strusts

    Windows Mobile/Windows Phone

    Java ME/Andriod

    WCF/WebService

    WebService

    WF(Work Flow)-

    JBPM

                                                  表1

     

    
    
    今天的讲解就到此,谢谢您的阅读,下次再见。
    
    如果您觉得这篇博客对您有所启发,不妨点击一下右下角的【推荐】按钮。
    
    如果您对本博客内容感兴趣,请继续关注我,我是Bull Li。
    
    
     
     
    分类: .NET+JAVA
  • 相关阅读:
    68
    56
    Django manager 命令笔记
    Django 执行 manage 命令方式
    Django 连接 Mysql (8.0.16) 失败
    Python django 安装 mysqlclient 失败
    H.264 SODB RBSP EBSP的区别
    FFmpeg—— Bitstream Filters 作用
    MySQL 远程连接问题 (Windows Server)
    MySQL 笔记
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/3644242.html
Copyright © 2011-2022 走看看