由于C#在很多方面是Java的直接衍生物,我想知道在学习了相当合理的C#之后学习Java是否有任何优势?
注意:请提供明确,直接的建议,而不是讨论,以便与SO准则保持一致。
答案 0 :(得分:8)
如果您想用Java编程,请学习Java。真的很简单。
模式,算法和设计理念不会有太大差异,以至于单独学习语言就足够了。
然而,Java在比C#更多的平台上运行得非常好(尽管单声道正在发生变化),所以如果你想把你的脚趾浸入平台无关的代码中,你可能会试试Java。你会注意到它的边缘有点粗糙,但不像是去C ++或C.
- 亚当
答案 1 :(得分:5)
两者之间的语法差异并不大,尽管你会得到很多特定于.NET的代码,比如你在Java中找不到的[]标签。但我确实发现API和开发方法完全不同。每个的后端都与另一个非常不同,在.NET中,一些高效且运行良好的代码可能不适合Java,反之亦然。
我曾在两者中工作过,如果你在Java中工作,那么你必须习惯的限制是在IDE中。与Visual Studio相比,没有任何IDE能够提高开发速度和易于部署。 (无论如何,IMO)。
我在一些Java项目上做了很多工作。您将学习许多不同的编程技术和方法。具体来说,我建议在J2EE中工作,差异肯定会让你觉得使用不同的语言和技术。
答案 2 :(得分:5)
我将采用与其他人不同的答案。如果您正在为Windows平台编写应用程序,我认为没有任何好处。我说那是你的“工作”的原因取决于知道那个平台。我只能假设你的工作取决于它,否则,你为什么要投资它(希望有意义)。
我的建议不是停止学习,而是学习别的东西,这会给你一个完全不同的视角。具体来说,我建议学习动态或功能性的东西。也许是F#,或者尝试使用Ruby或Python。我认为这是一次更好的投资。
我的$ .02。
-Keith
答案 3 :(得分:4)
我主要是一个Java人,但在这里和那里做了一点C#。 IMO两者之间没有足够的差别,从拓宽您的编程视野角度来看,真正给予了很多好处。一般来说,当我想学习一门新语言时,我想找到一些能够让我从不同的角度看待一个程序的东西。 Java的观点与C#基本相同。某些高级语言功能的工作原理和API在某些地方有所不同,但是整体Java和C#都是内存管理的,静态类型的OO语言。
答案 4 :(得分:3)
作为一个更新鲜的人[谁知道C#井和JAVA那么多],我会建议你。
如果您正在寻找工作:
投身于学习C#和...的差异。 Java的。这是因为它会增加你的价值并减少你找工作的时间。
如果您需要一个项目[用Java完成]:
然后,显然你必须正确学习!
如果您正在寻找更新的技术:
不要浪费时间在Java上,去Python,Ruby或Erlang。这是因为,80%的C#和java都是相同的,你只会学习剩余的20%(最多),我觉得这是浪费时间。
答案 5 :(得分:1)
这里有两个注意事项。
如果您想学习以便在Java环境中工作,那么学习Java显然是朝着这个方向迈出的一步。在某些方面它应该是非常直接的,因为C#和Java之间的实质性差异相对较小。根据您使用的确切技术,您使用的支持堆栈可能存在一些实现差异,但在原始语言方面,差异很小。
但是,如果你想学习Java以进一步发展你的个人发展,那么我会说你花时间学习一些可以让你更多的东西。像Python,Ruby或Erlang这样的语言将真正扩展您作为程序员的视野。这些都需要与Java或C#中略有不同的思维方式。
答案 6 :(得分:0)
绝对。很多工作都特别需要java。学习过Java并且能够令人信服地在你的简历中使用它意味着你不必与那些没有太多线索的人力资源和招聘人员争吵。
由于除了少数地方之外,两者都或多或少相同,因此投资回报率非常高。更不用说它开辟了使用其他框架的可能性。
答案 7 :(得分:0)
C#和Java之间的相似之处使您可以更快地了解Java。原则是相同的,你通过选择哪个平台更适合项目(基于项目的商业方面,以及可扩展性问题,因为你)来寻找工作或做自己的项目时获得竞争优势可以根据需要在Linux服务器上扩展java,而无需额外的许可证成本。)
答案 8 :(得分:0)
我非常了解Java,并且不得不为工作项目学习C#。这非常轻松,我在这个过程中学到了很多关于两种语言的知识。
Java还将提供整个“一次编写,随处运行”的东西,并开辟了基于unix / linux服务器的集成项目的道路。
答案 9 :(得分:0)
这个问题的答案更多地取决于你自己的个人情况,而不是语言之间的相似之处。 如果你有时间学习Java,这很好,但是那时你可以做些什么更有价值。
如果你专注于走微软的路线,那么学习Java并不是一件好事,而是花费时间去了解更深入的C#,或者学习可以让你更有价值的微软产品,例如.NET 3.5框架中的新项目。
在.NET世界中,只要学习与大多数企业环境中使用不相关的语言,就有足够的东西可以学习。
作为一名通才会为您提供更广阔的发展前景,但作为专家可以更直接地获得美元。
答案 10 :(得分:0)
我认为正在学习任何语言,无论是Java还是c#,都应该学习它最好,因为在那儿会有数百人知道50%和60%,如果您知道该知识,您将无法有所作为。 50%或60%也会选择剩余的40%或50%,这将使您在其他领域中脱颖而出。 而是任何一种语言都适合100%