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# 提供无符号整数类型,如
ulong、uint、ushort和byte。
- Java 不支持运算符重载;在 C# 中,可以重载运算符和转换。
- 在 Java
switch语句中,代码可以贯穿到下一个 switch 部分,但在 C# 中,每个switch部分的结尾必须终止 swith(每个部分的结尾必须以break语句结束)。
- 在 Java 中,指定由带
throws关键字的方法引发的异常,但 C# 没有检查异常的概念 –throws关键字在 C# 中不受支持。
- Java 不支持语言集成查询 (LINQ)。
java VS c#,异同点的更多相关文章
- atitit。全局变量的设计与实现 java php的异同
atitit.全局变量的设计与实现 java php的异同 1. 超级全局(Superglobals)"变量 1 2. 全局变量和"global"关键字 1 3. 更加好 ...
- switch与java,c#的异同
<script type="text/javascript" language="javascript"> //JavaScript控制语句基本和以 ...
- 《Java程序设计》第二周学习总结(一)
教材学习内容总结 标识符.关键字 基本数据类型 类型转换运算 输入.输出数据 数组 教材学习中的问题和解决过程 问题1:在创建vim并编写完成后出现以下情况 问题1解决方案:打开虚拟机的文件目录,发现 ...
- java与C#对比文章阅读
文章:JAVA与C#的区别 讲了C#与java一些基本异同. 易语言官网有个表,比较了易语言.Java.C#的区别,比较全面可以借鉴.
- Java与C语言的区别——含面向对象介绍
很多初学编程的小伙伴或者想要学习编程的小白弄不清C语言和Java的区别.本文就针对萌新们尽量用通俗的语言来介绍一下我所理解的编程语言界的两大巨头. 为什么说是两巨头,介绍之前我们先看一下某度搜索出来的 ...
- 大学四年,总结一套适合小白的Java自学路线和方法
前言篇 大家好,我是bigsai 好久不见,甚是想念,文章同时收录在回车课堂(文底阅读原文可达). 无论你是大学生还是在职人员,想学Java时,都会面临两个选择,自学或者报班.报班通常太费钱,时间又不 ...
- 开源中国【面经】Java后台开发
2021.04.09 直接正文: 开场自我介绍,说一下自己 有没有实习经历?(毕业实习) 毕业实习学了什么?(前端) 有什么大项目吗?(除了课设就是毕设) 能说一下毕设的情况吗?(做了大概,没有开始登 ...
- 学习Java第3天
今天所做的工作: 1.循环结构 2.字符串 3.数组 4.面向对象概述 明天工作安排: 1.类和对象 2.包装类 所遇到的问题及解决方法: 1.循环foreach语句 2.字符串初始化与c++的差异 ...
- Groovy学习笔记(二)
在上一篇文章中我们主要学习了如何搭建Groovy开发环境,为我们的Groovy之旅做好了准备工作,不知道你是否准备好了?接下来我们就一起看看Groovy与我们熟悉的Java有什么异同. Groovy是 ...
- Javascript诞生与历史
基本常识 Brendan Eich在1995年4月入职Netscape Communications Corporation(网景通信公司).并于1995年5月用10天时间发明了Javascript. ...
随机推荐
- Jsoup-解析HTML工具(简单爬虫工具)
Jsoup-解析HTML工具(简单爬虫工具) 一.简介 jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址.HTML文本内容.它提供了一套非常省力的API,可通过DOM,CSS ...
- VPS虚拟专用服务器
目录 0x00 VPS服务器概述 0x01 VPS工作原理 0x02 VPS用途 0x03 VPS优势 0x04 VPS特点 0x00 VPS服务器概述 VPS服务器(虚拟专用服务器)(" ...
- [CF544] D. Destroying Roads
D. Destroying Roads time limit per test 2 seconds memory limit per test 256 megabytes input standard ...
- vue在一个方法执行完后再执行另一个方法
vue在一个方法执行完后执行另一个方法 用Promise来实现.Promise是ES6的新特性,用于处理异步操作逻辑,用过给Promise添加then和catch函数,处理成功和失败的情况 ES7中新 ...
- Vue项目多域名跨域
在Vue项目中请求后台数据时,遇到的多域名跨域问题. 直接上代码: assetsSubDirectory: "static", assetsPublicPath: "/& ...
- Linux下yum与apt-get
linux系统基本上分两大类: 1.RedHat系列:Redhat.Centos.Fedora等 2.Debian系列:Debian.Ubuntu等 RedHat 系列 1 常见的安装包格式 rpm包 ...
- 百万年薪python之路 -- RBAC角色权限设计
RBAC(Role-Based Access Control,基于角色的访问控制),就是用户通过角色与权限进行关联.简单地说,一个用户拥有若干角色,每一个角色拥有若干权限.这样,就构造成"用 ...
- SpringBoot中如何优雅的读取yml配置文件?
YAML是一种简洁的非标记语言,以数据为中心,使用空白.缩进.分行组织数据,从而使得表示更加简洁易读.本文介绍下YAML的语法和SpringBoot读取该类型配置文件的过程. 本文目录 一.YAML基 ...
- 实现基于netty的web框架,了解一下
上一篇写了,基于netty实现的rpc的微框架,其中详细介绍netty的原理及组件,这篇就不过多介绍 这篇实现基于netty的web框架,你说netty强不强,文中有不对的地方,欢迎大牛指正 先普及几 ...
- Hadoop 在 windows 7 64位的配置(一)|非cygwin
参照原文 http://blog.csdn.net/supperman_009/article/details/39991809 环境: Hadoop-2.4.1 Windows 7 64位 jd ...