本文讨论 Java 和 C# 之间的异同点,目的在于当迁移到 .NET 时,让 Java 开发人员掌握所涉及的一些知识。Java 和 C# 之间的主要相似点是:
• | Java 和 C# 都源于 C++,并且共有 C++ 的一些特征。 |
• | 两种语言都需要编译成中间代码,而不是直接编译成纯机器码。Java 编译成 Java 虚拟机 (Java Virtual Machine, JVM) 字节码,而 C# 则编译成公共中间语言 (Common Intermediate Language, CIL)。 |
• | Java 字节码是通过称为 Java 虚拟机 (JVM) 的应用程序执行的。类似地,已编译的 C# 程序由公共语言运行库 (Common Language Runtime, CLR) 执行。 |
• | 除了一些细微的差别以外,C# 中的异常处理与 Java 非常相似。C# 用 try...catch 构造来处理运行时错误(也称为异常),这和 Java 中是完全一样的。System.Exception 类是所有 C# 异常类的基类。 |
• | 同 Java 一样,C# 是强类型检查编程语言。编译器能够检测在运行时可能会出现问题的类型错误。 |
• | 同 Java 一样,C# 提供自动垃圾回收功能,从而使编程人员避免了跟踪分配的资源。 |
• | Java 和 C# 都支持单一继承和多接口实现。 |
现在让我们看一看本文涵盖的重要差异:
• | C# 语言引入了一些新的语言构造,如 foreach、索引器、属性、委托、运算符重载和其他语言构造。在本文后面我们将更详细地讨论这些构造。 |
源文件约定
我们需要知道,两种语言在源程序的文件命名约定和结构上有一些不同:
文件命名
包含 C# 类的文件的命名约定与 Java 有点不同。首先,在 Java 中,所有源文件的扩展名都为 .java。每个源文件都包含一个顶层公共类声明,并且类名必须与文件名相匹配。换句话说,一个用公共范围声明的名为 Customer 的类必须定义在具有名称 Customer.java 的源文件中。
而 C# 源代码是由 .cs 扩展名表示的。与 Java 不同,源文件可以包含多个顶层公共类声明,而文件名不需要与任何类名相匹配。
时间: 2024-09-17 03:31:25