.NET与Java的这种相似为网站管理系统的开发提供了便利,如果您掌握了C#,那么,掌握Java这个语言几乎是不费什么力气的,需要花费时间的只不过就是熟悉彼此的类库。.NET是.NET Framework,Java是J2SE。学习这两者的理论基础都是面向对象理论。所以,一名有着面向对象理论基础的人是很容易掌握.NET和Java的。

  简介

  .NET是微软推出的一种新的软件运行平台,它包括一整套应用范围广泛的技术,旨在迎接Java所带来的挑战。.NET给网站管理系统开发带来了很多新的技术,尤其是它的“混合语言”开发方式,是第一个支持多种语言混合开发的软件运行平台,下一代Windows--LongHorn的核心将会看到.NET的身影。如果读者学过Java,那么您会发现,.NET与Java实在是太象了。尤其是C#,如果给你一段代码,有的时候还真难分辨出是用Java还是C#写的。

  Java是上世纪九十年代诞生的一种面向对象语言,它吸取了C++的许多长处,其最大的特性是“跨平台”,由于它很好地满足了网络时代信息系统对高级语言的要求,因而在实践中得到广泛应用。Java经过近十年的发展,目前已在企业信息系统开发领域占据了主流地位,形成了一整套完整的技术体系,取得了巨大的成功。

  平台的构架

  JAVA平台包括JAVA语言,以及一套虚拟机——如JVM、KVM、CVM等——通过它们实现在PC机,手提电脑或是嵌入式系统上运行JAVA的字节码。同时,JAVA平台还定义了一整套覆盖面很广的API,它们被用来与微软的API协调或是相互竞争。如JDBC对ODBC,JTAPI对TAPI,JDO对ADO等等。因此,简要来说,JAVA平台包括语言,虚拟机,以及API库。由于使用虚拟机机制,所以JAVA语言在所有的平台上只有唯一的版本,因此它使用RMI协议进行远程通信;微软则在.NET框架中使用DCOM——正在逐步演变为SOAP。SUN最初对JAVA的宣传是“一次性代码编写,所有环境下运行”,但在推出了“J2EE”和“J2ME”后不得不收回了它最初的宣传,因为“一种尺码的鞋适合所有的脚”的解决方案并不能很好的工作。

  .NET框架包括C++, VB.NET和C#等一系列语言;与JAVA虚拟机类似的一套运行时环境;以及一套倾向与WINDOWS体系的API接口。其中的运行时环境可能存在于一个浏览器、或是一个WEB SERVER、或是在操作系统中。将来也许在SQL SERVER中也可能存在这样的运行时环境。另外需要提及的是微软的SOAP协议,它在继承了DCOM的一些特性的基础上发展起来,基于XML格式通过HTTP进行传输。

  加密法:概论

  .NET的加密法主要基于CryptoAPI 和相关扩展。大多数有关加密的类都在System.security.Cryptography, X509Centificates 和XML中。.NET利用基于流的模型来完成加密传输,所有的算法都被默认为最高的安全级别。.NET也允许用户自己在 machine.config 中定义自己的算法。JAVA平台的加密算法分二个部分:Java Cryptography Architecture和 Java Cryptography Extension。 JCE的出口受到有关法律的限制。如果要使用用户自己的加密算法,必须得到认证机构的认证。

  加密法:算法

  .NET为网站管理系统主要提供了下面几大类加密算法:非对称算法、HASH算法、对称算法、随机数生成法。JAVA提供的加密算法更多,但是较少第三方厂商可以在JAVA中提供自己的算法。

  安全配置

  两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或配置文本。JAVA平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的目标对象(配置文件)的名字和位置不是固定的。.NET定义了不同范围的安全配置文件:系统范围,本机范围,本用户范围。在配置有冲突时,原则上小范围的参数有优先权。JAVA和J2EE的核心配置文件都保存在固定位置,但扩展配置文件随厂家不同而不同。

  安全通信

  SSL已经是事实的传输安全的工业标准了。JAVA和.NET都支持最新版本 SSL 3.0。

  安全通信:平台

  .NET只在基于IIS的应用中使用SSL来保护HTTP传输,对于非IIS应用,.NET不能保护传输中的数据。在JAVA中,JSSE提供了平台级的服务,保证基于TCP/IP的通信安全。除了IIS,.NET没有提供任何其它平台级的通信保护的标准方案,但是JAVA在这方面提供了全套的解决方案。

  安全通信:应用

  .NET通过WSA和 WSE包来提供最新的WEB服务安全保证,JAVA目前还没有提供这方面的支持。在加密方法上,JAVA和.NET基本没有太大的差别;在通信保护方面,JAVA 比.NET提供了更多的选择方案;但是在WEB服务安全性上,JAVA明显比.NET落后一些。

  代码封装:检验

  JAVA 和.NET 的Common Library Runtime都实行内存安全或类型安全的保护机制,在这些平台开发的应用的安全性也是可以检验的。他们的实现机制有很大的不同。在.NET, CLR总是执行编译好的代码,它不解释代码。但是在中间语言被编译之前,编译器会有验证和检验的步骤。第一步是检查文件的结构和代码完整性;第二步包括一些扩展的检查,内存安全、堆栈跟踪、数据流分析、类型检查等。在运行阶段,由VES来负责安全性检查和出错意外情况处理。在JAVA平台,JAVA虚拟机(JVM)负责类的载入、链接、检验和执行。对于已经编译和优化的代码,JVM也用二个无条件调用堆栈来保留最初的字节代码信息。

  代码封装:应用隔离

  在.NET, 域隔离建立在内存安全机制的基础上,不同的域不能直接访问彼此的地址空间,只能通过.NET远程通信机制访问。在JAVA平台,应用隔离是通过ClassLoaders 和 ProtectionDomains 相结合来实现的,安全类加载是JVM安全机制的基石。.NET的 AppDomains 就象操作系统的进程一样,使用起来比JAVA的 ProtectionDomains 更直接、容易一些。

  代码封装: 语言特征

  两个平台基本上差不多,.NET在灵活性上稍微好一点。

  发展历程

  JAVA最初来源于SUN的一套为机顶盒设计的语言,当时的名字是OAK,SUN将之更名,并将它放在INTERNET上作为开放源码共享。随着专门为网页设计的JAVA APPLET的出现,JAVA语言迅速在INTERNET上流行起来。当时的浏览器主要是NETSCAPE。当微软发现明天市场的主宰可能是浏览器而不是桌面系统时,开始着手对NETSCAPE进行收购,在收购计划失败后微软发展了自己的浏览器IE。当时的INTERNET需要一种语言,而JAVA适时的出现了,由于它与C++的许多相似的语法,使得很多程序员转向了JAVA。而它确实具有很多优势,以至于在98年秋,它的反对者微软在MSDN中都宣称,JAVA是编写COM组件的最佳语言。随着JAVA一起出现的还有LINUX操作系统和APACHE服务器。这三者的联合在服务器端的应用表现出强大的威力,以至WINDOWS NT在企业级服务器市场受到了很大的冲击。

  展望未来

  现在,我们能看到到还只是一个很混乱的局面。而在未来,我们将看到.NET的成熟,以及它和JAVA的融合。JAVA将继续保持它的特点:跨平台的服务器端应用,如WAP服务器,或者是电信领域的如JAIN,同时它在嵌入式系统中将继续保持它的优势,象智能卡、移动电话、PDA等。而我们还将看到.NET的成熟,当然这种成熟需要时间,可能是相当长的一段时间,就好象当年JAVA成长那样。

  非微软产品,包括服务器,桌面或是便携式设备的操作系统如Solaris, Linux和Palm OS的.NET接口。与JAVA核心的整合。SQL SERVER 或是ORACLE 等数据库产品中整合的VES 引擎。由中立的第三方开发的开放源码的,完善的.NET平台。可以预见到,微软将会赞助一些开放源码的项目,以使.NET 向UNIX 平台扩展,而这将有助于一些开放源码组织减少它们对JAVA的偏爱

  .NET与Java的这种相似为网站管理系统的开发提供了便利,如果您掌握了C#,那么,掌握Java这个语言几乎是不费什么力气的,需要花费时间的只不过就是熟悉彼此的类库。.NET是.NET Framework,Java是J2SE。学习这两者的理论基础都是面向对象理论。所以,一名有着面向对象理论基础的人是很容易掌握.NET和Java的。

  简介

  .NET是微软推出的一种新的软件运行平台,它包括一整套应用范围广泛的技术,旨在迎接Java所带来的挑战。.NET给网站管理系统开发带来了很多新的技术,尤其是它的“混合语言”开发方式,是第一个支持多种语言混合开发的软件运行平台,下一代Windows--LongHorn的核心将会看到.NET的身影。如果读者学过Java,那么您会发现,.NET与Java实在是太象了。尤其是C#,如果给你一段代码,有的时候还真难分辨出是用Java还是C#写的。

  Java是上世纪九十年代诞生的一种面向对象语言,它吸取了C++的许多长处,其最大的特性是“跨平台”,由于它很好地满足了网络时代信息系统对高级语言的要求,因而在实践中得到广泛应用。Java经过近十年的发展,目前已在企业信息系统开发领域占据了主流地位,形成了一整套完整的技术体系,取得了巨大的成功。

  平台的构架

  JAVA平台包括JAVA语言,以及一套虚拟机——如JVM、KVM、CVM等——通过它们实现在PC机,手提电脑或是嵌入式系统上运行JAVA的字节码。同时,JAVA平台还定义了一整套覆盖面很广的API,它们被用来与微软的API协调或是相互竞争。如JDBC对ODBC,JTAPI对TAPI,JDO对ADO等等。因此,简要来说,JAVA平台包括语言,虚拟机,以及API库。由于使用虚拟机机制,所以JAVA语言在所有的平台上只有唯一的版本,因此它使用RMI协议进行远程通信;微软则在.NET框架中使用DCOM——正在逐步演变为SOAP。SUN最初对JAVA的宣传是“一次性代码编写,所有环境下运行”,但在推出了“J2EE”和“J2ME”后不得不收回了它最初的宣传,因为“一种尺码的鞋适合所有的脚”的解决方案并不能很好的工作。

  .NET框架包括C++, VB.NET和C#等一系列语言;与JAVA虚拟机类似的一套运行时环境;以及一套倾向与WINDOWS体系的API接口。其中的运行时环境可能存在于一个浏览器、或是一个WEB SERVER、或是在操作系统中。将来也许在SQL SERVER中也可能存在这样的运行时环境。另外需要提及的是微软的SOAP协议,它在继承了DCOM的一些特性的基础上发展起来,基于XML格式通过HTTP进行传输。

  加密法:概论

  .NET的加密法主要基于CryptoAPI 和相关扩展。大多数有关加密的类都在System.security.Cryptography, X509Centificates 和XML中。.NET利用基于流的模型来完成加密传输,所有的算法都被默认为最高的安全级别。.NET也允许用户自己在 machine.config 中定义自己的算法。JAVA平台的加密算法分二个部分:Java Cryptography Architecture和 Java Cryptography Extension。 JCE的出口受到有关法律的限制。如果要使用用户自己的加密算法,必须得到认证机构的认证。

  加密法:算法

  .NET为网站管理系统主要提供了下面几大类加密算法:非对称算法、HASH算法、对称算法、随机数生成法。JAVA提供的加密算法更多,但是较少第三方厂商可以在JAVA中提供自己的算法。

  安全配置

  两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或配置文本。JAVA平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的目标对象(配置文件)的名字和位置不是固定的。.NET定义了不同范围的安全配置文件:系统范围,本机范围,本用户范围。在配置有冲突时,原则上小范围的参数有优先权。JAVA和J2EE的核心配置文件都保存在固定位置,但扩展配置文件随厂家不同而不同。

  安全通信

  SSL已经是事实的传输安全的工业标准了。JAVA和.NET都支持最新版本 SSL 3.0。

  安全通信:平台

  .NET只在基于IIS的应用中使用SSL来保护HTTP传输,对于非IIS应用,.NET不能保护传输中的数据。在JAVA中,JSSE提供了平台级的服务,保证基于TCP/IP的通信安全。除了IIS,.NET没有提供任何其它平台级的通信保护的标准方案,但是JAVA在这方面提供了全套的解决方案。

  安全通信:应用

  .NET通过WSA和 WSE包来提供最新的WEB服务安全保证,JAVA目前还没有提供这方面的支持。在加密方法上,JAVA和.NET基本没有太大的差别;在通信保护方面,JAVA 比.NET提供了更多的选择方案;但是在WEB服务安全性上,JAVA明显比.NET落后一些。

  代码封装:检验

  JAVA 和.NET 的Common Library Runtime都实行内存安全或类型安全的保护机制,在这些平台开发的应用的安全性也是可以检验的。他们的实现机制有很大的不同。在.NET, CLR总是执行编译好的代码,它不解释代码。但是在中间语言被编译之前,编译器会有验证和检验的步骤。第一步是检查文件的结构和代码完整性;第二步包括一些扩展的检查,内存安全、堆栈跟踪、数据流分析、类型检查等。在运行阶段,由VES来负责安全性检查和出错意外情况处理。在JAVA平台,JAVA虚拟机(JVM)负责类的载入、链接、检验和执行。对于已经编译和优化的代码,JVM也用二个无条件调用堆栈来保留最初的字节代码信息。

  代码封装:应用隔离

  在.NET, 域隔离建立在内存安全机制的基础上,不同的域不能直接访问彼此的地址空间,只能通过.NET远程通信机制访问。在JAVA平台,应用隔离是通过ClassLoaders 和 ProtectionDomains 相结合来实现的,安全类加载是JVM安全机制的基石。.NET的 AppDomains 就象操作系统的进程一样,使用起来比JAVA的 ProtectionDomains 更直接、容易一些。

  代码封装: 语言特征

  两个平台基本上差不多,.NET在灵活性上稍微好一点。

  发展历程

  JAVA最初来源于SUN的一套为机顶盒设计的语言,当时的名字是OAK,SUN将之更名,并将它放在INTERNET上作为开放源码共享。随着专门为网页设计的JAVA APPLET的出现,JAVA语言迅速在INTERNET上流行起来。当时的浏览器主要是NETSCAPE。当微软发现明天市场的主宰可能是浏览器而不是桌面系统时,开始着手对NETSCAPE进行收购,在收购计划失败后微软发展了自己的浏览器IE。当时的INTERNET需要一种语言,而JAVA适时的出现了,由于它与C++的许多相似的语法,使得很多程序员转向了JAVA。而它确实具有很多优势,以至于在98年秋,它的反对者微软在MSDN中都宣称,JAVA是编写COM组件的最佳语言。随着JAVA一起出现的还有LINUX操作系统和APACHE服务器。这三者的联合在服务器端的应用表现出强大的威力,以至WINDOWS NT在企业级服务器市场受到了很大的冲击。

  展望未来

  现在,我们能看到到还只是一个很混乱的局面。而在未来,我们将看到.NET的成熟,以及它和JAVA的融合。JAVA将继续保持它的特点:跨平台的服务器端应用,如WAP服务器,或者是电信领域的如JAIN,同时它在嵌入式系统中将继续保持它的优势,象智能卡、移动电话、PDA等。而我们还将看到.NET的成熟,当然这种成熟需要时间,可能是相当长的一段时间,就好象当年JAVA成长那样。

  非微软产品,包括服务器,桌面或是便携式设备的操作系统如Solaris, Linux和Palm OS的.NET接口。与JAVA核心的整合。SQL SERVER 或是ORACLE 等数据库产品中整合的VES 引擎。由中立的第三方开发的开放源码的,完善的.NET平台。可以预见到,微软将会赞助一些开放源码的项目,以使.NET 向UNIX 平台扩展,而这将有助于一些开放源码组织减少它们对JAVA的偏爱

