J2SE与c#的几点比较

 更新时间:2014年08月30日 11:17:41   投稿:junjie  
这篇文章主要介绍了J2SE与c#的几点比较,是看完马士兵老师的J2SE视频教程有感而写,需要的朋友可以参考下

最近在学习j2se,经过了大约有二十天,把马士兵老师的J2SE看完了,感觉这个老师太幽默了,听他讲课不会走神,时间的利用率特别高。真心的给马士兵老师点个赞,然后再给让我们学习这个视频的米老师点两个!(世界上不乏美好的事物,缺乏的是发现美好事物的眼睛!)。

废话不多说了,看看在这个视频中,到底讲了那些内容。如下图所示:

可能学习过任何一种面向对象语言(我学的c#,c#就是仿照Java,并对java进一步改良)的人,看到这个图的第一感觉,都是这些东西基本上不是都学习过吗,好像只有GUI,JDBC是个新的东东。

其实真的是差不多的,反正大部分人认为他们是相同的。下边对他们进行一下比较!

在语法方面,两者都摈弃了C++中函数及其参数的const修饰,宏代换,全局变量和全局函数等许多华而不实的地方。

在继承方面,两者都采用了更易于理解和建构的单根继承和多接口实现的方案。在源代码组织方面,都提出了声明与实现于一体的更好的逻辑封装。

在基本类型和单根继承的对象之间的类型统一方面C#提出的box/unbox要比Java的包装类显得高明,效率也要好。

面向组件无疑是当代软件开发的主流。C#对组件编程甚至到了"迷恋"的地步,这与6年前就出道的Java不可同日而语--当然这是时代问题。C#通过属性,索引器,委派,事件,操作符重载,特征,版本等实现了其对组件编程的第一手的支持。虽然这些在Java中都可以通过方法,接口或者适配器来间接地实现,但软件业的历史告诉我们这无论对编程效率或者逻辑设计都是一种极大的损伤--高级语言首先面对的是人,而不是机器。除去这些语言层面的组件支持机制,.NET平台也为组件的配置,运行,管理等提供了一揽子解决方案,而为组件开发量身定做的Visual Studio.NET更是令人兴奋,这都为C#的组件编程开辟了广阔的天地。在其他技术方面Java的微弱劣势尚且可以忽略不计,但在组件编程方面Java相较于C#却有着不可治愈的硬伤。尤其对于从C++和Visual Basic背景过来的开发人员,C#在这方面有着不可抵挡的魅力和诱惑。

在跨平台方面,Java的支持和实现都是为人称道的,虽然JVM的速度仍然让人备感头疼。而C#虽然在底层构造方面对移植性进行了充分的考虑,但至少目前还没有成熟的,经过检验的产品。C#在跨平台方面似乎更热衷于XML Web Services互操作,而不是跨平台编程。但C#通过其基础语言构造(CLI)对二十多种主流语言的对象级的互操作支持,又极大地提升了C#的技术地位。和COM组件廉价地互操作也为C#挣到不少分数--保持一个兼容的体系对现代软件工业非常重要,也是对广大开发人员负责任的表现。

当然两个语言的全面的技术品评绝非仅仅上述几点简单的罗列比较,其后端平台(C# for .NET, Java for J2EE),及其编程框架的支持,各语言相关工具的实现,现有的系统基础等等都对程序设计语言的发展产生相当的影响。从纯技术角度来讲,C#无疑较Java更具竞争力。争吵谁抄袭谁也没有意义--技术的发展本来就是一个相互借鉴的过程。纯技术较量也并不能决定这场论战的胜负--如果非要一决雌雄的话。软件界倒乐见竞争,经过市场锤炼的技术才能更好地为我们服务,让我们拭目以待!

相关文章

  • Mybatis-plus全局id生成策略详解

    Mybatis-plus全局id生成策略详解

    这篇文章主要介绍了Mybatis-plus全局id生成策略详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-01-01
  • SpringMVC之@InitBinder注解详解

    SpringMVC之@InitBinder注解详解

    这篇文章主要介绍了SpringMVC之@InitBinder注解详解,springmvc并不是能对所有类型的参数进行绑定的,如果对日期Date类型参数进行绑定,就会报错IllegalStateException错误,需要的朋友可以参考下
    2024-01-01
  • java反射拼接方法名动态执行方法实例

    java反射拼接方法名动态执行方法实例

    下面小编就为大家带来一篇java反射拼接方法名动态执行方法实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-08-08
  • Java中对象的序列化详解及实例

    Java中对象的序列化详解及实例

    这篇文章主要介绍了 Java中对象的序列化详解及实例的相关资料,需要的朋友可以参考下
    2017-04-04
  • java List去掉重复元素的几种方式(小结)

    java List去掉重复元素的几种方式(小结)

    这篇文章主要介绍了java List去掉重复元素的几种方式,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-06-06
  • Java中StringBuilder字符串类型的操作方法及API整理

    Java中StringBuilder字符串类型的操作方法及API整理

    Java中的StringBuffer类继承于AbstractStringBuilder,用来创建非线程安全的字符串类型对象,下面即是对Java中StringBuilder字符串类型的操作方法及API整理
    2016-05-05
  • Java创建与结束线程代码示例

    Java创建与结束线程代码示例

    这篇文章主要介绍了Java创建与结束线程代码示例,小编觉得挺不错的,这里分享给大家,供需要的朋友参考。
    2017-10-10
  • selenium操作隐藏的元素(python+Java)

    selenium操作隐藏的元素(python+Java)

    这篇文章主要介绍了selenium操作隐藏的元素(python+Java),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-07-07
  • java自定义ClassLoader加载指定的class文件操作

    java自定义ClassLoader加载指定的class文件操作

    这篇文章主要介绍了java自定义ClassLoader加载指定的class文件操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-02-02
  • Java动态代理静态代理实例分析

    Java动态代理静态代理实例分析

    这篇文章主要介绍了Java动态代理静态代理实例分析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03

最新评论