永发信息网

.net和Java的区别是什么?

答案:5  悬赏:40  手机版
解决时间 2021-02-18 16:35
.net和Java的区别是什么?
最佳答案
1、简介
.NET是微软推出的一种新的软件运行平台,它包括一整套应用范围广泛的技术,旨在迎接Java所带来的挑战。.NET给网站管理系统开发带来了很多新的技术,尤其是它的“混合语言”开发方式,是第一个支持多种语言混合开发的软件运行平台,下一代Windows--LongHorn的核心将会看到.NET的身影。如果读者学过Java,那么您会发现,.NET与Java实在是太象了。尤其是C#,如果给你一段代码,有的时候还真难分辨出是用Java还是C#写的。
Java是上世纪九十年代诞生的一种面向对象语言,它吸取了C++的许多长处,其最大的特性是“跨平台”,由于它很好地满足了网络时代信息系统对高级语言的要求,因而在实践中得到广泛应用。Java经过近十年的发展,目前已在企业信息系统开发领域占据了主流地位,形成了一整套完整的技术体系,取得了巨大的成功。
2、平台的构架
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进行传输。
3、加密法:概论
.NET的加密法主要基于CryptoAPI 和相关扩展。大多数有关加密的类都在System.security.Cryptography, X509Centificates 和XML中。.NET利用基于流的模型来完成加密传输,所有的算法都被默认为最高的安全级别。.NET也允许用户自己在 machine.config 中定义自己的算法。JAVA平台的加密算法分二个部分:Java Cryptography Architecture和 Java Cryptography Extension。 JCE的出口受到有关法律的限制。如果要使用用户自己的加密算法,必须得到认证机构的认证。
4、加密法:算法
.NET为网站管理系统主要提供了下面几大类加密算法:非对称算法、HASH算法、对称算法、随机数生成法。JAVA提供的加密算法更多,但是较少第三方厂商可以在JAVA中提供自己的算法。
5、安全配置
两个平台的配置都是通过XML或纯文本文件,两个平台最大的区别在于处理安全配置体系的方式不同。在.NET平台,有图形接口和命令行二种方式来修改安全配置参数。Mscorcfg.msc是图形接口方式,Caspol.exe提供了命令行方式,适用于批处理或配置文本。JAVA平台只提供了图形接口的工具policytool.exe。和.NET不同的是,它的目标对象(配置文件)的名字和位置不是固定的。.NET定义了不同范围的安全配置文件:系统范围,本机范围,本用户范围。在配置有冲突时,原则上小范围的参数有优先权。JAVA和J2EE的核心配置文件都保存在固定位置,但扩展配置文件随厂家不同而不同。
6、安全通信
SSL已经是事实的传输安全的工业标准了。JAVA和.NET都支持最新版本 SSL 3.0。
7、安全通信:平台
.NET只在基于IIS的应用中使用SSL来保护HTTP传输,对于非IIS应用,.NET不能保护传输中的数据。在JAVA中,JSSE提供了平台级的服务,保证基于TCP/IP的通信安全。除了IIS,.NET没有提供任何其它平台级的通信保护的标准方案,但是JAVA在这方面提供了全套的解决方案。
8、安全通信:应用
.NET通过WSA和 WSE包来提供最新的WEB服务安全保证,JAVA目前还没有提供这方面的支持。在加密方法上,JAVA和.NET基本没有太大的差别;在通信保护方面,JAVA 比.NET提供了更多的选择方案;但是在WEB服务安全性上,JAVA明显比.NET落后一些。
9、代码封装:检验
JAVA 和.NET 的Common Library Runtime都实行内存安全或类型安全的保护机制,在这些平台开发的应用的安全性也是可以检验的。他们的实现机制有很大的不同。在.NET, CLR总是执行编译好的代码,它不解释代码。但是在中间语言被编译之前,编译器会有验证和检验的步骤。第一步是检查文件的结构和代码完整性;第二步包括一些扩展的检查,内存安全、堆栈跟踪、数据流分析、类型检查等。在运行阶段,由VES来负责安全性检查和出错意外情况处理。在JAVA平台,JAVA虚拟机(JVM)负责类的载入、链接、检验和执行。对于已经编译和优化的代码,JVM也用二个无条件调用堆栈来保留最初的字节代码信息。
10、代码封装:应用隔离
在.NET, 域隔离建立在内存安全机制的基础上,不同的域不能直接访问彼此的地址空间,只能通过.NET远程通信机制访问。在JAVA平台,应用隔离是通过ClassLoaders 和 ProtectionDomains 相结合来实现的,安全类加载是JVM安全机制的基石。.NET的 AppDomains 就象操作系统的进程一样,使用起来比JAVA的 ProtectionDomains 更直接、容易一些。
11、代码封装: 语言特征
两个平台基本上差不多,.NET在灵活性上稍微好一点。
12、发展历程
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在企业级服务器市场受到了很大的冲击。
13、展望未来
现在,我们能看到到还只是一个很混乱的局面。而在未来,我们将看到.NET的成熟,以及它和JAVA的融合。JAVA将继续保持它的特点:跨平台的服务器端应用,如WAP服务器,或者是电信领域的如JAIN,同时它在嵌入式系统中将继续保持它的优势,象智能卡、移动电话、PDA等。而我们还将看到.NET的成熟,当然这种成熟需要时间,可能是相当长的一段时间,就好象当年JAVA成长那样。
非微软产品,包括服务器,桌面或是便携式设备的操作系统如Solaris, Linux和Palm OS的.NET接口。与JAVA核心的整合。SQL SERVER 或是ORACLE 等数据库产品中整合的VES 引擎。由中立的第三方开发的开放源码的,完善的.NET平台。可以预见到,微软将会赞助一些开放源码的项目,以使.NET 向UNIX 平台扩展,而这将有助于一些开放源码组织减少它们对JAVA的偏爱。
全部回答
完全是两个独立的平台。。。。。。。。。。。。。
java是从C++演变而来...
.net是从java演变而来...
它们的应用领域不同
.net:主要应用在中小型公司网站开发及桌面应用程序开发...
java:主要应用在大中型企业网站开发,银行网站开发及手机嵌入式游戏开发...
在学习方面.net相对较为简单
java 偏难...不容易掌握...
但不目前市场工资而言JAVA的偏高些...
而在找工作方面.net和JAVA都面临着艰难....
不过.net要求稍微低了一些...
还有之所以.net没有很大程度上普及主要是微软
的垄断..它们的软件不是开源的...这样两国一旦交战可能会影响到我们
整个国家...所以很多大企业联合抵制.net
不过在小型企业中.net的确不错...比jps简单...
java还有一次编译处处运行的优点..
还有就是.net的控件是拖拉摆放的
java是跨平台的语言,.net是跨语言的平台,java开源,可以说是全球的开发人员共同维护,更新速度很快,.net是微软的产品,微软绝对不会让它开源。在开发速度上,.net的开发周期要明显短于java,因为微软已经提前做了相当多的工作,很多东西开发人员直接拿来用就可以了,但是java的灵活性更高,适用于很多平台,比如手机平台,java有相当大的市场,而.net就不行。这两个方向都很有前途,在北京的话,两个方向的就业率基本持平,你最好先了解一下你自己喜欢做哪方面的开发,比如你想做手机方面的,那就只能是java了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
天睿英语这个地址在什么地方,我要处理点事
安能快递(遵化镇通华西街西关口西行二百米路
下列建筑材料为塑性材料的是()。A.铸铁B.Q235
samsunggalaxya5这个手机多少钱
经花药离体培养得到的单倍体植株
请问一下,左脚2,3脚趾骨折评几级伤残
从大阪关西机场到神户三宫怎么去
对i have to do the work first的do the work
取名字是叫王文刚好还是叫王佑豪好?
公积金余额5w,月交860贷款能贷多少
求以“我喜欢你马翠萍”这几个字开头的情诗
维生素D缺乏性佝偻病时肌肉松弛,肌张力降低
魅族pro5手机屏幕上显示的中国联通怎么去掉
请问照片上这个人叫什么
左边一个女字旁,右边一个玉,这个字念什么?
推荐资讯
用火能不能熔化钻石
我想在新民买房子 不知道房价 可不可以贷款
5000新朝币是多少人民币
单位晋升无望,效益又很一般。不知前途在哪,
玉林市正阳投资管理有限公司我想知道这个在什
电信机顶盒。用遥控器按没反应。遥控器按一下
长痘的男生都没女朋友吗
在沙漠中种什么树好活?科学点,准确点.谢谢.
交警大队自行车租赁点地址在哪,我要去那里办
我贷款买车用建行卡还钱的了但这个月手头紧能
山东星洲国际贸易这个地址在什么地方,我要处
怎么卡盟刷东西都那么贵,永久黄钻要100,个
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?