c#和java的区别_C#和java的语法区别
通过这几天,看java视频,总结了一下java与C#的部分语法区别。
1.基本类型
Java是由byte,short,int,long,float,dboule组成,所有类型都是有符号的。
C#除了这些以外,还包括sbyte(有符号) uint,ulong等,还有decimal(java中没有)
java中的byte是从-128到127(有符号),而C#中的byte是0-255 (无符号)
注意:
赋值给float类型是,值后面一定得带"f"或者"F",否则编译不过去,因为系统默认是dboule类型。
2.String类型
基本上也是相同的
直接上图
java中比较字符串建议使用equals,C#中两个都可以。
如果Java像这样
String s1="abc";
String s2="abc";
那么返回的都是true了。因为java和C# 对于字符串来说都有驻留池的概念。
3. 操作符
java与C#唯一的不同就是 java多了一个>>>操作符(被移位二进制最高位无论是0或者是1,空缺位都用0补)
4.流程控制
流程控制包括选择结构(if else switch while,),循环结构 (for) 基本相同的.
不同点包括以下几个方面
4.1 java有一个特殊的控制语句,C# 是没有的。(当然C#通过一些技巧变成方法实现这种控制。具体大家可以自己试着做,这个在开发中应用不大。)
break,continute语句出现在多层嵌套的语句块中时,可以通过标签指明要终止的是哪一层语句块
label1: { ……
label2: { ……
label3: { ……
break label2;
……
}
}
}
4.2 C# 有个goto关键字(参考),java中的goto是保留字,似乎没有用的。
5. 类
java与C#的使用方法上基本相同。
不同点包括以下几点
5.1 如果类中的方法和变量没有修饰符,java中同一个包中的类可以访问,C# 默认为private(我就不做例子)
5.2 静态方法,静态变量 java中可以通过类,也可以通过对象访问(基本上也都通过类来访问),但是C# 只能通过类访问
5.3 this关键字的使用,主要是构造函数不同,
C# 写法
class TestClass
{
public string Name { get; set; }
public TestClass():this("")
{
}
public TestClass(string name)
{
this.Name = name;
}
}
java写法
public class TestClass {
private String name;
public TestClass()
{
this("");
}
public TestClass(String name)
{
this.name=name;
}
}
5.4 引用父类构造函数的不同。java是通过super关键字,C# 是通过 base关键字,使用方法上跟各自的this相同
注意:
java中this,super必须写在构造函数的第一条语句中。
5.5 继承的不同。java继承类通过extends,实现接口通过implements,接口继承接口通过extendsC# 都是通过":"
5.6 java包括静态代码块和非静态代码块,
实例化对象的时候,先执行静态代码块(等同于C#的静态构造函数),只执行一次, 非静态代码块先于构造函数执行。实例化一次就执行一次。C#没有这种写法,java写法如下
//非静态代码块
{
System.out.println("非静态代码块");
}
//静态代码块
static
{
System.out.println("静态代码块");
}
5.6 java中的方法默认都是虚拟的,子类都可以重写,而C# 必须标记为virtual才可以。
6.接口的不同
java中接口可以定义变量,C# 不可以,C# 只能是属性,方法,索引器。
java可以这样定义
public interfaceRunner {int id = 1;public voidstart();public voidrun();public voidstop();
}
7. 异常
java中的方法可以通过throws关键字来抛出异常,然后用try catch 截获。当然,也可以通过throw,C# 只能通过throw
java中这样的写法:
classA{void method () throwsFileNotFoundException{
}
}
8.java中的final关键字,final修饰类和方法的时候, 等同于C#中的sealed。
final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次,等同于C#的readonly
C# 有一个const关键字,用const修饰的变量是编译时常量。显示的初始化,不能通过构造函数初始化
9.java的方法命名是Camel 标记法。C# 是Pascal 标记法。
10.java中的属性实现,必须写get和set方法。不如C#简便。
先写到这里吧,总结的还不够全面,欢迎大家补充说明。
c#和java的区别_C#和java的语法区别相关推荐
- c 调用java post方法_C#调用Java方法(详细实例)
C#可以直接引用C++的DLL和转换JAVA写好的程序.最近由于工作原因接触这方面比较多,根据实际需求,我们通过一个具体例子把一个JAVA方法转换成可以由C#直接调用的DLL C#调用c++ C#调用 ...
- java高频面试_C ++或Java,高频交易哪个更快?
java高频面试 总览 关于什么是高频交易的最佳解决方案,存在不同意见. 问题的一部分是高频交易的变化超出您的预期,另一部分是更快的含义. 我的看法 如果您有一个典型的Java程序员和一个典型的C + ...
- oracle语法和sql的区别吗,ORACLE和SQL语法区别归纳
ORACLE和SQL语法区别归纳 数据类型比较 类型名称 Oracle SQLServer 比较 字符数据类型 CHAR CHAR 都是固定长度字符资料但oracle里面最大度为2kb,SQLServ ...
- csharp与java的区别_C#与JAVA之比较(1)
C#.Java之比较 很多人说C#是微软用来和Java抗衡的武器,因为二者在很大程度上有着惊人的相似 ,尽管如此,两者不同的地方也很多,所谓"于细微处见差异".那么两者的相似和区 ...
- java 最好 入门_C++和Java哪个比较好入门?初学者该如何选择?
选择好的方向比努力更重要,对于初学编程的人来说选择一门合适的编程语言关系到自己以后的职业发展.c++和Java那个更适合作为入门语言?给大家简单科普一下~ C++语言 它是正宗的C语言的嫡系,由C语言 ...
- java protobuffer 网络_C#与Java通过protobuf进行网络通信过程中遇到的问题
上周体验了一把protobuf,google大佬搞的东西据说很多人用,优点自然不用多说,随便搜搜结果一大堆.为了测试这个玩意,随便弄了一个客户端,拿C#写了一个简单的控制台程序请求服务端,服务端拿ja ...
- java memorystream 包_C#到Java:Base64String,MemoryStream,GZipStream
我有一个在.NET中被gzip压缩的Base64字符串,我想将它转换回Java中的字符串.我正在寻找C#语法的一些Java等价物,特别是: > Convert.FromBase64String ...
- stdmove 跟 左键引用 区别_C++ auto和decltype的区别
通过<C++ auto>和<C++ decltype>两节的学习,相信大家已经掌握了 auto 和 decltype 的语法规则以及使用场景,这节我们将 auto 和 decl ...
- c和python区别_C语言和python的区别
Python可以说是目前最火的语言之一了,人工智能的兴起让Python一夜之间变得家喻户晓,Python号称目前最最简单易学的语言,现在有不少高校开始将Python作为大一新生的入门语言.本萌新也刚开 ...
最新文章
- linux 常用命令:
- 基于光线追踪的Mental Ray鱼眼镜头的编程实现 作者:华文广
- Java 单例设计模式
- linux查看ibmmq进程,ibm-mq – 如何检查IBM MQ for Linux中是否存在队列名称?
- CodeForces - 103E Buying Sets(最小权闭合子图)
- 构造函数和复制函数java_什么是Java构造函数?
- b+树时间复杂度_满二叉树、完全二叉树、二叉搜索树、平衡二叉树
- jpa 托管,Apache Aries托管JPA支持哪些JPA提供程序?
- 业界常用的技术评估指标和方法,
- php 通过ip获取省份,通过IP获取用户地理位置省份城市的接口使用
- php+mysql+H5砸金蛋、九宫格、翻翻乐、扭蛋机,开盲盒抽奖程序模板
- shopex PHP Notice,解决最新shopex乱码问题
- Flutter 新版Navigator (一)
- 深拷贝和浅拷贝的区别(必须掌握)
- 验证手机号邮箱,多个以英文逗号分隔
- qt 文件大图标、列表等样式切换_跬步千里,厚积薄发:深度操作系统v15.9版正式发布...
- 移动端图片预览插件-fly-zomm-img.min.js
- python 爬虫 JA3 指纹 TCL SSL 安全证书问题
- 战狼5天票房10亿,吴京抵押房产贷款赚大了
- 01-赵志勇机器学习-Logistics_Regression-train