二、Java与 C#

来源:互联网 发布:azure arm 端口 控制 编辑:程序博客网 时间:2024/05/17 22:11

要学习C#,不能不首先看一看Java语言。

相对于其他编程语音,Java有一个无庸置疑的优点:用户以及编译器第一次不必了解生成可执行代码的特定CPU细节。Java引入了一个编译代码中间层,叫做字节代码,并使用一个虚拟抽象的机器,而不是一个真实的机器。当Java编译器结束了一个源文件的编译后,你所得到的不是可以立即在一个给定平台上运行的代码,而是可以在任何真实的平台上运行的字节代码,唯一的条件就是这个平台要理解和支持Java。这些发展包含着一个文化的变革。作为一个开发人员,你只需要确定Java虚拟机(JVM)提供的抽象层,不同的OS销售商负责执行代码层,从而将中立于平台的字节代码映射到主机平台的机构中。在这种情况下,Java似乎是统一分布式计算机世界的领袖候选人了。“编写一次,永远运行”(并且无论在哪里)一度成为Java诱人但却真实的口号。

那么为什么说Java只是“似乎”是一个好东西呢?跨平台理论的发展很好地证明了这一点。我们看到,将Java代码从一个平台移植到另一个平台—Java这个语言最重要和最受吹捧的特点并不象宣传的那样容易。任何Java平台都有其自己的虚拟机,它可以理解通用的字节代码,并且及时地将其编译为本地代码。矛盾由此产生,不同虚拟机的执行也很不相同,这一点足以使代码的移植比预期耗费多得多的时间,而且基本上不是自动的。

那么,Java模型的好处在哪里呢?首先,Java是一种先进的、面向对象的语言,包含了预防常见错误的内置功能,并在仅仅一两个对象中携带了许多经常需要用到的功能。与C++相比,Java更易于读写,不容易出错,而且更加美观,但是它速度较慢也不太灵活。想实现在任何软件和硬件平台上都可虚拟移植,Java尽可能少地使用了公分母模型,也就是说放弃了将每个平台开发到极限的能力。第二,虚拟机的概念本身就是可移植和可共用的,因此对于分布式环境来说是理想的。Java对于为非Windows平台开发代码是最好的语言。

那么对于Windows平台来说,Java又怎么样呢?让Java适应Windows是不可能的,这是由于Sun的许可约束问题。但是Java实在是太吸引人了,Microsoft比谁都能更清楚这一点。因此,Microsoft又一次采取了“拿来主义”的手法,很好地利用了Java 的众多特性,隆重推出了Windows平台的新锐力量,它就是相当简单但十分强大的面向对象的C#编程语言。C#超过了C++,它天生就包含了.NET框架类库中的所有类,并使语法简单化。

可以说,Java具备的优点,C#都可以或者都将具备! 
原创粉丝点击