j9国际站|(官网)点击登录

新疆j9九游会

本站首页 j9九游会 乐成案例 公司新闻 公司简介 客服中心 软件技能 网站建立
  您如今的地位: 新疆二域j9九游会公司 >> Java技能 >> 文章注释

剖析c#言语和java言语最类似的地方

        C#和Java都是很不错的言语。他们经过相似的方法到达了相似的目标,只管C#比Java多出来一些和句法相干的工具,比方foreach要害字和一些愈加让人开心的扩展/完成架构。不幸的是,这些改良的光辉被减弱的工具掩饰笼罩失了。在本文里,我将比力两种言语,并只管即便制止深化到JVM和CLR层。
Java:无可争辩地具有C++一切的精髓
在比力Java和C#的时分,你不行能不留意到它们诸多的类似之处,这在某种水平上要归结于它们配合的泉源:C和C++。但,当Gosling和他的同事们坐上去发明Java的时分,他们不但汲取了C++的才能,并且更紧张的是,他们减失了一些无用特征,后者让C++更容易堕落误并且更难学习。C#的设计者参加了许多C++的特征,而Java也参加了这些特征,但C#却没有去失C++的最蹩脚的一些特征。其后果便是如许一门言语,它仍旧为一切人提供了一切的特征,但其了局是外部抵触不停,并且过于庞大。

散漫的句法缺陷
最容易找出的错误是流控制和句法。C#提供了goto command,将其作为变动步伐实行点的机制。自从Edsger W. Dijkstra在1968年出书了他的《关于Go to报告式坏处的思索(Go To Statement Considered Harmful)》。Goto语句招致代码难以调试,并且很难被测试东西处置。

在另一种差别的状况下,操纵符过载异样也有很大题目,只不外条理纷歧样而已。当“+”依据操纵数的范例而代表任何工具的时分,代码的功效就不再通明,难以意料的反作用[fǎn zuò yòng]就会产生。

C#在宁静上的减弱
C#有一个用于将代码地区标示为不宁静的复杂机制。在这些不宁静的地区里,Java以及厥后的C#布置到位了一些宁静步伐,用以避免步伐员间接修正内存地位,以及利用点运算,但这些步伐是值得猜疑的。在利用具有渣滓清算功效的初级言语时,假如下到内存地点这一层,就会把工具/内存之间故意作出分散弄混。错误就会容易呈现,调试成了噩梦,缓冲区溢出再次仰面,C和C++里闻名的宁静毛病再次现身。

C#还容许对主机体系上本机库的复杂拜访。这个与非.NET工具相联合的拜访同Java本机接口(JNI)所提供的功效相似,但它愈加伤害。JNI被设计用来警惕地限定Java代码以及本机代码同已界说好的接口之间的交互操纵,.NET使得挪用本机工具文件变得极端复杂,后果招致开辟职员在做这的时分,无法认识到他们在这一历程中把平台的可移植性也扔出了窗外。

SOAP的集成
C#,及其更大的扩展.NET,曾经同SOAP Web办事严密地集成在一同。SOAP是利用XML指定参数和后果值来举行近程历程挪用的好尺度,但它并不是独一的方法。使用用于Web办事的内部库可以容许Java开辟职员容易地变动其Web办事的作风,使其成为SOAP、XML-RPC,大概什么还没有创造的工具。固然,C#的开辟职员总是可以选择将内部库用于SOAP的Web办事,但由SOAP尺度的严密集成所形成的限定要比它可以做的工具更多。


一切者的恐慌
C#里最令人恐慌的特征大概便是其一切者了。微软曾经为将C#和.NET用于非Windows平台举行了经心的展示,但这在很大水平上还只是作秀。其用于非Windows平台的CLR是题目多多,错误多多。它经过ECMA尺度化历程来运转C#??这一步连Sun也不敢在Java上迈出。其担忧来自于微软对此大概封闭的水平,假如它乐意的话。微软曾经请求了一个专利,以排挤别人编写第三方的CRL,比方Mono方案。假如微软决议对收费的C#和.NET社区施压,它就有才能拿票子和执法的大棒把其开辟运动赶回到Win32平台??固然这也不是它想看到的状况。

而Java言语则相反,不是ECMA尺度的,真惋惜Sun没有服从这一尺度。但,它是可以完成的,并且没有专利的拦阻,其假造机和中心类库都有来自第三方的开放和关闭源代码的完成。C#看起来是收费的,实在否则,而Java看起来限定许多,但它可以根据执法经过收费的途径来完成。

最初,我历来都没有想到我会说这个,但Java具有更好东西的支持,即便是在思索到集成开辟情况(IDE)的状况下。Visual Studio .NET是一个很不错的IDE。它代表了多年的高兴,并且特征很丰厚。但,Eclipse IDE包罗了对Java的支持,它在波动性、易用性和所提供的特征上凌驾了Visual Studio。IBM对Eclipse的奉献无足轻重[wú zú qīng zhòng],并且假如你信仰原来的软件格言“创立一个抛弃的(Build one to throw away)”,那么你可以把Visual Age作为第一个(被丢弃失了的)实验。关于利用C#的开辟职员来说侥幸的是,Eclipse的.NET版本正在开辟中。

不是那么差,但还不是Java
客观一点评价,C#里并没有什么很可怕的工具。它没有Visual Basic里的那些很可怕的工具,并且它现实上也没有承继像C里的一些工具,而这些工具会退一步发职员开枪却打中本人脚。但,底线是,C#并没有做许多工具,假如有任何工具比Java更好的话。它在某些方面很分明的要更差。在这两个十分相似的言语之间作选择的时分,请选择稍稍更好且履历风雨的谁人:Java。

作者:lmx87579… | 文章泉源:赛迪网 | 更新>###0:42

  • 上一篇文章:

  • 下一篇文章:

  • 相干文章:
    JAVA开辟的6个理论的例子
    JAVA中的笼统范例的一些观点
    java言语开辟步伐中的几个例子各人看看
    理解java开辟言语在j9九游会中的几个误区
    C#完成短信发送步伐的例子
    怎样才干利用Java完成外部范畴的特定言语
    .net学习:c#事情的深化剖析
    Java开辟学习警惕利用Date以及Time类
    sun近来修补了一局部java的宁静补丁
    Java步伐员应该理解那些开源协议
    软件技能
    · 开辟言语
    · Java技能
    · .Net技能
    · 数据库开辟
    最新文章  
    ·j2se 嵌入式剧本抓取引擎
    ·JAVA开辟的6个理论的例子
    ·JBuilder7 / Weblogic7开辟
    ·JAVA中的笼统范例的一些概
    ·java言语开辟步伐中的几个
    ·理解java开辟言语在软件开
    ·怎样才干利用Java完成外部
    ·Java开辟学习警惕利用Date
    ·Java步伐员应该理解那些开
    ·java功能优化的一些看法
    ·介绍JDK5.0一些collection
    ·底子学习:java中利用存储
    ·剖析c#言语和java言语最相
    ·Java言语学习:jAVA中 的多
    ·Java是不是应该增长新特征
    关于j9九游会 | j9九游会 | 下载试用 | 客服中心 | 联系j9九游会 | 相关单位 | 网站舆图 | 新疆电子舆图 | RSS订阅
    版权一切 © 2016 新疆二域j9九游会网 www.k8w.net All Rights Reserved
    新疆j9九游会>###、4811639.
    ### ;>###华联大厦A-5C 邮编:830000