java与C#的简单比较
刚刚看完java视频,做了个简单图:

 
 
新知识不多,大多是与以往知识的相互碰撞,一下做了java与C#的简单比较:
|                          | Java | C#   | 
| 主类名与文件名 | 必须一致 | 可以不一致 | 
| 命名空间导入方式 | import关键字 | using关键字 | 
| 常量 | final关键字 | Const关键字 | 
| 基本数据类型 | C#中有无符号数,Java没有。
 C#中有值类型,且可自己定义值类型的结构体(struct)。
 Java中的基本类型(或叫基元类型)即为值类型,但Java没有结构体,所以不能自定义值类型。
 C#中的值类型(包括所有基本类型)间接继承自Object,有自己的方法可以调用;Java中的值类型(即基本类型)不继承自Object,只是简单的数据,没有方法可以调用。
 
 C#中int等同于System.Int32,是值类型;bool等同于System.Boolean;等。
 Java中int是基本类型,是值类型,而Integer是引用类型,Integer是int的包装器,int自身没有方法,Integer有一些方法;int与Integer之间可隐式转换(导致装箱和拆箱),但当Integer值为null的时候会在运行时抛出异常。boolean等类似。
 
 Java中的int与Integer的对应在C#中类似int和Nullable<int>的对应,它们的后者都是前者的包装,且后者可以等于null。但Nullable<int>实际上仍然是值类型的(所以仍然很轻量级),所以从内存上讲C#中int和Object的对应更接近Java的对应一些。C#中Nullable<int>到int的转换必须显式进行,因为Nullable<int>中的值为null时会引发运行时异常。
 其他基本类型与之类似。
 | 
| 初始化 | 调用基类构造函数: SubClass():base(){} | 调用基类构造函数: SubClass(){  super(); } | 
| Switch语句 | (1)只能处理int类型 (2)每个case块后写
                    
                    
                    
                        免责声明: 本文仅代表作者个人观点,与爱易网无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
                     |