3

我在一个无人机项目中使用 Java,并被告知由于安全考虑,在设计军用无人机时通常不使用 Java。为什么是这样?我知道这与它生成自己的代码有关,但是任何了解无人机的人都可以详细介绍一下吗?

4

3 回答 3

5

它在速度方面本质上是不一致的。

由于它使用自己的垃圾收集器,因此当 GC 启动时,系统的其余部分不可避免地必须放慢一点速度以适应它。因此,您无法保证代码的及时性。

不要误解我的意思——这不是对 Java 的批评——我只是说在 Java 中你不能保证某段代码总是在一定时间内运行。

于 2014-03-04T10:22:56.683 回答
2

The short answer is "Java is not real-time"

(Unless you're using real-time Java of course)

于 2014-03-04T10:33:18.233 回答
1

对于这种系统,Java 似乎是一种有效的语言,但它还不够流行。看看航空工程师的这个答案,我认为这正是您需要知道的:您需要一个具有实时规范的 JVM。

我不认为生成字节码的方式是一个安全问题:您使用的任何语言都将被编译和优化,如果这是一个问题,肯定可以禁用 JIT 功能(运行时优化)

于 2014-03-04T10:42:00.433 回答