Java与C#差异
刚刚踏上工作岗位,一切又回到了原点,不管学校如何优秀或者差劲,走上这个岗位,我愿意又从零开始,开始新的积累,让这张白纸色彩缤纷。
在学校学习的是java,实践的也是Java,也做过一些项目,刚进公司,跟着公司做一个oa系统,是用Java,现在要开始另一个项目了,用C#开发,将每天学习的都,整理一下,和初学者分享
1、环境的差异
(1)java使用JDK,C#使用SDK
(2)在cmd运行差异
java : 首先javac将.java源文件编译为字节码文件,Java,解释执行字节码文件(执行Java以后,产生一个JVM,jVM到classpath下寻找字节码文件,右classLoad加载,字节码校验器审查字节码,解释器结合jre执行)
C# : csc编译并执行.cs源文件
2、语法差异
(1)值类型
1.基本数据类型
Java有八种基本数据类型:boolean,byte,char,short,int,long,float,double、
C#的值类型:简单类型:整数类型(byte,sbyte),char,(short, ushort) ,( int, uint) , (long, ulong)布尔类型(bool)实数类型(float,double,decimal),字符类型(char)
结构类型: 在C#中的结构使用struct关键字定义(类和结构都是创建对象的模板,都可以包含字段和方法,都需要用new实例化,类中可以初始化非常量字段值,但结构中不可以初始化非常量字段值,结构是值类型,使用结构可以提高性能,类是引用类型,结构不支持继承)
枚举类型 :
在java和C#中String都属于类类型,但是String和其它类类型不同的是String属于值传递而不是引用传递。
2、引用类型(摘自新浪博客)
所有的类类型(除了String)都是引用类型,在一个值类型转换为相应的类类型时,java和C#都有自动装箱机制,感觉C#做的更进一步,比如,我们要将一个int数值转为一个String:
Java
num.ToString(); //出错
Integer n = num;
按照封装原则,一个类的属性应该是私有的,在java中需要暴露一个属性通常用set/get方法,在C#中也一样,不过C#还提供了一个单独的语法来做这个工作:
Public class MyClass{
}
在Java中一个类文件只能有一个公有类,且类名必须与文件名相同, 但在C#中没有这种限制,一个文件可以有多个公有类,一个类还可以分散放在多个文件中。Java的类方法一般用小写字母开头,而C#的类方法一般用大写字母开头。