学了C后学C++,C#,Java之中的哪个更好呢?

我上大二,大一已经学了C语言,基本没问题了。大二第二学期有C++,C#,Java的选修课,三选一,请问高手我学哪个最好呢?
最好讲下它们各自的特点,谢谢!

我是学计科搞软件开发的,用的C#,这是我在CSDN上看到的一篇比较好的分析,很中肯,你有兴趣可以看看:

很多学员有这样的问题:我们应该学习什么语言,java、C#还是c++?好像很多公司都找会VC的人,java和C#有用吗?甚至有人说java或C#是小公司用的语言,C++是大公司用的语言。
注:下面讨论的C++不是指.net framework下的托管C++而是指非托管的C++。
首先解释一下java、C#、C++和VC的关系。
java,C#是C++后出现的语言,VC是比较早就开始有的开发工具,C/C++也是比较早的语言。java的开发工具有JBuilder、JCreator、Eclipse等,而C#的开发工具就是微软的Visual Studio系列。
java、C#和C++各有个的优点,C++兼容性好,不依赖平台,java、C#依赖各自的虚拟机(C#的虚拟机是.net framework)运行,离开了虚拟机便不能运行;
Java、C#开发效率高,几乎是VC的几倍以上,C++运行效率高但是开发比较麻烦,学习也比较难。
语言没有优劣之分,这些高级语言都是现在大量使用的流行语言,任何一种语言都可以开发出大型系统,但是实际运用往往根据需要选择,除非是做底层类库开发一般不选C++,因为它开发成本太高,还有用C++的是为了部署简单,例如网络游戏,为了避免每个用户都安装虚拟机就不选用java或C#,除这些之外,一般选择开发效率较高的java、C#,这样可以降低公司的开发成本。
现在学习编程的人大多数都学习java、C#,因为简单啊,很快上手,C++确实越来越少人学了。
不要看着难学的VC挺cool的就去学,要看实际应用和自己的兴还有学习环境,C++学习最好有实际应用环境不然学起来累死不讨好,最后失去了信心。要知道VC已经是好几年前的技术了,微软现在基本不会升级它了,也就是说用VC你的生产效率就是几年前的,很低。
现在很多高校都把C++作为一种必须掌握的基础语言,甚至有些非计算机专业的学生都要学习C++,但是那些要求仅仅是对C++基础知识的掌握,要熟练运用到实际开发中去还是有一段距离的。
学java或C#有没有用呢?
我觉得现在java和C#的前景很难分出高低,所以学java和C#差不多,而且他们都比较类似,基本可以一通“两通”。
学习一样东西有没有用要看它的使用价值,现在公司需要的人才不单单是会简单的编程,而且是全方面的,业务和其他能力也很重要,可以说学了java你可以做一个程序员,找到工作也没问题,但是要真正深入企业业务,要工资有所提升则还要实践一段时间,充分融入到企业的业务中去。
例如有些外包公司,他们对程序设计的要求比较低,只要会用一些主流的语言就可以了,但是对外语要求很高,例如对日外包公司对日语的要求,这样如果掌握了java或C#之后能够学习一门日语是很好的。现在有招聘单位打着日语二级软件工程师月薪1万的旗号。
当然还有其他业务,在工作过程也是可以慢慢积累的,例如有些公司用到的GIS(地理信息系统)。
有些学员说:
可是我知道现在的电信行业,nokia,moto还挺需要这方面技术的人。而且薪资给的还比较高。
我们并不是要抵制学习C++,而是说学一样东西必须看到成果,如果你有环境学C++,例如公司有项目,那就跟着学,这样有人可以问,有环境压力才能学好。我看见很多人说要学C++,但是因为实际没有用到最后几年过去了还是只背得一些基本语法。
那VC不热的原因也是他的市场小是吗?
其实VC也不能说不热,很多公司还是要用它的,它用得相对少,但是会的人也少,我面试过VC的人,来面试的很少有人合格的,简历写得不错,可是一问连strcpy复制了多少内存都不清楚。C++人才还是很缺的,相反会java、C#的人比较多。
应该选择学习什么语言呢?
我的建议是:
对于原来没有多少计算机基础的人,建议从java、C#学起,如果以后以此找到了一份比较好的工作,你可以继续深入研究它,也可以把计算机技术和公司的业务多结合,计算机只是工具,要跟业务结合才能产生价值。如果以后有C++学习的需要,例如公司业务的需要,那可以在项目中学习它,因为有环境的需求压力和前面的编程基础学起来会比较容易一点。
对于已经有一定的程序设计基础的人,如果你想做一些比较底层的开发,或者有实际项目的需要,可以选择学习VC。

