为何选择Java程序?

时间:2008-12-06 09:35:00

标签: java

我的表现很少。用java和从现在开始我使用c ++。是什么让这个更特别和首选?

此外,我想了解System.in类和parseInt类的使用。

8 个答案:

答案 0 :(得分:12)

使用Java非常容易,特别是在开发大型程序时。

  • 调试:Java生成很好的Stacktraces
  • 稳定性:您可以捕获每个例外
  • 开发速度:您不需要链接器(在C ++中可能需要很长时间);使用现代IDE(例如eclipse),您可以在程序运行时就地编辑代码
  • 垃圾收集和运行时类型安全消除了整类错误
  • 非常好的免费(如啤酒)IDE

答案 1 :(得分:8)

理论(有时在现实中)Java程序也运行在多个平台上,“一次编写 - 调试,呃,到处运行”类型的东西。这使它对各种项目非常有用。

根据我的个人经验,在介绍到C ++之后不久学习Java时,Java看起来更简单,更容易学习和理解,因此效率更高,如前所述。虽然程序结构和语法非常相似,但是不必担心指针和其他潜在危险的语言特性。

答案 2 :(得分:2)

这真的非常广泛,我认为这些是2或3个不同的问题。我将非常简短地解决第一个问题。 Java利用垃圾收集或自动内存管理。也就是说,它与C ++之类的语言之间的最大区别。显然有一些提高生产力的潜力,因为你不必担心记忆,尽管实际上你需要注意你的参考。也许你可以稍微改进一下你的问题。

答案 3 :(得分:2)

  • Java适用于浏览器! (例如Milpa)。你也可以说Flash,但是使用Java,你可以利用它附带的众多类(相对于C ++的另一个优势,即使两种语言在网络上都有一套好的免费库)以及你对语言的了解。
  • 如上所述,Java支持许多平台,只需最少的调整,快速,高效的VM,从大型服务器到移动电话。
  • OO支持可以更好地设计,避免在C ++中完成错误。不知怎的,C#对Java来说是什么Java是C ++ ^ _ ^(我不会争论这个,我实际上不太了解C#,这只是一个历史点)。
  • 本着同样的精神,Java略微抽象,避免指针,手动内存管理和其他一些低级别的东西。

这并不意味着一个比另一个更好,STL帮助C ++解决上面的一些问题,等等。

我不知道如何回答最后一句,分别是对象和方法,而不是类 我从来没有使用过System.in,我想如果你用<或者在命令行上。而parseInt是Integer类的静态方法。

答案 4 :(得分:1)

已经提到了语言功能(GC,反射等)。但另一个主要区别是:图书馆。我知道有STL和Boost以及各种类型的库,但它们并非都是一块,它们都有不同之处。通常你被迫使用各种C-API(例如线程或套接字,仅举两件事)。所有的C ++布道者现在都会跳进来讲述一些很酷的OO套接字或OO线程库,但它们不是STL的一部分。他们应该是。几乎是2009年,一切都是网络化和多线程的。这应该是标准库的一部分。 为什么使用这些C-API不好?因为在面向对象的程序中很难使用它们。尝试使用Win32的CreateThread()和监听器模式(C#-users:read“delegates”)。

对于“富客户端应用程序”,性能不是很重要,我总是使用Java或C#。如果我需要原始速度(想想信号处理或嵌入式应用程序),我宁愿使用C而不是C ++。

BTW:我已经使用了所有四种语言(C,C ++,Java,C#)很长一段时间。

答案 5 :(得分:0)

如果你想真正以面向对象的方式编程,那么你需要从C ++转向Java。 C ++的一个问题是大多数程序员实际上将它用作C并且没有利用它的所有OO功能。 Java在这里更加严格。

答案 6 :(得分:0)

使用C ++,您可以“在金属上”编程,而使用Java,您可以编写虚拟机。 Java软件堆栈一直向下构建,以提供高度抽象的编程体验。这在使用数据类型时“最明显”(即程序员不需要了解它们如何转换为内存区域),垃圾收集“只是工作”(程序员不必处理分配和解除分配问题)以及错误处理和传播的例外无处不在。指针不是Java的一部分,系统负责分配事物的位置和方式。

从这一点,您可能会发现Java的设计理念与C ++非常不同:Java试图强制程序员应该坚持某些被认为是安全的工作方式并使编程更容易。有些人讨厌Java的这个方面,其他人喜欢它。

答案 7 :(得分:0)

这实际上取决于你想要做什么。

对于许多更高级别的功能,其中最佳性能可能无关紧要,Java使用起来更容易,更可靠。例如,垃圾收集,数组检查等。当然,它也是沙箱。

对我来说,Java的另一个主要好处是使用反射和运行时类加载。我在可插拔架构中编写了很多插件,并且可以确保我可以在任何平台上为正在运行的程序添加更多新类。上次我尝试用C ++做的时候,我不得不搞乱DLL和COM。