Java与C# 差异(2011-7-19)

来源:互联网 发布:淘宝去呢薅羊毛高手 编辑:程序博客网 时间:2024/05/23 22:17

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  :int num = 100;               C# :int num = 100;
num.ToString(); //出错             num.ToString();  //自动装箱
Integer n = num;  //自动装箱
                n.toString();

按照封装原则,一个类的属性应该是私有的,在java中需要暴露一个属性通常用set/get方法,在C#中也一样,不过C#还提供了一个单独的语法来做这个工作:
Public class MyClass{
      private string name;
      public string Name {
       get { return name; }
       set { name = value}
      }
}
在Java中一个类文件只能有一个公有类,且类名必须与文件名相同, 但在C#中没有这种限制,一个文件可以有多个公有类,一个类还可以分散放在多个文件中。Java的类方法一般用小写字母开头,而C#的类方法一般用大写字母开头。

 

       

 

原创粉丝点击