c++java和c#有什么区别

如题所述

现在最流行的高级语言主要应该是C/C++(我喜欢统一叫C语系,下文也统一称为C语系),.net(无论C#.NET还是VB.NET,我是使用C#的),JAVA三种语言。
很多人对于这些语言有很大的误区,也没有一个清晰的认识。
这里我来说说这三个语言吧。
首先说说C语系:
C语系和里C和C++基本在语法结构上,还是关键字上还是功能上都没有太大的差别,但是两者还是有一个小小的差别——C是面向过程的,而C++则是在C的基础上采用了面向对象的思路。另外,在一些关键字的用法上有一些差别,主要体现在以下几个方面:
1、基础函数库的不同——包括库内某些函数库的不同;
2、C++引入了命名空间的概念;
3、最直接的感受——输入输出等关键字的不同;
4、类及类相关的概念——C++中出现了面向对象的思想;(很多学习C++的朋友并没有学会这个思想,而是用的面向过程的思想,C++对于这两种编程方式都是支持的)。
而其他的用法都是几乎相同的。C语系的最大的特点就是指针——对内存地址的直接访问和运算。程序员可以直接对内存空间进行各种操作,这为C语系的编程带来了极大的灵活性。但是这也是C语系的一个极大的缺陷——对内存的操作失误经常是导致程序内存空间高消耗从而引发响应问题乃至于崩溃的直接和根本原因.而内存操作是否合适,编译器是无法识别的,只有在程序的运行和测试中才能发现,这也是C语系的工程开发进度缓慢的直接原因。
当然,另一个原因就是C语系下的很多代码都需要自己写,很少有人提供各种现成的库供编程者使用,而这些提前编译好,具有各种功能的库在C语系下一般称为 “引擎”。当然了还有一个大家更为熟悉的名称——动态函数库,这个名字在JAVA和.NET中也是这样使用的。这是题外话了。
C语系也是目前最完善和稳定的高级程序语言。C语系逻辑严谨,结构清晰。编写的程序具有良好的可读性和高效性。而且如果编程合理,程序健壮性也是非常客观的(当然,这些完全依赖于算法和结构的设计——许多对内存空间的直接访问和直接操作提高程序执行的效率)。
C语系的强大的灵活性使得其称为大型工程中的不可替代的高级编程语言。但是C语系本身的特性也导致了明显的缺陷——编码、编译后的程序体积大;程序的可移植性低,编译后无法修改等。
由此诞生我们熟悉的另外两种语言——.net 和java。
下面来谈JAVA:
JAVA 是由SUN公司以C为蓝板研发的,本来开发的目的是为了作驱动编程。用以方便对各种电子设备的联网或者互联操作的语言,所以在设计初期就引入了许多在当时非常先进的思想——体积小(为了能够进行嵌入),高可移植性,高效性,面向对象。同时为了避免内存分配失误引起的尴尬,JAVA取消了C语系给编程人员直接访问内存的权限,内存的分配完全由JAVA解释器来负责。
为了达到高移植性JAVA采用了一个特殊的方式:所有的JAVA程序编写完以后并不是直接编译,而是形成归档文件包——一种可以被JAVA解释器解释的中间代码。需要运行的时候由JAVA解释器来解压并执行。
而取消了内存的直接操作带来的最直接的影响就是代码体积的迅速减小——JAVA程序员不会费尽心思去想尽办法折腾内存操作了,这使得程序员的所有心思都放到了直接的算法功能上。当然,不能直接操作内存,所有跟内存相关的类型也都自然而然的取消了,这就不存在了那么多“乱七八糟”的地址引用了。这些都使得程序代码迅速减小。
各种各样的改进之后,我们熟悉的JAVA出现了——在具备了以上的特性之外,JAVA的缺点也逐渐显示了出来:由于无法进行复杂的操作,所以如果要编写复杂的代码,程序的效率就会瞬间降低(因为要嵌套过多的函数层)。
最后,编程人员们终于认定了一个事实——JAVA不适合用来实现复杂的功能,但是却非常适合那些功能简单,过程并不复杂的功能。于是,除了驱动编程,JAVA最终应用在了我们熟悉的地方——网络小程序,手机应用程序。
好了,最后我们来谈谈.NET——同时也谈下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了。
最后总结一下几个语言的特点及现阶段主要的应用方向:
C语系: 稳定,灵活,高效 ——————各种大型应用程序、系统的编写,底层的开发——包括操作系统,内核功能的编写等;
JAVA:高效,体积小,可移植性——————硬件驱动的编写,嵌入式程序,手机应用程序,网络小程序等各种需要在可使用资源较少的功能不太复杂的程序;
.NET:开发周期短,代码复用率高,安全性好——————————WebSite及web服务编程;
C#:开发周期短,对网络和数据访问功能——————————各种和网络有关的Applications;
温馨提示:内容为网友见解,仅供参考
无其他回答

c++java和c#有什么区别
C语系和里C和C++基本在语法结构上,还是关键字上还是功能上都没有太大的差别,但是两者还是有一个小小的差别——C是面向过程的,而C++则是在C的基础上采用了面向对象的思路。另外,在一些关键字的用法上有一些差别,主要体现在以下几个方面:1、基础函数库的不同——包括库内某些函数库的不同...

C、C++、VC++、Java、C#之间有何异同
另外,从语言特性和设计哲学上看,C和C++更加注重性能和控制权,允许开发者更深入地控制计算机资源,但这也意味着更高的学习曲线和错误风险。Java和C#则在一定程度上简化了开发过程,提供了更高级的抽象和安全机制,使得开发者可以更加专注于业务逻辑的实现。VC++作为C++的开发环境,主要针对Windows平台,提...

c#程序设计C#与C++、JAVA的区别
C#是微软公司在去年六月发布的一种新的编程语言,它设计借鉴了C和C++的特点,并且与Java有着相似之处,包括单一继承、界面、接近的语法和编译成中间代码再运行的过程。然而,C#的独特之处在于它与COM(组件对象模型)的直接集成,并且是微软公司.NET Windows网络框架的核心。C#语言设计从C和C++中继承而来,...

C C++ C# Java的开发区别是什么
1.主要是应用的区域不同。C主要用于底层开发,而C++是既面向过程又面向对象,适合各种类型的开发,java和C#是完全的面向对象,主要是开发一些应用程序。2.一般而言,硬件工程师用C较多,C++,Java,C#软件工程师使用较多。做架构的人(嵌入式行业)是必须软硬皆通的,而且中间层是相当精通的。例如公司...

请问cc++c#javaphp等编程语言都有什么区别啊?
c和c++都是直接编译成机器码的,编译好可直接运行;c#和java编译成中间码,需要虚拟机来运行;php是脚本语言,不需要编译,由解释器执行。使用上看,c多用于嵌入式、操作系统、驱动程序等底层开发;c++多用于游戏、应用软件、高性能网络服务等开发;java和c#一般用于web、应用程序、app、手机游戏等;php只做...

c#和java的区别
下面从各个角度看C\/C++和Java的区别 指针:C\/C++有指针,Java没有;指针操作容易出现错误,比如:指针悬空造成的系统崩溃,但是Java没有指针就避免了操作失误;多重继承:多重继承的意思就是一个类允许继承多个父类,多重继承的功能很强大。C++支持多重继承,Java不支持多重继承。可是多重继承功能用...

c++ c# java 哪个更好学?
C++的社区虽不如Java和C#活跃,但其专业性和深度使其在特定领域内具有不可替代的价值。综上所述,C#在易学性上具有优势,适合初学者快速上手并进行项目开发。Java则在企业级应用开发中具有广泛的应用和丰富的资源支持。而C++虽然入门难度较高,但对于系统级编程和性能优化有独特的价值。选择哪门语言,应...

简单叙述C++,Java,C#语言的共同点和不同点
首先应该清楚,Java是由C++发展而来的,它保留了c++的大部分内容,类似于c++,java是完全面向对象的,但句法更清晰,规模更小,更易学。它是在对多种程序设计语言进行了深入细致研究的 基础上,据弃了其他语言的不足之处,从根本上解决了c++的固有缺陷,而产生的一种新的完全面向对象的语言。Java和c++...

c++,java,c#哪个好点
java是跨平台的语言,开发周期短,系统提供内存管理,可移植性强,任何可以运行java虚拟机的环境都可以较为方便的运行,几乎0代码改动就可以移植。C#适合window下的应用程序开发。它也是系统提供内存管理,window平台环境下任意移植(winphone、pc、笔记本、平板等)。语法上接近C++,但是更加容易上手。C++是...

谁能简单的描述下C、C++C#以及java的区别。
C#是微软开发的一种编程语言,语法类似Java,几乎就是从Java的翻版。运行原理和Java也类似,也是通过运行时库的支持运行。不过支持的平台还很有限。JAVA几乎被所有平台支持,而C#目前只被Windows和Linux支持,Windows下的支持当然是由微软自己开发的,而Linux下的支持则有MONO支持。实际上,MONO也是把C#...

相似回答