写文档背景
总有人会问我,Java语言和C#语言有什么区别。因为我曾用过这两种语言进行过研发。
我本人有时候很懒,又不细心。被问到这个话题的时候,其实从来都没有自己去思考并整理这个问题。
其实有想过,不过后来忘记了(时间久远了)。但是从来都没有一次去记录过。
我当时临场应变,依稀记得一些,不过细节上却说不出个123来。
直观感觉,C#用起来比Java简单。这不是错觉,是真的用起来简单。
因为一些原因,我有些时间可以进行这些实验了。我的实验是参照《Java解惑》这本书,之后整理的一些内容。
废话不多说了,马上进入正题。
正题
C# 是在VS2010尝试的。
文章中可能会有些的不对的地方,多多包涵。
1.Unicode 转义字符。
【Java】
等价于
虽然看似极端,不过确实能执行。
Java对 字符串字面常量中 Unicode 转义字符 没有提供任何特殊处理。
编译器在将程序解析成各种符号之前,先将Unicode转义字符转换成它们所表示的字符。
因为有着这样的原因,Java代码可以完全用 Unicode码去编写。
我们不能在类、接口、方法注释中,轻易使用Unicode码,虽然IDE工具会提示我们将会有错误。C#语言对Unicode码的机制有所不同,在注释当中直接写也不会有问题。因此C#程序就不能完全用 Unicode码去编写。
Java语言与C#语言不同处体现。
【Java】
【C#】
2.Java计算精确计算时,需要多多考虑。
Java和C#都是强类型的。不过Java和C#基本数据类型的机制却完全不同。
Java对整数是正负没有强制要求。C#却有明确的无符号整数和有符号整数机制。
这在某些情况编程的时候,很棘手。
如下代码可以说明这点:
①多重转型
【Java】
【C#代码】
②十六进制(hex)的趣事
【Java代码】
【C#代码】
【细扣的话】Java语言处理数制方法 与 C#语言处理数制方法是不同的。如下。
【Java】
【C#】
③长整除
【Java代码】
【C#代码】 事先计算会不会溢出
④找零时刻(零钱)
【Java代码】
【C#代码】
3.三目运算符 Java中使用一定要确定第二,第三表达是的数据类型。
【Java代码】
【C#代码】 通过实验观察 C#是要求 第二,第三表达式的类型是一定要相同的。不同时会向宽的数据类型隐式的转换。
4. x += i; x = x + i; 表达式体现的问题。
有的问题Java已经做了调整(+为字符串连接符的时候)。
上述连个表达式,Java处理的时候有不同的原则,而C#处理的时候遵从同一个原则。
【Java代码】
JDK5,JDK6
JDK7+
【C#代码】
5.字符串问题的处理方式。
①静态字符串 Java是开放的。 C#是有要求的。
【Java代码】
【C#代码】
②字符串常量 用连接字符串 连接 字符串变量,处理机制不同。
【Java代码】生成一个新的对象。
【C#代码】不会生成一个新的对象。
结尾:
上面的几个实验不能说明哪种语言更好,涉及的内容也不是很多。
不过在使用Java语言和C#语言还是有区别的。
我本人感觉,使用Java语言编程的时候考虑的东西可能会多一些,相对C#语言。(也可能我接触C#语言接触的比较少。)
不过从另一方面,初学Java语言和C#语言的时候,肯定是C#语言上手快错误相对少。
因为初学一般都是数据类型、运算符等方面的知识。
而从上面实验过程中不难发现Java语言在这方面的要求还是蛮高。
本文对比了Java与C#在Unicode转义字符处理、数值计算精度、三目运算符使用等方面的差异。通过具体实例展示了两种语言的不同之处。

453

被折叠的 条评论
为什么被折叠?



