c#和java有什么不同?
JAVA语法和C#语法类似,一些关键字上有些区别。两者几乎是相通的。 JAVA有虚拟机可以跨平台,C#必须要在.NET FrameWork下运行。
JAVA:
JAVA 是由SUN公司以C为蓝板研发的,本来开发的目的是为了作驱动编程。用以方便对各种电子设备的联网或者互联操作的语言,所以在设计初期就引入了许多在当时非常先进的思想——体积小(为了能够进行嵌入),高可移植性,高效性,面向对象。同时为了避免内存分配失误引起的尴尬,JAVA取消了C语系给编程人员直接访问内存的权限,内存的分配完全由JAVA解释器来负责。
为了达到高移植性JAVA采用了一个特殊的方式:所有的JAVA程序编写完以后并不是直接编译,而是形成归档文件包——一种可以被JAVA解释器解释的中间代码。需要运行的时候由JAVA解释器来解压并执行。
而取消了内存的直接操作带来的最直接的影响就是代码体积的迅速减小——JAVA程序员不会费尽心思去想尽办法折腾内存操作了,这使得程序员的所有心思都放到了直接的算法功能上。当然,不能直接操作内存,所有跟内存相关的类型也都自然而然的取消了,这就不存在了那么多“乱七八糟”的地址引用了。这些都使得程序代码迅速减小。
各种各样的改进之后,我们熟悉的JAVA出现了——在具备了以上的特性之外,JAVA的缺点也逐渐显示了出来:由于无法进行复杂的操作,所以如果要编写复杂的代码,程序的效率就会瞬间降低(因为要嵌套过多的函数层)。
最后,编程人员们终于认定了一个事实——JAVA不适合用来实现复杂的功能,但是却非常适合那些功能简单,过程并不复杂的功能。于是,除了驱动编程,JAVA最终应用在了我们熟悉的地方——网络小程序,手机应用程序。
C#:
其实C#和.NET根本就是一体的,怎么这么说呢?我们现来看看.NET,.NET是微软为了提高网页编程人员的效率及网页编程的安全性,在ASP的基础上提出了后台代码分离的概念。同时为了简便后台代码开发,微软将许多控件整合编写了大量的(服务器)控件函数。形成了一个高效,安全的网页编程语言.net,在ASP时,功能函数都是由Script提供的,主要是基于VB和JAVA,在.net里,为了方便许多C语言的程序员转型实现高效的服务器编程——不知道是不是微软也一直觉得C语系的程序员才培养了好的编程习惯啊——于是将C++进行改良,主要是加强了网络和数据处理方面的功能(通过编写了一大堆的网络和数据相关的控件),同时将C语系的指针取消了——看来随意访问内存带来的问题烦倒了真是无数的人啊,同时改变了MFC的界面设计方式(借鉴采用了C++Builder的GUI设计界面的方式)——这就形成了我们现在认识的C#。而当其作为.net的后台语言时就是c#.net了。
c#主要是为了开发一些和网络相关的程序,c#主要的问题也是.net的问题在于运行程序的机器必须安装有相应版本的framwork——微软的东西向来移植性都很低,即便是用C语系开发的程序也完全没有什么移植性,更何况是他们自己研究出来的一个语言了。而.net则是专门用于WEB编程的一个架构平台,当然也可以些application,但是并不合适,application还是直接用c#或者c语系好了。
当然,.net的优势大家还是有目共睹的,尤其是代码分离后带来的网站安全性的提高,得到了大家一致的赞同,因此现在Linux平台在内的*NIX系统也开始支持.net了。
从资源来讲,java有个宝库,实际上大部分公司还沉浸在java大潮里,像google、facebook比较牛的公司提供的技术支持偏向JAVA,使得java在网络编程中地位显著,C#反而像个毛头小子,框架很少,特别是手机框架...
Java 与 C# 语法上面,差别不是很大啊 主要就是 类库 的差别。控制台小程序 都是 main C# 输入 Console.ReadLine 输出 Console.WriteLine Java 输入 System.in.xxx 忘记啥方法了… 输出 System.out....