http://blog.csdn.net/zhoufoxcn/archive/2006/10/11/1330676.aspx
相似性:
Java和C#都是一门面向对象的语言,Java更多地借鉴了C++的优点,而摒弃了它的一些不太容易被人掌握的知识点(有些不能说是缺点),并且增加了一些自己的特点,而C#则是更多地借鉴了Java的优点,而增加了一些自己的特点。
个人猜测,在Java语言出现之前,C++被广泛使用,而且被认为容易使用,Java如此类似于C++,致使人们更容易接受;而现在Java是最广泛使用的,C#如此接近Java,则更容易吸引Java开发人员(仅仅是猜测)。也就是说Java站在C++的肩膀上,而C#站在了Java的肩膀上。
跨平台特性
跨平台特性的最大优点就是只要有相应的运行环境,同一个编译好的程序就能在上面运行,而不需要重新编译程序,它的缺点就是不能针对特定平台,所以不能充分利用平台特性,因而在性能上会有所降低,幸运的是现在的硬件比以前大大提高,这部分的降低在绝大部分情况下可以不用考虑。而且Java和C#都有自动垃圾回收机制,运行时环境可以自动清理不再使用的内存,减少了手动释放内存的风险。
Java的跨平台特性建立在可以跨越多个不同种类的操作系统平台,比如Windows、Linux、Unix等,但是需要注意的是不是说Java能在所有的系统上都能跨平台,必须实现在该操作系统上的Java运行时环境JRE才行,也就是说假如今天有人开发了一个前所未有的系统,这时候Java程序是不能在上面运行的——因为还没有针对这个操作系统的Java虚拟机(JVM),好在在当今绝大部分操作系统上都有针对该系统的JVM,所以它能“一次编译,到处运行”。
C#的跨平台则是建立跨Windows平台的基础上的(有一个针对非Windows的.net运行环境,不过好像还不是太好),不像以前Windows95下的程序到WindowsXP下就不能运行,或者WindowsXP下的程序到Windows95下也不能运行(这种情况居多),现在呢,只要安装一个.net framework(也就是.net程序的运行时环境),在Windows2003下编写的.net程序不用重新编译就能在Windows98下运行,只要这台安装Windows98的机子安装了.net程序的运行时环境。
这一个回合Java胜出。
语法特性
Java抛弃了指针,使用了包(package)的概念,导入包使用import语句,在Java中有几种非面向对象的数据类型,那就是byte、char、short、int、long、float、double这几种数据类型,在方法中传递时仅仅是传递它们的值,为了方便一些集合类的操作(它们存储的是对象类型),又增加了它们的包装类Byte、Char、Short、Integer、Long、Float、Double。
在Java中存在属性的概念,这些都是通过setXXX()、getXXX()来设置。
C#没有完全抛弃指针(在unsafe状态下还可以操作指针),对于类的管理采用了名称空间(namespace)的概念,并且还使用了out、ref等关键字,便于从一个方法返回多个结果,在C#中不仅存在属性,还有索引器等比较方便的特性。
生成文档doc文档
在利用程序中的特殊注释生成api文档方面,两种语言都有不错的表现,不过C#更胜一筹,它能利用注释在输入类成员时提示,便于程序员不用去看程序源码而知道程序的大概用途,而Java这方面没有。
IDE(集成开发环境)方面
Java的IDE是非常多,从庞大的Jbuilder到小巧的Jcreator,还有可以扩充的Eclipse,可以说Java的IDE的数量是非常多的。
C#的IDE不多,除了微软自己的VS.NET之外,好像还有Borland的C#Builder,除此之外,广为认知好像不多。
性能方面
Java采用了字节码(bytecode),而C#则采用了MSIL,它们的性能都是介于解释型语言和生成本地机器代码之间的,在本人的测试中,C#的性能略高于Java,可能Java的字节码要适用多个系统多个平台的缘故吧。
企业开发方面
由于Java出现的时间长的缘故,并且还能跨平台,采用EJB等解决方案,所以目前绝大部分网站都是基于J2EE开发的(大部分都是J2EE+MySQL+Apache+Linux,都是免费的)。
C#做的大型网站,它也有针对EJB的Net Remoting技术,由于它限制了必须(IIS+Windows),所以大型的网站不是太多,不过随着时间的推移,可能会有更多的网站采用asp.net技术。毕竟微软的东西一向傻瓜化,门槛低,能够吸引一些初级编程人员到这个行列中来。而且微软的asp.net采用了代码和页面分离技术,的确能方便编程人员。
总结:
记得有一句话,大意是这样的,Linux就像专业相机,拍摄出来的照片取决于你的摄影技术;而Windows就像傻瓜相机,只要会按快门就能拍照。我觉得Java就像Linux,添加一个按钮,一个标签都需要你指定样式,放置到哪里也需要你指定;而C#则继续秉承了Windows的特点,傻瓜化,便于操作,便于上手。
分享到:
相关推荐
4. 检查并处理可能的编码差异,如JAVA的DER编码与C#的PKCS#8或X.509格式的对应关系。 5. 在目标环境中解码并构建对应的密钥对象。 在实际应用中,需要注意的是,非对称加密通常用于交换会话密钥,而非直接加密大量...
Java 代码转换为 C# Java to C# Converter 解除限制 Java 代码转换为 C# Java to C# Converter 解除限制 Java 代码转换为 C# Java to C# Converter 解除限制
Java to C# Converter 转换的效果很好,我实在是没有分了.收1分吧. Demo版的只能转换 试用演示版的Java文件夹转换到C#转换器2000行的代码片段转换到200行一次。 官方网站 ...有需要其他转换器的可以给我留言,我可以...
C# 代码转换为 Java C# To Java Converter 解除限制 C# 代码转换为 Java C# To Java Converter 解除限制 C# 代码转换为 Java C# To Java Converter 解除限制
【标题】"Java 转成 C#小工具" 是一个专门用于将Java代码转换为C#代码的实用程序,它旨在帮助开发者在处理跨平台项目或者从Java迁移到C#时提高效率。这个工具提供了基本但实用的功能,能够有效地进行语言间的代码...
C# To Java converter是一款将C#代码片段或者C#项目转换为JAVA的工具。 转换所有版本的C#代码 评估所有引用的程序集和.NET项目,以便更完整地解析外部引用 许多转换和格式化选项 将C#代理和lambdas转换为Java接口...
标题"JAVA类库转换成C#类库工具"以及描述中提到的"C#引用JAVA类库"、"C#调用JAVA类库"和"C#解析JAVA类库"都涉及到一个关键的技术:IKVM。 IKVM是“Java to .NET”的一个开源实现,它允许C#或其他.NET语言直接引用和...
C#是一种微软开发的面向对象的语言,它与Java有许多相似之处,但也有一些不同。例如,C#有属性(properties),而Java使用getter和setter方法;C#有接口(interfaces)和抽象类(abstract classes),Java只有接口。...
描述中的"java to c# java to csharp java2c# java代码转c#"进一步强调了转换的目标,表示用户可能已经花费了一定的时间寻找如何将Java代码转换为C#的方法,这可能包括在线搜索、阅读文档或者尝试不同的工具。...
一个很强大的工具, 能将c#代码片段、文件甚至工程直接转换成java代码,并能彻底解决外部引用的DLL问题,最强的是支持c#工程的直接转换,生成的Java代码质量也很不错。软件已破解,去除了未注册版最多只能转换1000行的...
很多人说C#是微软用来和Java抗衡的武器,因为二者在很大程度上有着惊人的相似,尽管如此,两者不同的地方也很多,所谓“于细微处见差异”。那么两者的相似和区别都在什么地方呢?我们从今天开始,会从各个角度来对比...
1. **语法差异**:C#和Java的语法有相似之处,但也有很多不同,如C#的属性(Properties)与Java的getter/setter方法,C#的Lambda表达式与Java 8的Lambda,以及C#的async/await与Java的CompletableFuture。...
1. **C#与Java的差异** - **语法差异**:虽然C#和Java在很多方面都有相似之处,但它们的语法并不完全相同。例如,C#支持属性(properties),而Java使用getter和setter方法;C#有async/await异步编程模型,Java则...
Comparing converted code to original code.(原代码与转换后代码的比较) 6. Running from the command line: C# to Java Converter can be launched directly for a specific project, folder, or file conversion...
在IT行业中,编程语言的选择往往是项目的关键因素。随着技术的发展,有时我们需要将代码从一种语言迁移到另一种语言,比如从C#转换到Java...在理解和掌握C#与Java之间的差异的同时,利用这样的工具能有效提高开发效率。
如果你需要与C#的`DateTime`行为完全一致,可能需要额外处理时区和闰秒等问题,因为C#的`DateTime`默认包含时区信息,而Java的`LocalDateTime`则不包含。 在实际转换过程中,还要考虑以下几个关键点: 1. **时区...
另一个文件"Jacob_NET"可能是一个示例的C# DLL,或者包含与Java调用C#相关的.NET项目文件,用于演示如何创建C# DLL并与Java集成。 在实际操作中,Java开发者需要以下步骤来调用C# DLL: 1. **配置Jacob**:在Java...
java和C#比较 Java和C#都是一门面向对象的语言,Java更多地借鉴了C++的优点,而摒弃了它的一些不太容易被人掌握的知识点(有些不能说是缺点),并且增加了一些自己的特点,而C#则是更多地借鉴了Java的优点,而增加了...
### 解决Java与C# MD5不一致问题 在软件开发过程中,经常需要对数据进行加密处理以确保数据的安全性和一致性。MD5是一种常用的哈希算法,被广泛应用于各种场景中,如密码加密、文件校验等。但在跨平台或多语言环境...
标题中的“java c# 包互转”指的是Java与C#之间的互操作性技术,这通常依赖于特定的工具和库。对于Java到C#的转换,一个常用工具有IKVM( IKVM.NET),它是一个开源项目,实现了大部分Java标准库,并且提供了一个...