JAVA哪些特性是C#做不到的?

来源:百度知道 编辑:UC知道 时间:2024/06/01 16:06:52
除了跨平台和免费(Mono似乎对这2个问题解决不错)
还有什么?尤其是语言特性上。
感谢大家的回答,可能是大家误解了我的意思。我相信C#、JAVA能实现的东西,C++也能实现,但复杂度是不一样的,我的意思是例如C#能重载运算符,但JAVA不能,像这样的区别,哪些是JAVA有C#没有的?
---------
cyngenius这篇东西我读过,它已经过时了,新的JAVA和C#都已经改变了其中部分特性

现在的面向对象的语言大多数都源自C++,java去掉了C++中那些复杂,实用性低的语言特性,达到了一个不错的平衡。

c#是在java如日中天的时候产生了,因此它不可避免的引入了java中绝大多数优秀的元素。

因此但从语言特性上,两种语言不会出现一种能实现,而一种无法实现的。

即便大型的应用,也是都可以实现,只不过可能在特定的方面,一种要比另一种做的好。

就算是所谓的跨平台。假如微软能推出linux版本的CLR和.net framework。c#一样可以跨,因为它和java都是拥有底层托管机制的。

非要说语言差别,下面基本应该全了,不过这些在另一种中都有替代实现方法。这不是我写的,是很久前收藏的一片文章,你觉得好感谢下作者就可以了

1.属性:
java中定义和访问均要用get和set方法,可以不成对出现。
c#中是真正的属性,定义时get和set必须同时出现,房问时用.号即可。不用get,set

2.对象索引
就是对象数组
public Story this [int index] {

3.C#中,不用任何范围修饰符时,默认的是protect,因而不能在类外被访问.

4.因为JAVA规定,在一个文件中只能有一个public类,而且这个类的名称必须与文件名一模一样,这是一个区别

5.在C#中,它是以Main方法来定位入口的.如果一个程序中没有一个名为Main的方法,就会出"找不到入口的错误".不要把Main写成main哟

6.C#预定义的简单数据类型比Java多。例如,C#有unit,即无符号整数

7.忘掉Java中的static final修饰符。在C#中,常量可以用const关键词声明
C#的设计者还增加了readonly关键词,readonly域只能通过初始化器或类的构造函数设置
8.公用类的入口点:c#是可以对Main进行重载(java中是main),允许有int返回值和空参数的Main