Java中透明和不规则Swing窗口 - 编程入门网
args);自动装箱(autoboxing);类型安全的枚举(typesafe enum)等等。此外,支持元数据的的注释(annotation)与C#的特性(attribute)大同小异,C#从Delphi中引入的属性(property)也出现在Java 7的提案中。”
逗号双手一摊:“这么多相同之处,不如合并算了。” “很傻很天真的想法。等它们合并了,估计世界也大同了。”冒号笑言,“它们之间的差别也不容忽视。C#重新捡起了C++中被Java抛弃的一些特征,可谓是对C++的否定之否定——除了支持引用类型(reference type)外,还支持值类型(value type)[1];除了按值传递(pass-by-value)外,还可按引用传递(pass-by-reference);支持操作符重载(operator overloading);在一定条件下保留指针和指针运算;所有的方法默认是非虚的(non-virtual);访问权限默认是私有的(private);将关键字‘extends’和‘implements’统一为‘:’;支持预处理指令(preprocessor directive)等等。公允地说,这些大都为明智之举。” 冒号课堂§6.2:平台语言(3)时间:2011-06-27 BlogJava xyz98引号追问:“C#有什么独到之处吗?” “C#并非一味地效仿其他语言,也有创新之举。曾在Visual J++中加入的委托(delegate)和相关的事件(event),如今可以堂而皇之地用在C#上,再不用担心被Sun告了。”冒号语带调侃,“C#还是第一个支持组件导向(Component-Oriented)的C族语言。除此之外,C#支持索引器(indexer)、版本控制(versioning)、XML注释、特色指令如#region、特色关键字如checked、yield等等。还有一点不得不提,C#对函数式编程的支持力度逐渐加大:1.0的delegate可作为头等函数(first-class function),2.0的匿名delegate可作为闭包,3.0又引入了λ表达式,几乎可号称函数式语言了。及至C#4.0,进一步向动态语言靠拢,将引入关键字dynamic以支持动态类型和动态操作。” 叹号眉头微蹙:“听起来C# 比Java复杂多了,好像大杂烩。” “当初Java对C++的改革的一个重要原则是:让语言变得简单而有亲和力,降低程序员门槛,提高软件生产效率。但如今Java已经不那么简单了,C#则更复杂,在某些方面较之C++也不遑多让。” 冒号语调转强,“以前人们试图在语言的威力(power)和生产率(productivity)中寻求最佳平衡点,现在似乎更想鱼与熊掌兼得。” 问号再次提问:“Java与C# 最大的区别是什么?” “虽然同为平台语言,二者的设计理念还是有所不同的。Java的目的是让一种语言在多种平台上运行,而C# 的目的是让多种语言在一种平台上运行。”冒号钟爱这种具有对称美的对比,“虽然理论上以C#为核心的.NET平台可以用在任何操作系统上,但千万不要指望微软会心甘情愿地提供Windows之外的实现,原因不言自明。而Sun的Solaris无法与Windows抗衡,最大的王牌就是Java语言,当然会致力于跨平台和面向Internet的应用,对桌面应用的投入相对较少。因此两个平台语言,一个重在语言,让语言向平台扩散;一个重在平台,让平台来凝聚语言。在此并不想对两公司的商业策略评头论足,而是认为了解这种背景会对理解语言特征及其发展趋势有所裨益。编程语言绝非象牙塔中之物,实乃技术和商业合力推动的结果。” 逗号拖着怪腔:“原来如彼!” 众人大笑。 句号深思后问道:“可不可以这么理解:如果开发仅限于Windows平台的应用,C#是更好的选择,它一方面与Windows系统存在天然的纽带,另一方面可有效地利用.NET的包括ASP.NET、VB.NET、ADO.NET、WinForms等在内的各种软件资 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |