c#、java先学哪个好?
7个回答
展开全部
c#简洁规范,容易让人接受,最终要的是他是托管代码,类的使用系统会给提示。个人认为你当然要先学C#,等C#学会后在学深一点,向JAVA的网络开发和Andriod发展一下,这就要求你的工作经验了,实用性其实还是JAVA广泛一点,因为网页开发JAVA效果要好一点。特别是手机软件开发。等你学到了一定程度再回去学C++,你会发现跟上学学的比起来豁然开朗。很多东西触类旁通,语言本身就是互通的。出了语法有区别,高级语言类使用方法基本相同,之所以区分语言界限,是因为每种语言有自己的优势。
C#就目前来讲,优势是代码简洁实用,很容易实现想要达到的目的。
VB对API的使用简洁、通俗,开发小游戏最好的工具,但大型游戏处理效果达不到。
Delph相比VB有点改进,稍微严谨一点,图形处理能力稍微强一点。
JAVA针对网络编程做出了很多努力,跨平台方面也很强,这是他的优势,就是代码拖泥带水,没前者简洁,JAVA虚拟机很是烦,不是很让人喜欢。
C++是个很有发展前途的语言,你要在这上面多下工夫啊,也是你人生中学起来最头疼的一门语言,他的图形图象处理能力和跨平台性都明显比别的语言优势。
最后你可以回去研究C和Pascl,学习编程思想是一个程序员必经之路,所有高级语言是一个基础传过来的,发展淘汰概率很高,你现在看到的VB、Pascl、Delph是当年最流行的语言,现在落伍了,C#、JAVA崭漏头角不代表他能适用以后发展。C/C++两门语言相比来讲很是发展稳定点,但是不好入门。
C#就目前来讲,优势是代码简洁实用,很容易实现想要达到的目的。
VB对API的使用简洁、通俗,开发小游戏最好的工具,但大型游戏处理效果达不到。
Delph相比VB有点改进,稍微严谨一点,图形处理能力稍微强一点。
JAVA针对网络编程做出了很多努力,跨平台方面也很强,这是他的优势,就是代码拖泥带水,没前者简洁,JAVA虚拟机很是烦,不是很让人喜欢。
C++是个很有发展前途的语言,你要在这上面多下工夫啊,也是你人生中学起来最头疼的一门语言,他的图形图象处理能力和跨平台性都明显比别的语言优势。
最后你可以回去研究C和Pascl,学习编程思想是一个程序员必经之路,所有高级语言是一个基础传过来的,发展淘汰概率很高,你现在看到的VB、Pascl、Delph是当年最流行的语言,现在落伍了,C#、JAVA崭漏头角不代表他能适用以后发展。C/C++两门语言相比来讲很是发展稳定点,但是不好入门。
展开全部
C#和Java比较,号称90%的相同加上10%的不同。因此当时我学习C#,阅读两种代码完全没有什么阻碍。
对C#了解得深入以后,来发表下对这两种语言各自特性的一些看法
比较起Java和C#大相径庭的那10%,会发现C#五花八门的特性要多很多。比较知名的有:委托,属性,真正的泛型,索引器,类初始化器,分部类,操作
符重载,struct,unsafe代码,IDisposable等,另外。net framework 3.5还加了一大串纯粹由编译器提供的特性。
委托,这个可以算是C#之于Java的最大优势。虽然Java可以依靠接口,匿名内部类这些特性实现委托一样的功能,但却要麻烦许多,如果涉及到N个委托
实例相加的情况,那么一个C#里面简单的"+"号,在Java里就只能用FilterChain,InterceptorStack这种概念了。
属性,据说属性信息是带到运行时的,后查看反射的确有PropertyInfo类,之前说它是编译器语法糖是受了某篇分析IL代码的文章误导,不过这个是
不是语法糖都没什么关系,它和Java普遍做法的get,set各有优劣。属性写起来简捷,但却比较难看出哪些属性是只读,哪些是只写不读。
真正的泛型,这个又是一大C#的优势,同时伪泛型又是Java的一大败笔。但是Java年代比较长,为兼容性考虑不得不使用假的泛型实现。如果泛型不是在
jdk1.5时推出,而是在jdk1.4,和collection framework一起推出,我认为它也会采用真正的泛型实现。
索引器,有了这个很多容器类都可以直接用[]取元素,感觉还不错,比没有好,编译器的小把戏。
类初始化器,典型的懒汉特性。每次用顶多能省下一两行代码,又是编译器的小把戏。
分部类(partial class),纯粹为了vs.net的那一大堆图形化设计器老和人的代码冲突而搞出来得玩意,又是编译器的小把戏。
操作符重载,属于用到得不多,要用时却显得特别有用的东西,很奇怪Java为什么不提供这个功能。
struct,在堆栈上的东西,释放内存那是超级的快,只不过需要用到这个的场合,大概都在使用C++编程。
unsafe代码,纯粹增加语言复杂性的东西。就好像一个人搬家,看这个不舍得扔,那个也不舍得扔,搞到最后把瓶瓶罐罐都搬走了。
IDisposable,实现这个接口,配合using块,非常的强大,终于可以像C++那样掌握对象的销毁了。
当然,还有
C#和Java比较,号称90%的相同加上10%的不同。因此当时我学习C#,阅读两种代码完全没有什么阻碍。
对C#了解得深入以后,来发表下对这两种语言各自特性的一些看法
比较起Java和C#大相径庭的那10%,会发现C#五花八门的特性要多很多。比较知名的有:委托,属性,真正的泛型,索引器,类初始化器,分部类,操作
符重载,struct,unsafe代码,IDisposable等,另外。net framework 3.5还加了一大串纯粹由编译器提供的特性。
委托,这个可以算是C#之于Java的最大优势。虽然Java可以依靠接口,匿名内部类这些特性实现委托一样的功能,但却要麻烦许多,如果涉及到N个委托
实例相加的情况,那么一个C#里面简单的"+"号,在Java里就只能用FilterChain,InterceptorStack这种概念了。
属性,据说属性信息是带到运行时的,后查看反射的确有PropertyInfo类,之前说它是编译器语法糖是受了某篇分析IL代码的文章误导,不过这个是
不是语法糖都没什么关系,它和Java普遍做法的get,set各有优劣。属性写起来简捷,但却比较难看出哪些属性是只读,哪些是只写不读。
真正的泛型,这个又是一大C#的优势,同时伪泛型又是Java的一大败笔。但是Java年代比较长,为兼容性考虑不得不使用假的泛型实现。如果泛型不是在
jdk1.5时推出,而是在jdk1.4,和collection framework一起推出,我认为它也会采用真正的泛型实现。
索引器,有了这个很多容器类都可以直接用[]取元素,感觉还不错,比没有好,编译器的小把戏。
类初始化器,典型的懒汉特性。每次用顶多能省下一两行代码,又是编译器的小把戏。
分部类(partial class),纯粹为了vs.net的那一大堆图形化设计器老和人的代码冲突而搞出来得玩意,又是编译器的小把戏。
操作符重载,属于用到得不多,要用时却显得特别有用的东西,很奇怪Java为什么不提供这个功能。
struct,在堆栈上的东西,释放内存那是超级的快,只不过需要用到这个的场合,大概都在使用C++编程。
unsafe代码,纯粹增加语言复杂性的东西。就好像一个人搬家,看这个不舍得扔,那个也不舍得扔,搞到最后把瓶瓶罐罐都搬走了。
IDisposable,实现这个接口,配合using块,非常的强大,终于可以像C++那样掌握对象的销毁了。
当然还有dynamic,新的异步编程等等实在太多了,《C#高级编程》居然接近2000页。
最后:不要纠结于那个语言好,主要的是你自己领悟到什么程度,如果你领悟的好的话,那么你就会融会贯通,从而学习其他的语言也会非常的轻松。
其实语言只是工具,真正有用的是你的思想。
要我选,我还是会选C#
对C#了解得深入以后,来发表下对这两种语言各自特性的一些看法
比较起Java和C#大相径庭的那10%,会发现C#五花八门的特性要多很多。比较知名的有:委托,属性,真正的泛型,索引器,类初始化器,分部类,操作
符重载,struct,unsafe代码,IDisposable等,另外。net framework 3.5还加了一大串纯粹由编译器提供的特性。
委托,这个可以算是C#之于Java的最大优势。虽然Java可以依靠接口,匿名内部类这些特性实现委托一样的功能,但却要麻烦许多,如果涉及到N个委托
实例相加的情况,那么一个C#里面简单的"+"号,在Java里就只能用FilterChain,InterceptorStack这种概念了。
属性,据说属性信息是带到运行时的,后查看反射的确有PropertyInfo类,之前说它是编译器语法糖是受了某篇分析IL代码的文章误导,不过这个是
不是语法糖都没什么关系,它和Java普遍做法的get,set各有优劣。属性写起来简捷,但却比较难看出哪些属性是只读,哪些是只写不读。
真正的泛型,这个又是一大C#的优势,同时伪泛型又是Java的一大败笔。但是Java年代比较长,为兼容性考虑不得不使用假的泛型实现。如果泛型不是在
jdk1.5时推出,而是在jdk1.4,和collection framework一起推出,我认为它也会采用真正的泛型实现。
索引器,有了这个很多容器类都可以直接用[]取元素,感觉还不错,比没有好,编译器的小把戏。
类初始化器,典型的懒汉特性。每次用顶多能省下一两行代码,又是编译器的小把戏。
分部类(partial class),纯粹为了vs.net的那一大堆图形化设计器老和人的代码冲突而搞出来得玩意,又是编译器的小把戏。
操作符重载,属于用到得不多,要用时却显得特别有用的东西,很奇怪Java为什么不提供这个功能。
struct,在堆栈上的东西,释放内存那是超级的快,只不过需要用到这个的场合,大概都在使用C++编程。
unsafe代码,纯粹增加语言复杂性的东西。就好像一个人搬家,看这个不舍得扔,那个也不舍得扔,搞到最后把瓶瓶罐罐都搬走了。
IDisposable,实现这个接口,配合using块,非常的强大,终于可以像C++那样掌握对象的销毁了。
当然,还有
C#和Java比较,号称90%的相同加上10%的不同。因此当时我学习C#,阅读两种代码完全没有什么阻碍。
对C#了解得深入以后,来发表下对这两种语言各自特性的一些看法
比较起Java和C#大相径庭的那10%,会发现C#五花八门的特性要多很多。比较知名的有:委托,属性,真正的泛型,索引器,类初始化器,分部类,操作
符重载,struct,unsafe代码,IDisposable等,另外。net framework 3.5还加了一大串纯粹由编译器提供的特性。
委托,这个可以算是C#之于Java的最大优势。虽然Java可以依靠接口,匿名内部类这些特性实现委托一样的功能,但却要麻烦许多,如果涉及到N个委托
实例相加的情况,那么一个C#里面简单的"+"号,在Java里就只能用FilterChain,InterceptorStack这种概念了。
属性,据说属性信息是带到运行时的,后查看反射的确有PropertyInfo类,之前说它是编译器语法糖是受了某篇分析IL代码的文章误导,不过这个是
不是语法糖都没什么关系,它和Java普遍做法的get,set各有优劣。属性写起来简捷,但却比较难看出哪些属性是只读,哪些是只写不读。
真正的泛型,这个又是一大C#的优势,同时伪泛型又是Java的一大败笔。但是Java年代比较长,为兼容性考虑不得不使用假的泛型实现。如果泛型不是在
jdk1.5时推出,而是在jdk1.4,和collection framework一起推出,我认为它也会采用真正的泛型实现。
索引器,有了这个很多容器类都可以直接用[]取元素,感觉还不错,比没有好,编译器的小把戏。
类初始化器,典型的懒汉特性。每次用顶多能省下一两行代码,又是编译器的小把戏。
分部类(partial class),纯粹为了vs.net的那一大堆图形化设计器老和人的代码冲突而搞出来得玩意,又是编译器的小把戏。
操作符重载,属于用到得不多,要用时却显得特别有用的东西,很奇怪Java为什么不提供这个功能。
struct,在堆栈上的东西,释放内存那是超级的快,只不过需要用到这个的场合,大概都在使用C++编程。
unsafe代码,纯粹增加语言复杂性的东西。就好像一个人搬家,看这个不舍得扔,那个也不舍得扔,搞到最后把瓶瓶罐罐都搬走了。
IDisposable,实现这个接口,配合using块,非常的强大,终于可以像C++那样掌握对象的销毁了。
当然还有dynamic,新的异步编程等等实在太多了,《C#高级编程》居然接近2000页。
最后:不要纠结于那个语言好,主要的是你自己领悟到什么程度,如果你领悟的好的话,那么你就会融会贯通,从而学习其他的语言也会非常的轻松。
其实语言只是工具,真正有用的是你的思想。
要我选,我还是会选C#
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
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++各有个的优点,C++兼容性好,不依赖平台,java、C#依赖各自的虚拟机(C#的虚拟机是。net framework)运行,离开了虚拟机便不能运行; Java、C#开发效率高,几乎是VC的几倍以上,C++运行效率高但是开发比较麻烦,学习也比较难。
语言没有优劣之分,这些高级语言都是现在大量使用的流行语言,任何一种语言都可以开发出大型系统,但是实际运用往往根据需要选择,除非是做底层类库开发一般不选C++,因为它开发成本太高,还有用C++的是为了部署简单,例如网络游戏,为了避免每个用户都安装虚拟机就不选用java或C#,除这些之外,一般选择开发效率较高的java、C#,这样可以降低公司的开发成
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你是学VB.NET的话建议还是坚持把这门语言学学好。因为如果转学C#的话,没有太大意义,因为本身二者就是都用.
NET框架
编程的,语言的区别并不是很大。如果转C++的话.那区别就大了,语言从头学起,JAVA也是一样,况且JAVA不是微软阵营里的东西,但是因为我是搞JAVA的,我还是推荐你JAVA,毕竟你出去投简历的话,JAVA肯定比VB.NET程序员更硬一点。
NET框架
编程的,语言的区别并不是很大。如果转C++的话.那区别就大了,语言从头学起,JAVA也是一样,况且JAVA不是微软阵营里的东西,但是因为我是搞JAVA的,我还是推荐你JAVA,毕竟你出去投简历的话,JAVA肯定比VB.NET程序员更硬一点。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
C++,因为C++是电脑客户端,手机客户端的都是可以编写的,而JAVA大多数都用于手机及移动设备,以后学JAVA就容易多得多
更多追问追答
追问
我c++已经学完了,最终c++、c#、java都要学精通的,但是想先都过一遍。
追答
那就JAVA吧
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询