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. ...
随机推荐
- Redis Sentinel(哨兵核心机制) 初步深入
##### 1.Redis 的 Sentinel 系统用于管理多个 Redis 服务 该系统执行以下三个任务: 1.监控(Monitoring): Sentinel 会不断地检查你的主服务器和从服务 ...
- python学习(索引/切片)
一.索引 1.索引值从左到右-->从0开始,索引值从右到左-->从-1开始 取值格式var[index] >>> name = "xinfangshuo&quo ...
- C# 结合 Golang 开发
1. 实现方式与语法形式 基本方式:将 Go 程序编译成 DLL 供 C# 调用. 1.1 Go代码 注意:代码中 export 的注释是定义的入口描述不能省略 package main import ...
- Joomla3.4.6 RCE漏洞深度分析
笔者<Qftm>原文发布:https://www.freebuf.com/vuls/216512.html *严正声明:本文仅限于技术讨论与分享,严禁用于非法途径 0×00 背景 10月9 ...
- Django框架简介与使用注意事项
一.Django框架简介 MVC框架和MTV框架 MVC框架 MVC,全名是Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分:模型(Model). ...
- ESP8266开发之旅 网络篇① 认识一下Arduino Core For ESP8266
博主的 ESP8266开发之旅 专栏主要分为三个部分: 基础篇 网络篇 应用篇 从这一篇开始,博主将会带领各位读者在基础篇的基础上进入网络的世界.在此,博主认为各位读者已经具备以下前提 ...
- 深度讲解Linux内存管理和Linux进程调度-打通任督二脉
我在多年的工程生涯中发现很多工程师碰到一个共性的问题:Linux工程师很多,甚至有很多有多年工作经验,但是对一些关键概念的理解非常模糊,比如不理解CPU.内存资源等的真正分布,具体的工作机制,这使得他 ...
- Leetcode(3)无重复字符的最长子串
Leetcode(3)无重复字符的最长子串 [题目表述]: 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 第一种方法:暴力 执行用时:996 ms: 内存消耗:12.9MB 效果: ...
- python常用算法(7)——动态规划,回溯法
引言:从斐波那契数列看动态规划 斐波那契数列:Fn = Fn-1 + Fn-2 ( n = 1,2 fib(1) = fib(2) = 1) 练习:使用递归和非递归的方法来求解斐波那契数 ...
- MySQL学习之路(1):SQL脚本语言
使用MySQL数据库,首先安装MySQL数据库,本文所有SQL脚本在MySQL上测试和执行. 安装Mysql服务器:安装Mysql workbench客户端,可以以图形化界面管理mysql:安装php ...