java VS c#,异同点

  因工作安排,后期需要维护一个java项目。所以稍微熟悉下java,开此篇记录下java与c#的区别点,方便增强自己学习效果。肯定是不全的,可能是有错的,欢迎批评指正。

一、关键字

描述 C# Java 备注
引用其他类库 using import  
命名空间 namespace package 声明一组相关对象的作用域。
定义常量 const final  
访问控制修饰符 internal default java默认为default,c#默认为private
表示父类 base super 用于从派生类中访问父类的成员。
继承类 : extend  
继承接口 : implements  
不允许继承 sealed final 防止类派生;防止方法和属性在派生类中被重写。
类型判断 is instanceof 评估对象与给定类型是否兼容。 
循环遍历 foreach() for(type element: array) 例:for(int x : numbers ){}
lock synchronized  
可变数量参数 params T T... 指定采用可变数目的参数的方法参数。
外部实现的方法 extern native 声明外部实现的方法。
布尔值 bool boolean  

 

 

 

 


 

 

 

 

 

 

 

 

 

二、代码结构

  • java中,如果一个类定义在某个包中,那么package语句应该在源文件的首行。package中内容不用花括号包起来,范围适用于全文见。
  • java中,如果源文件包含import语句,那么应该放在package语句和类定义之间。如果没有package语句,那么import语句应该在源文件中最前面。
  • java中,一个源文件中只能有一个public类。
  • java中,一个源文件可以有多个非public类。
  • java中,源文件的名称应该和public类的类名保持一致。
  • java中,调用父类构造函数,需要在子类构造函数中显示调用super(params);C#中在子类构造函数声明后加上:base(param)来实现。

三、编码风格

  • java中,方法名使用帕斯卡命名法,首字母小写。
  • java中,左花括号不换行。

四、其他

  • 在 Java 中,int类型前缀0表示8进制;在C#中忽略0,前缀0x表示8进制。
  • 在 Java 中,标识符中允许有美元符($),且允许作为首字符;c#中是@字符。(都是字母数字下划线加前文特殊符号)
  • 在 Java 中,重写父类方法不需父类方法标示为virtual。没有覆盖概念。
  • Java 不支持隐式类型的局部变量(C# 支持 var 关键字)。
  • 在 Java 中,可以仅按值传递参数,而在 C# 中,你可以按引用以及值进行传递。 (C# 提供 ref 和 out关键字,用于按引用传递参数;Java 中无此类等效项)。
  • Java 不支持预处理器指令,如 #define
  • Java 不支持无符号整数类型,而 C# 提供无符号整数类型,如 ulonguintushort 和 byte
  • Java 不支持运算符重载;在 C# 中,可以重载运算符和转换。
  • 在 Java switch 语句中,代码可以贯穿到下一个 switch 部分,但在 C# 中,每个 switch 部分的结尾必须终止 swith(每个部分的结尾必须以 break 语句结束)。
  • 在 Java 中,指定由带 throws 关键字的方法引发的异常,但 C# 没有检查异常的概念 – throws 关键字在 C# 中不受支持。
  • Java 不支持语言集成查询 (LINQ)。
posted @ 2019-09-04 11:09  此树快长  阅读(2493)  评论(0编辑  收藏  举报