.NET与JAVA的区别【完整版】相关推荐

  1. java教程pdf(java教程视频完整版)

    JAVA程序设计基础教程PDF 你在百度文库里找找好像有的,如果没有就去taobao吧,太多的二手旧书了.百度 谷歌上面这样的只是多的是 还有就是百度百科fsd <JAVA从入门到精通>电 ...

  2. 你真的了解Java系统启动流程吗?java基础教程完整版

    摘要 Apache Kafka是一个分布式消息发布订阅系统.它最初由LinkedIn公司基于独特的设计实现为一个分布式的提交日志系统( a distributed commit log),之后成为Ap ...

  3. Java 对象排序完整版

    前几天在 LeetCode 刷题的时候,遇到了利用 Arrays.sort() 或 Collections.sort() 来对 Java 对象进行排序的需求,于是想较详细地总结一下 Java 对象的排 ...

  4. 达内第二个月考java核心题目,(完整版)达内科技JAVA项目经理入职考试--I(不含答案)--新...

    达内科技项目经理入职考试 (JAVA方向 A卷) 考试说明: 本考试为达内科技JAVA产品线项目经理入职考试,考试使用闭卷.笔试的形式.满分100分,考试时间120分钟.考试期间不允许使用电脑,不可打 ...

  5. 阿里巴巴项目P8技术咖总结的Java心得,完整版PDF可下载

    自学Java,如果觉得看<Java编程思想>或者<Core Java>等之类的"圣经"觉得内容太多,一下子吃不透的话,不妨看看这本<Java基础核心& ...

  6. 黑马JAVA P85-87 ATM完整版

    package com.itheima;import java.sql.SQLOutput; import java.util.ArrayList; import java.util.Random; ...

  7. java实现冒泡排序完整版

    {public static void main(String args[]){Scanner scanner = new Scanner(System.in);System.out.println( ...

  8. 魔塔小游戏Java版项目完整版

    这是一款童年游戏4399网站上的魔塔仿制版,回忆童年,入手开发项目,全方面的代码解析 ⭐本项目演示地址⭐ ⭐资源图片源代码私信博主⭐ 项目的完整结构图: 游戏部分闯关图: 源代码如下: 怪物数据代码:

  9. java代码编写完整版水果忍者,Unity3D基础项目(三):水果忍者代码

    创建刀光 using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngin ...

  10. Java 中文api pdf_Java API中文完整版.pdf

    Java API中文完整版.pdf SunGuide®: Staffing Plan SunGuide-SP-5.0.0-Draft Prepared for: Florida Department ...

最新文章

  1. 故障码123401_电力系统规划设计对电力工程设计的应用
  2. mysql示例employees数据库
  3. 中随机打乱序列的函数_excel函数应用:如何快速制作考生座次分配表
  4. 做了这么久的程序员,你知道为什么会有Lambda表达式吗?
  5. python产品缺陷检测_3 Kaggle钢材表面缺陷检测竞赛的探索与实践-阿里云开发者社区...
  6. HDU1427 速算24点
  7. Git.Framework 框架随手记--ORM条件组合
  8. 不懂代码也想学会深度学习?这本书告诉你真的很简单
  9. 深度学习总概论(超神之路)
  10. 奥维互动地图谷歌图源,通过自建Vercel反代实现墙内访问 - DaPeng‘s Blog
  11. 对话 | AI、机器学习在材料科学研究中能发挥哪些作用?
  12. oracle如何恢复表中删除的数据?
  13. 微信公众号分享网页注意点
  14. UsernamePasswordAuthenticationToken
  15. linux qemu-nbd介绍
  16. D3 天眼查 股权穿透 股权结构
  17. 回路电感详细介绍(环路电感)
  18. SSL集训 某OJ2021.08.14 提高B组 Luogu P7527 [USACO21OPEN] United Cows of Farmer John G【树状数组】
  19. 安全多方计算之隐私保护集合交集
  20. Jquery ajax, Axios, Fetch区别之我见(转载)

热门文章

  1. 基于Flink的电影数据实时统计平台(一):项目展示
  2. 2023上学期学习计划
  3. python filter和map的区别_js中filter和map的区别
  4. 2019美国数学建模B题翻译:Problem B: Send in the Drones: Developing an Aerial Disaster Relief Response System
  5. centos yum配置文件 .repo文件解释
  6. python打印a-z的字母
  7. SIMV薄膜表面缺陷检测仪快速检测产品表面缺陷
  8. 测试软件下载安装整理
  9. 华为前员工因离职补偿被拘251天!热搜被撤欲掩盖真相?听听当事人的讲述......
  10. 本季度干货导航 | 2022年Q2