浅谈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的一部分区别!的主要内容,如果未能解决你的问题,请参考以下文章

吐血整理!java马士兵

Java学习教程!java视频马士兵百度云

JAVA设计模式学习顺序,请高手指点!

Java-马士兵动态代理模式

马士兵 note6

马士兵VIP课程马士兵MCA Java高级互联网架构师