浅谈C#与JAVA的一部分区别!
Posted 阶梯之上
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了浅谈C#与JAVA的一部分区别!相关的知识,希望对你有一定的参考价值。
今天去图书馆借了一本《C#入门经典》,一口气看了5章,发现了一些好玩的东西。
我3年前自学了JAVA,还记得大一暑假废寝忘食的看马士兵的视频教程,那个视频真的是最好的,虽然录的时间有点久远,但是经典无法撼动,虽然我已经2年没动过JAVA了,但是我现在还依稀记得JAVA的一些特征,凭靠我仅存的一些对JAVA的一些记忆,来谈谈C#与JAVA的一些区别。
首先说的肯定是代码的区别:
来看看C#的代码:
namespace Test
class Program
static void Main(string[] args)
Console.WriteLine("HelloWorld!");
再看看JAVA的代码:
public class Test
public static void mian(string[] args)
System.out.println("HelloWorld!");
对于我学过JAVA的人来说区别真的不大,整体是一致的,只不过C#多了一个namespace命名空间!
第二个好玩的地方是:
C#里面有一个叫逐字指定字符串,说多了看的头晕,直接看代码!
“C:\\\\Temp\\\\Test\\\\File.doc”;
@“C:\\Temp\\Test\\File.doc”;
看到区别了吗?多了一个@并且只有一个反斜杠,既增加了可读性,又使代码简洁了,何乐而不为啊,我以前学习OC的之后发现字符串前面会加一个@,在C#还是第一次发现.
在C#中第一次发现的还有var这个关键字
它的全名叫隐式类型变量,那它怎么用呢?它与OC里面的id类似,可以先不指定变量的数据类型,可以在赋值之后来断定数据的类型。
比如:
var a = "Test";
var b = 10;
var c = 'T';
上面的赋值都是正确的,当在赋值时,编译器会根据所给的值来断定是属于什么数据类型:当给a一个字符串“Test”时,那么这时a就是string类型,当给b赋值为10时,这时b就是int类型,当给c赋值为'T'时,这时c就是char类型。
但是:
var a;
a = "Test";
这种写法是错误的,因为隐式类型的局部变量必须初始化。
数组是另一个让我感到很不同的地方。
给C#定义一维数组跟java是一样的。
例如:
string[] aArray = new string[5];
string[] bArray = new string[] "ABC","ACB","BCA","CBA","BAC";
string[] cArray = new string[5] "ABC", "ACB", "BCA", "CBA", "BAC" ;
string[] dArray = "ABC", "ACB", "BCA", "CBA", "BAC" ;
但是C#与JAVA的二维数组的定义就看出来差别了。
例如JAVA的是这样定义的:
int[][] test = new int[3][3];
而在C#中,二维数组的定义是这样的:
int[,] test = new int[4,4];
当然也可以定义隐式类型的数组:
var eArray = new string[] "abc","abcd";
上面这样定义是可以的。
就酱!!
以上是关于浅谈C#与JAVA的一部分区别!的主要内容,如果未能解决你的问题,请参考以下文章