.net体系与java体系
对于.NET Framework体系结构,参考了"你必须知道的.NET"并”借用“别人的经典体系结构图从宏观上说明一下我的理解。
图1
简单的说下几个名词:
- CLR: 通用语言运行平台(Common Language Runtime),是.NET框架的核心,与Java界的JVM类似。是代码执行的大管家,提供CTS和基础服务。
- FCL: 类库(Framework Class Library),如图所示提供了很多的标准类型,方便程序设计人员,完成了程序设计基础性工作,作为初学者要知道怎么用这些类库。类库的根就是System。
- BCL: 基类库Base Class Library,作为FCL的基类库,IO、String、NET等等必须熟练的掌握。
- CLS: 公共语言规范Common Language Specification,是.NET开发语言必须遵守的规范的最小集合。
- CTS: 公共类型系统Common Type System,解决各个语言类型定义的不一致问题,成为了.NET体系中跨语言编程的规范,.NET所有语言都用这一个类型系统。
上图中CTS和CLS构成了通用语言基础架构CLI(Common Language Infrastructure)的一部分,CLI还包含CIL(常称为MSIL),CIL就是我们常说的IL代码,是所有的.NET语言编程生成的中间代码,其实就像汇编语言一样的中间代码,只不过IL是处于.NET和汇编语言之间的语言。这一点和Java中的字节码(Bytecode)类似,以后的文章会讲解它们的区别。
CLI、CTS、CLS和CIL的关系可以用下图来表示:
图2
具体开发运用程序时如下图:
图3
1
|
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所涵盖的范围。
图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
图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的相关技术对应关系。有错请指出啊~~
.NET(C#) |
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
.net体系与java体系的更多相关文章
- atitit.为什么java体系开发效率这样低的原因and解决
atitit.为什么java体系开发效率这样低的原因and解决 #---开发理念问题(影响度:很大的,2-3倍效率) mvc<>webform server control ajax< ...
- JAVA体系学习-导向
一:当前学习内容 数值类型处理总结,字符类型处理总结,日期类型处理总结 spring 事务源码分析 spring源码系列 二:当前学习 主攻:并发编程->RPC原理->MQ原理->- ...
- JAVA体系的线程的实现,线程的调度,状态的转换
java体系中线程的实现 1.使用内核线程实现 内核线程就是直接由操作系统内核支持的线程,这种线程由内核来完成线程切换,内核通过操作调度器对线程进行调度,并负责将线程的任务映射到各个处理器上,每个内核 ...
- 深入理解Java虚拟机 - Java体系
使用JAVA已经快三年了,但说来惭愧,一直以来认为Java就是Java语言本身,最多再包括一个JVM,对于整个Java的体系结构还是不甚明了,现在有时间把<深入理解Java虚拟机>这本书读 ...
- RSA体系 c++/java相互进行加签验签--转
在web开发中,采用RSA公钥密钥体系自制ukey,文件证书登陆时,普遍的做法为:在浏览器端采用c++ activex控件,使用 c++的第三库openssl进行RAS加签操作,在服务器端采用java ...
- Java体系总结
一.Java SE部分 1.java基础:基础语法:面向对象(重点):集合框架(重点):常见类库API: 2.java界面编程:AWT:事件机制:Swing: 3.java高级知识:Annotatio ...
- JAVA中有一个特殊的类: Object。它是JAVA体系中所有类的父类(直接父类或者间接父类)。
接口往往被我们定义成一类XX的东西. 接口实际上是定义一个规范.标准. ① 通过接口可以实现不同层次.不同体系对象的共同属性: 通过接口实现write once as anywhere. 以JA ...
- 【从刷面试题到构建知识体系】Java底层-synchronized锁-1
在技术论坛中,经常看到一种言论:面试造火箭,干活拧螺丝.我们平时写的大部分代码的确是CRDU,再提一个层次,也无非就是揉进去复杂一些的业务逻辑,把一堆的CRDU组合起来. 那么问题来了:我们提倡的研究 ...
- Java体系
Java之父:詹姆斯·高斯林 java之前叫做“Oak”,后改名为Java.//Oak来源于橡树,java 来源爪哇岛的一种咖啡 Java语言平台 J2SE(Java 2 Platform Stand ...
随机推荐
- Hive基础之排序
order by 1.order by会对输入按照指定字段做全局排序,输出结果有序,因此只有一个reducer(多个reducer无法保证全局排序,手工设定reduce数量无效): 只有一个reduc ...
- JQ树插件 — zTree笔记
1.zTree作者很贴心的为使用者将不同功能的代码封装成不同的文件,方便大家尽量减少加载的代码量,如果基本全用到,则不必一个个引用,有一个文件“jquery.ztree.all.js”,包含了所有.如 ...
- Redis-基本数据类型与内部存储结构
1-概览 Redis是典型的Key-Value类型数据库,Key为字符类型,Value的类型常用的为五种类型:String.Hash .List . Set . Ordered Set 2- Redi ...
- Oracle中查询表的大小、表的占用情况和表空间的大小
有两种含义的表大小.一种是分配给一个表的物理空间数量,而不管空间是否被使用.可以这样查询获得字节数: select segment_name, bytes from user_segments whe ...
- [Flutter] Image.File 加载图像时文件内容变化显示不变解决
在Flutter中,我们可以用下面的代码从文件中加载图像: Image.file(File(_fileName)); 这个时候,当_fileName这个文件名称和路径不变,文件内容变化时,Flutte ...
- python气象分析
数据分析实例 -- 气象数据 一.实验介绍 本实验将对意大利北部沿海地区的气象数据进行分析与可视化.我们在实验过程中先会运用 Python 中matplotlib库的对数据进行图表化处理,然后调用 s ...
- c# 导入导出excel表格式
c#使用代码导入excel时,当遇到纯数字且大于15位时会出现编码混乱(表现为科学计数法),要想呈现与excel表中纯数字格式和在数据库中呈现纯数字,操作如下: 完成即可. 导出取决于导入的内容排版.
- 配置文件 .properties 的使用。
在代码中使用 @Controller public class IndexController { @Value("${CONTENT_LUNBO_ID}") private Lo ...
- leetcode237
/** * Definition for singly-linked list. * public class ListNode { * public int val; * public ListNo ...
- 解决报错 Page directive: illegal to have multiple occurrences of contentType with different values (old:
转自:https://blog.csdn.net/dorothy1224/article/details/78064288