J2SE与c#的几点比较

最近在学习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更具竞争力。争吵谁抄袭谁也没有意义--技术的发展本来就是一个相互借鉴的过程。纯技术较量也并不能决定这场论战的胜负--如果非要一决雌雄的话。软件界倒乐见竞争,经过市场锤炼的技术才能更好地为我们服务,让我们拭目以待!

(0)

相关推荐

  • J2EE 开发购物网站 经验篇 - 建表

    GO ON 继续进阶!!(本贴个人认为对初学者很有帮助,请大家认真看.因时间仓促,如有错误请指正)SQL*PLUS基础在上一贴中,我们掌握了些基本的oracle操作,如创建.授权用户,创建数据库等.在OEM(Oracle Enterprise Manager)可视化的窗口环境中,虽然我们也可以很方便地做这些事,但是事实上,用SQL语言书写在开发上更有效率!!oracle提供的SQL*Plus就是个不错的工具,如果大家喜欢窗口的开发环境,用SQLPlus Worksheet也行!下面说点基本的西西

  • Eclipse配置Tomcat和JDK步骤图解

    第一次Eclipse配置Tomcat和JDK都会遇到一些问题,小编当时也一头雾水,所以特对此进行了总结,希望可以帮到大家. A:需要的软件及版本: 1.      eclipse-jee-kepler-SR1-win32 2.      apache-tomcat-6.0.37 3.      jdk-7u25-windows-i586   B:配置方法 1. 配置tomcat:Window-Preferences 2.选择Server-Runtime Environments-在右侧点击Add

  • [J2SE]Java中3DES加密解密调用示例

    jce.jar security/US_export_policy.jar security/local_policy.jar ext/sunjce_provider.jar Java运行时会自动加载这些包,因此对于带main函数的应用程序不需要设置到CLASSPATH环境变量中.对于WEB应用,不需要把这些包加到WEB-INF/lib目录下. 以下是java中调用sun公司提供的3DES加密解密算法的样本代码: 复制代码 代码如下: /*字符串 DESede(3DES) 加密*/ import

  • J2SE中的序列化的认识

    java中处处体现着简单的程序设计风格,序列化作为最常用的功能之一,在java中的设计尤为"简单".在ObjectInputStream 和ObjectOutputStream的帮助下,我们可以轻松的实现序列化. 只要我们的class 实现了java.io.Serializable接口,就可以利用ObjectOutputStream的writeObject()方法将一个对象序列化:利用ObjectInputStream的readObject()方法,可以返回读出的object对象.Se

  • J2EE项目代码编写规范分享

    码编写规范目的:能够在编码过程中实现规范化,为以后的程序开发中养成良好的行为习惯. 代码编写规范使用范围:J2EE项目开发. 包命名规范: 目的:包的命名规范应当体现出项目资源良好的划分 servlet类所在包命名规范:公司名称.开发组名称.项目名称.web.servlet 例如:net.linkcn.web.servlet 自定义标签类所在包命名规范:公司名称.开发组名称.项目名称.web.tags 例如:net.linkcn.web.tags 过滤器类所在包命名规范:公司名称.开发组名称.项

  • 在Ubuntu系统下安装JDK和Tomcat的教程

    一.安装jdk 去java官网下载最新的jdk,Java SE Downloads 解压,tar -zxvf jdk-7u45-linux-i586.tar.gz,将解压生成的jdk1.7.0_45存放到你需要放置的目录,我放置在/usr/share/目录下 配置环境变量 1.JAVA_HOME环境变量 作用:它指向jdk的安装目录,Ecplise/Netbeans/Tomcat等软件就是通过搜索JAVA_HOME变量来找到并使用安装好的jdk 配置方法: echo JAVA_HOME=/usr

  • JAVA帮助文档全系列 JDK1.5 JDK1.6 JDK1.7 官方中英完整版整理

    JDK(Java Development Kit,Java开发包,Java开发工具)是一个写Java的applet和应用程序的程序开发环境.它由一个处于操作系统层之上的运行环境还有开发者编译,调试和运行用Java语言写的applet和应用程序所需的工具组成. JDK(Java Development Kit)是Sun Microsystems针对Java开发员的产品.自从Java推出以来,JDK已经成为使用最广泛的Java SDK(Software development kit). JDK包含

  • J2ME编程中的几个重要概念介绍

    我们都知道,Java ME 以往称作J2ME(Java Platform,Micro Edition),是为机顶盒.移动电话和PDA之类嵌入式消费电子设备提供的Java语言平台,包括虚拟机和一系列标准化的Java API.它和Java SE.Java EE一起构成Java技术的三大版本,并且同样是通过JCP(Java Community Process)制订的. J2ME平台中有几个重要的概念,例如内存.CLDC.MIDP等.初学J2ME往往对这些概念理解不深,甚至出现偏差.本文的目的在于对J2

  • J2ME/J2EE实现用户登录交互 实现代码

    服务器代码: LoginServlet: package com; 复制代码 代码如下: import java.io.ByteArrayOutputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.OutputStream; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet;

  • JDK、J2EE、J2SE、J2ME四个易混淆概念区分

    JDK,J2EE,J2SE,J2ME的概念区别是什么呢? 1.这些是什么? JDK是Java development toolkit,相当于是Java的库函数,是编译,运行java程序的工具包. J2EE是Java 2 enterprise edition是Java的一种企业版用于企业级的应用服务开发 J2SE是Java 2 standard edition是Java的标准版,用于标准的应用开发 J2ME是Java 2 Micro Edition是Java的微型版,常用于手机上的开发 J2EE,

随机推荐