最后我要说:VC绝对不是大公司用的,Java、C#绝对也不是小公司用的。语言和工具在这里没有可比性,只存在各自的优缺点。
温馨提示:内容为网友见解,仅供参考
第1个回答  2008-10-24
这世界上没有什么比编程工具更加牵动程序员的心。VC、VB、DELPHI、JAVA……这些耀眼的名字不仅占据了程序员的生活,而且似乎已经成为了某种信仰。可是,伴随着新世纪的脚步,这些信仰又一次遭遇了重大的挑战。微软,这头被法官和黑客们折腾得既疲惫又恼怒的狮子,发誓要保住它头上的王冠,拼尽全力,拿出了看家的本事——.NET战略。作为 .NET的核心开发语言,C# 顺理成章地浮出了水面。程序员们也就不得不做出一个痛苦的选择,跟在谁的后面?要找出答案就不得不作一番比较和预测。笔者作为一个资深的程序员,斗胆在此狂言,权作抛砖引玉。

如果抛开一切非技术方面的因素,C# 无疑是这个星球上有史以来最好的编程语言,它几乎集中了所有关于软件开发和软件工程研究的最新成果。面向对象、类型安全、组件技术、自动内存管理、跨平台异常处理、版本控制、代码安全管理……你不可能在另外的一种语言中找到所有这些特性。尽管像很多人注意到的一样,当我罗列上述特性时,总是让人想到JAVA,然而C# 确实走得更远。但现实的情况是,非技术的因素往往更能决定一个产品的未来,尤其在计算机软件的历史上,技术卓越的产品,如OS/2、Mac OS、UNIX等,都败在了Windows那漂亮的脸蛋儿下。而这一次,微软的角色好像从一个赤手空拳的革命者变成了仗势欺人的老地主,如果真是要变天,那C# 这孩子岂不是投错了胎?可能情形并非如此糟糕,毕竟瘦死的骆驼比马大,而且C# 已经提交给了一个标准化组织,一旦成了国际标准,说不准真有哪个手痒的大侠(也有可能是微软自己)给移植到Linux 和别的平台上。那样的话,JAVA可就惨了。因为JAVA的用户主要是网络服务的开发者和嵌入式设备软件的开发者,嵌入式设备软件不是C# 的用武之地,而在网络服务方面,C# 的即时编译和本地代码Cache方案比JAVA虚拟机具有绝对的性能优势。何况C# 一旦成为一个像C++ 一样的公共的标准,软件开发商既可以省去JAVA的许可证费用,也不必担心成为微软的奴隶,那些反微软的人士和主张厂商独立的人士可能也不会有什么意见。这可能正是微软所期待的。

如果把C# 和 JAVA 在网络服务领域的争夺比作未来制空权的争夺的话,那么C# 和传统通用快速开发工具——VB、DELPHI等的较量将是地地道道的白刃战。可能最惨的程序员就是VB程序员,在微软,VB就像离任的克林顿,不但失去了所有的光辉,而且乱事缠身。想想吧,VB6写的项目必须用转换工具转换成基于.NET的代码才能在VB7中调入,几乎面目全非。由于VB7遵循为迎合.NET而建立的通用语言规范(CLS),几乎把所有原来只在C++、JAVA等语言中可以运用的特性统统加了进来,只是语法和原来兼容。如果你是第一次在VB7中看到自己的旧VB6项目转换之后的代码,一定要当心你的心脏!所以,努力吧,别告诉我你将就此退休。DELPHI的状况也好不到哪里去,原来的看家本领是做起应用来又快又好,可现在看看最新的VS.NET Beta 1, 你会感到如此熟悉,众多的属性列表、组件……谁让你穷呢,连总设计师都养不住。

