可以到这里详细了解Java与C#的区别,
The C# Programming Language for Java Developers。
我将其整理了下,大致列在下面:
1. 源文件方面。C#可以在一个.cs 文件中。出现多个name sapce(命名空间,有些类似于pacakage),并定义多个类。C#包含有预处理指令。
2. 数据类型方面。
a) C#定义了struct(结构),不能是抽象的,也不能被继承,是值类型的。
b) C#没有基本类型的概念,全部是面向对象的类型,int是Int32的简写。
c) 在Java中const是保留字,final与C#中的const意思相同,C#中还有readonly允许运行时赋初值。
d) 字符串比较,C#中可以用=比较值,与Java一样用StringBuffer来减少内存开销。
3. 运算符方面。C#增加了Checked和Unchecked以绕过编译错误。比如“把一个long付给int32 ,如果高32为零 则不会出错,否则会有溢出错误,unchekced就是告诉编译器不要去管溢出,尽你可能转化”
4. 分支语句方面。在Java中goto是保留字。C#中switch中的case不会顺序执行,末尾必须有break或者goto关键字。
5. 循环语句好像没有什么不同的。
6. 访问修饰符方面。在范围放main,C#增加了internal和protected internal,前者表示只能从当前程序集内可见,即可以在编译时可Assembly的DLL或EXE,类似于JAR;后者表示对当前程序集或者从此包含类继承的类可见。Sealed相当于Java中的final关键字。
7. 方法方面。与Java相同,只有基本类型通过值传递,其他都是传递引用。不过C#也可以以引用的方式传递基本类型,利用ref关键字。而out关键字有些类似于Oracle存储过程,与ref的区别在于:方法忽略out参数初始值,方法必须为out参数赋值。
8. 属性方面。Getter和Setter的写法不太一样。
9. 继承方面。C#增加了base关键字以指向父类。C#中父类方法中具有virtual关键字的才可以被子类重写,重写时还需要声明override。与抽象类相同,abstract关键字也必须被override重写。C#中的接口不能声明常量,接口的属性只是表示Getter或Setter。
10. 事件。Java中没有(Java通过实现自定义侦听器类执行事件)。C#定义了类似于函数指针的委托来实现事件。
11. 运算符重载。Java中无。运算符重载必须为类的静态方法,重载==,其他判等操作也必许重载。
12. 异常方面。与Java非常相似,只是没有throws关键字,无须截获异常(当然要在程序主入口去截)。
13. C#增加了索引器,可以象访问数组一样访问类或结构。个人感觉就是少些几个字而已,还造成一定的困扰。
14. C#的Attribute要比Java的Annotation强很多。不过加上AOP后,这种动态功能Java也不错了。
15. 在C#中也可以直接使用指针,开辟或者回收内存,只是要使用两个关键字unsafe和fixed。
分享到:
相关推荐
在软件开发领域中,Java和C#是两个非常流行的编程语言。它们都有着自己的特点和优势,本文将对Java和C#进行比较,总结出它们之间的异同。 访问控制 在访问控制方面,C#有public、internal、protected、private四种...
综合来看,Java与C#作为两个主流的面向对象的编程语言,在设计理念、编程范式、语法结构上有许多相似之处,但它们在语言特性的实现、运行时环境、面向对象的具体实现方式以及与平台的结合上存在一些区别。Java的跨...
Java 和 C# 都是流行的面向对象编程语言,它们在设计和实现上有着显著的区别。以下是对两者在数据类型、引用类型、对象定向等方面的详细比较: 1. 数据类型: - **单根(统一)类型系统**:Java 和 C# 都有这种...
C#与Java是两种广泛使用的编程语言,它们在许多方面都有所不同,包括语法、类型系统、内存管理、面向对象特性以及平台支持。以下是对这两种语言主要区别的详细说明: 1. 类型系统: - Java只有带符号的整数类型,...
Java 和 C# 都是广泛使用的面向对象编程语言,它们在设计和实现上存在一些显著的区别。以下是对这些差异的详细分析: 1. 数据类型: - Java 只有单根(统一)类型系统,所有数据类型都继承自 `Object` 类。它支持...
尽管两者有许多相似之处,但C#也引入了一些新的语言特性,使其与Java有所区别。以下是一些关键的不同点: 1. **新的语言构造**:C#引入了诸如`foreach`循环、索引器、属性、委托、运算符重载等新的语言构造。 2. **...
8. **受保护的访问修饰符**:在 C# 中,`protected` 访问修饰符使得成员仅能被派生类访问,与 Java 类似,但 C# 中没有 Java 的 `package-private` 访问级别。 9. **final 与 sealed**:Java 中的 `final` 关键词...
Java 和 C# 都是流行的面向对象编程语言,它们在设计和实现上有着显著的区别。以下是对两者之间主要差异的详细分析: 1. **类型系统**: - **无符号整型**:C# 支持无符号整型,如 `ushort`、`uint` 和 `ulong`,...
Dare Obasanjo撰写的这篇详尽且精准的文章——《论C#与Java之异同》首次发布于2001年,随着时间的推移,它已经成为了一个比较这两门语言的权威资料。基于C# 2.0和Java SE 6的新版本,Obasanjo更新了他的文章,旨在从...
- **Code Migration Tools**:某些IDE如Visual Studio或Eclipse提供了代码迁移工具,可以辅助进行C#到Java的转换,尽管可能不完全自动化,但可以提供代码级别的建议和指导。 - **商业解决方案**:一些商业软件如...
通过上述分析,我们可以看到这些初级试题覆盖了Java和C#语言的基础知识点,包括语言特性、基本语法、数据类型、字符串处理、页面设计和开发工具的使用等方面。这些都是入门级程序员需要掌握的基础知识,掌握这些知识...
- **.NET Framework基础**:C# SDK基于.NET Framework,因此开发者需要熟悉C#语言以及.NET环境的开发。 - **接口调用**:海康威视C# SDK提供了一系列的类库和接口,开发者通过调用这些接口实现与设备的交互。 - *...
9. **LINQ**:C#的Language Integrated Query(LINQ)提供了一种在语言级别整合查询的方式,使得数据库查询、XML处理等变得更为直观,这是Java中没有的特性。 10. **异步编程模型**:C#的`async`/`await`关键字使得...
JNI是Java提供的一种接口,允许Java代码与其他语言(如C#)编写的代码进行交互。在C#中,我们可以使用Java的JNI头文件和库来创建一个本地方法,该方法可以在Java中被调用,反之亦然。这种方法需要对C++有一定了解,...
值得注意的是,C#的internal访问级别与Java的default类似,但作用范围基于程序集,而不是包。 继承是另一个重要的面向对象特性,允许一个类(子类)继承另一个类(父类)的属性和方法。Java使用`extends`关键字表示...
在IT行业中,应用程序的安全性是至关重要的,尤其是在Java和C#这样的编程语言中。随着互联网技术的快速发展,安全攻击日益复杂且频繁,因此理解和掌握安全技术成为开发人员必备的技能。 首先,我们来看Java的安全...
本文主要探讨了Java、C#、C++以及Visual C++(VC)这四种编程语言之间的关系和各自的特点,旨在帮助读者理解它们在开发环境中的差异和适用场景。 首先,Java是一种跨平台的编程语言,其运行依赖于Java虚拟机(JVM)。...
C#语言的设计目标是提供一种高效、安全、类型安全且易于学习的编程工具。以下是一些C#的主要优点和特点: 1. **面向对象**:C#是一种严格的面向对象语言,支持类、接口、封装、继承和多态等面向对象编程概念,使得...