因工作安排,后期需要维护一个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)。

java VS c#,异同点的更多相关文章

  1. atitit。全局变量的设计与实现 java php的异同

    atitit.全局变量的设计与实现 java php的异同 1. 超级全局(Superglobals)"变量 1 2. 全局变量和"global"关键字 1 3. 更加好 ...

  2. switch与java,c#的异同

    <script type="text/javascript" language="javascript"> //JavaScript控制语句基本和以 ...

  3. 《Java程序设计》第二周学习总结(一)

    教材学习内容总结 标识符.关键字 基本数据类型 类型转换运算 输入.输出数据 数组 教材学习中的问题和解决过程 问题1:在创建vim并编写完成后出现以下情况 问题1解决方案:打开虚拟机的文件目录,发现 ...

  4. java与C#对比文章阅读

    文章:JAVA与C#的区别 讲了C#与java一些基本异同.    易语言官网有个表,比较了易语言.Java.C#的区别,比较全面可以借鉴.    

  5. Java与C语言的区别——含面向对象介绍

    很多初学编程的小伙伴或者想要学习编程的小白弄不清C语言和Java的区别.本文就针对萌新们尽量用通俗的语言来介绍一下我所理解的编程语言界的两大巨头. 为什么说是两巨头,介绍之前我们先看一下某度搜索出来的 ...

  6. 大学四年,总结一套适合小白的Java自学路线和方法

    前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不 ...

  7. 开源中国【面经】Java后台开发

    2021.04.09 直接正文: 开场自我介绍,说一下自己 有没有实习经历?(毕业实习) 毕业实习学了什么?(前端) 有什么大项目吗?(除了课设就是毕设) 能说一下毕设的情况吗?(做了大概,没有开始登 ...

  8. 学习Java第3天

    今天所做的工作: 1.循环结构 2.字符串 3.数组 4.面向对象概述 明天工作安排: 1.类和对象 2.包装类 所遇到的问题及解决方法: 1.循环foreach语句 2.字符串初始化与c++的差异 ...

  9. Groovy学习笔记(二)

    在上一篇文章中我们主要学习了如何搭建Groovy开发环境,为我们的Groovy之旅做好了准备工作,不知道你是否准备好了?接下来我们就一起看看Groovy与我们熟悉的Java有什么异同. Groovy是 ...

  10. Javascript诞生与历史

    基本常识 Brendan Eich在1995年4月入职Netscape Communications Corporation(网景通信公司).并于1995年5月用10天时间发明了Javascript. ...

随机推荐

  1. 编译 lame for iOS

    网上找了许多编译lame的教程,结果都是编译失败,多次尝试后发现是编译脚本放错路径了,记录下编译的过程,把编译脚本放到源码文件夹中和修改编译脚本中的目录是关键: 一.首先去Lame官网 http:// ...

  2. Head First设计模式——策略模式

    1.继承带来的扩展和复用问题 继承作为面向对象的三大要素(封装.继承.多态)之一为什么会带来问题,问题如何解决然后形成一种设计模式,head frist设计模式书中以鸭子作为例子讲解什么情况下继承的方 ...

  3. System NT Kernel & System占用CPU 12%左右 终极解决方案,原来是更新惹的祸

    任务管理器发现 system进程持续占用12%左右的cpu,网上搜索到的很多方法均无效 误打误撞发现了这个方法,亲测可用 卸载系统补丁(KB41000347),提升10%的cpu性能 卸载补丁前:  ...

  4. Idea项目注释规范设置

    Idea项目注释规范设置文档 1.类注释: /**    *@ClassName: ${NAME}    *@Description: TODO    *@Author: guohui    *@Da ...

  5. 手写OOXML文档——导出xlsx格式表格文档

    一.准备工作: 2个js库,另外把样式文件抽离出来 require('file-saver'); import JSZip from 'jszip' import {stylesData,theme1 ...

  6. PHP get_object_vars 和 get_class_vars

    <?php class Girl { public $id = 1; public $name = 'zhy'; } $girl = new Girl(); var_dump(get_class ...

  7. PHP krsort

    1.什么都不想说了,干么没事放那么悲伤的歌呢?回忆里我还是对代码懵懵懂懂的无知青年!也许不是青年,只是少年... <?php $arr = [ 1 => 'Zhangbiyu', 2 =& ...

  8. java学习-IDEA运行java程序报错

    问题1: 解决办法:依次执行如下两步   问题2: 解决办法:如下两项版本应保持一致

  9. 百万年薪python之路 -- 面向对象之继承

    面向对象之继承 1.什么是面向对象的继承 继承(英语:inheritance)是面向对象软件技术当中的一个概念. 通俗易懂的理解是:子承父业,合法继承家产 专业的理解是:子类可以完全使用父类的方法和属 ...

  10. ubuntu18.04 flink-1.9.0 Standalone集群搭建

    集群规划 Master JobManager Standby JobManager Task Manager Zookeeper flink01 √ √ flink02 √ √ flink03 √ √ ...