其实在编程语言中真正的霸主多年来一直是C++,所有的操作系统和绝大多数的商品软件都是用C++作为主要开发语言的。JAVA的程序员绝大多数也是C++的爱好者,PHP的成功里面也有类似C++的语法的功劳。在操作系统、设备驱动程序、视频游戏等领域,C++在很长的时间内仍将占据主要地位,而在数量最大的应用软件的开发上,C# 很可能取代C++的位置。首先,C# 和JAVA一样,简直就是照搬了C++的部分语法,因此,对于数量众多的C++程序员学习起来很容易上手,另外,对于新手来说,比C++要简单一些。其次,Windows是目前占垄断地位的平台,而开发Windows应用,当然微软的声音是不能忽略的。最重要的是,相对于C++,用C# 开发应用软件可以大大缩短开发周期,同时可以利用原来除用户界面代码之外的C++代码。

但是,C# 也有弱点。首先,在大量的现有Windows平台上,C# 的程序还不能运行,因为C# 程序需要 .NET运行库作为基础,而 .NET运行库将作为新一代的Windows(Whistler)的一部分发行, 或以Service Pack的形式提交给Windows Me 和 Windows 2000用户。所以在近期,C# 会主要在服务器上得到应用。其次,C# 能够使用的组件或库还只有 .NET 运行库等很少的选择,没有丰富的第三方软件库可用,这需要有一个过程,同时各软件开发商的支持也很重要。第三,JAVA的成功因素里有一些是反微软阵营的吹捧,虽然“只写一次,到处运行”只是一句口号,但毕竟已经是一种成熟的技术。而C# 的鼓吹者目前只有名声不佳的微软,且只能运行在Windows上。实际上这两种语言都不是不可替代的,理智的说,对软件开发商而言,什么用的最熟什么就是最好的工具。尤其对C++的使用者,C# 没有带来任何新东西,因为.NET运行库在C++中也可以使用,没有要换的绝对的理由。

综上所述,我个人认为,近几年,C# 将不可避免地崛起,在Windows平台上成为主角,而JAVA将在UNIX、Linux等平台上成为霸主,C++ 将继续在系统软件领域大展拳脚。非常有意思的是,这些语言的语法极其接近,因为JAVA和C# 都是由C++发展而来的。其他的开发工具当然还会在相当长的时间里继续他们的旅程,不过在市场份额上,将不可避免地受到冲击。
第2个回答  2008-10-23
学Java好。
C是面向过程的语言,Java、C++是面向用户。
但C++全面兼容了C,有点混合的味道。
学了Java后C++也会写一点了。
第3个回答  2008-10-23
一句话。JAVA里很多代码都是与C++相近的。
现在你可能不太了解,我可以名确的告诉你。
先学C++ 等你C++学精了JAVA一看就懂了。
JAVA可以算是继承了C++本回答被提问者采纳
第4个回答  2008-10-23
个人觉得JAVA,J2EE是WEB开发的正式技术,.NET和C#完全就是在抄袭JAVA。
还有就是JAVA程序员薪水最高。

我学过C,C++(为了学别的语言),C#,JAVA到底哪个好?
我认为是C#好。有以下几点:C#语言自C\/C++演变而来。但是,它现代、简单、完全面向对象和类型安全。如果您是C\/C++程序员,学习曲线将会很平坦。许多C#语句直接借用您所喜爱的语言,包括表达式和操作符。假如不仔细看,简直会把它当成C++。关于C#最重要的一点:它是现代的编程语言。它简化和现代化了C++...

