日期:2014-05-18 浏览次数:20718 次
1) 基本架构
两者的基本架构也差不多,Java:Java程序->Java字节码->JVM(JIT).DotNet:C#程序->CIL(通用中间语言)->CLR(JIT).开始的时候Java的字节码是解释执行的,但现在使用的是即时编译技术,C#作为后来者,从一开始就采用了这种技术.就软件的执行架构来说是基本相同的;
2)平台无关性:
Java和DotNet的设计的目标都是平台无关的,但由于微软的操作系统是其主要赢利来源,所以.Net的平台无关性还是大打折扣.不过后面的Java也很难讲,毕竟被oracle收购后,有些东西会改变.
3)开发语言统一:
在这方面Java的设计没有包含这一目标,而dotNet从开始就致力于开发语言的统一,但这个不是java与C#的作为语言的区别,而是两个体系的不同.Dotnet的这一优势对于程序员来说还是比较有吸引力,至少减少了学习成本.但从另一个方面来说,Java和C#相互转换的学习成本都不是很高.
4)基本数据类型:Java的预定义基本类型要少很多,C#的多很多,但这个不妨碍正常使用.当然,由于C#是基于.net框架,其类型也是通用数据类型.由于两者都是为跨平台而设计的,因此其数据类型的长度并不是实际占用内存的大小.实际占用内存大小取决于虚拟机(JVM,CLR)和具体的机器类型(CPU字长).比如byte是8位,假设机器是32位的,你硬是将byte实现为8位,效率肯定会低些(每次取32位,然后通过计算分字节来取).
这段时间比较忙,先更新到此,以后继续.