C语言学完之后,该学什么?C++还是C#???
学完了c语言,如果想学c#方向,先学c++,再学c#,因为c#是c++的++,面向对象化比较,如果没开c++和c#,学了c,去学jave也还是可以接受,可以学的。着呀看你的方向学习了,c#和java都是高级语言,但要专一,学java兼容性好,学c#是Windows系统的主力,你自己掂量掂量。

现在学习C、C++、JAVA、C#语言那种更能适应社会的需求
C++:如今的大型网络游戏,或是应用程序都是用C++编写的,如果你想从事相关的开发,C++肯定是要掌握的。C#:这个语言是微软推出同JAVA竞争的,也是面向对象的语言,如果要从事asp.net的开发,可以学习C#,不过毕竟是微软的东西,它只支持windows平台,不可以跨平台。C:C语言属于编程的入门级语言,但是我...

C、C++、java哪个好?懂得人进
1:Java,Java相对于高级语言来说比较容易入门,但是,C语言是相对最难的,我还是建议你学C语言,C语言学会了,基本高级语言随便搞都OK了 2:Java,但是,比Java更简单的是C#,asp.net还有PHP,后面那2个是网页编程!3:C++吧,C++可以做很多事,例如软件,游戏,通讯,等大部分,但是C++对算法要求有...

c++、c#、c语言、java初学者先学什么好?
建议先学C语言。C++,C#,java的语言结构都和C很相似,例如循环,if语句的使用等。C++,C#,java都是面向对象的,在学它们的时候你会发现书本只是花量的文字去介绍它们的语法结构,他们不会仔细介绍那些循环,if语句等等基本知识的使用,然后马上进入面向对象,给你介绍如何使用那些语言进行面向对象程序设计...

C语言学完 学C#还是C++?
参考意见如下:C#(托管语言)类似Java,是目前微软力捧的语言。开发效率高,非常强大的类库。C++:C程序几乎不用修改即可在C++的编译器上运行,但实际上,学C++不难,但是想掌握或者说熟练掌握C++比较难,更别说精通。用C++写程序,相对于C#来说开发效率非常低,且比较繁琐。总结一下:C#好上手,热门,...

计算机专业选课,有C#,C++和JAVA。三门中选一门做为主修课,选什么课好...
都会显得力不从心。这时,Java和C#提供的没有指针,自动内存收集,简单的线程调度方法,稳定可预测的编译环境,方便的程序域管理就会像太阳一样光辉!总之,我的建议是,先学C++,等有了一定方向后再转向C#和Java,学C++的同时可以稍微看看C#和J2SE的语法与编译方式。

c++和java就业前景哪个好?
学c++更有发展前景,但是java去除了很多C\/C++中容易出错的地方,如指针等,减轻学习负担,较为简单一些。C++语言不仅能开发客户端程序,还可以开发服务器程序。千锋教育就有线上免费Java线上公开课。Java语言是一种运行于虚拟机上的一种解释性语言,正是通过虚拟机实现了跨平台的特性,开发出来的程序可以...

c++和java哪个有前途(c++好还是java)
第一,Java语言提供更好的抽象,如垃圾回收,让程序员不用为内存的分配和释放操心,同时减少了C\/C++中的复杂性。因此容易学习是其特点。C语言比较好学,简单,速成。C语言用得比较广,而且是很成熟的面向过程的一门语言。java好,没有错。不是语言的问题,是java的生态更好,开源的属性,框架多,资源...

C语言和C++语言和C#语言和JAVA语言学那个先比较易学,然后再学其他的编程...
最后学习c++ 有了c的基础,和java的面向对象思想,你可以在1个月之内掌握c++ 当你把这3门语言有了解,熟悉了 你可以很容易的学习Qt mfc c 记住c\/c++的经典编程,和java的面向对象 当你学好 对一个程序员 很重要 先好好的学习c 之后 给你推荐 孙鑫的java面向对象深入详解 和c++从入门到...

相似回答