Tag: 可移植性

为什么这个简单的线程程序会卡住?

看看这个简单的Java程序: import java.lang.*; class A { static boolean done; public static void main(String args[]) { done = false; new Thread() { public void run() { try { Thread.sleep(1000); // dummy work load } catch (Exception e) { done = true; } done = true; } }.start(); while (!done); System.out.println(“bye”); } } 在一台机器上,它打印“再见”并立即退出,而在另一台机器上,它不打印任何东西并永远坐在那里。 为什么?

跨系统和版本的java伪随机数的再现性?

在给定初始整数参数的情况下,我需要生成受控的伪随机数序列。 为此,我使用标准Java Random类,由整数参数播种。 我想确保在可预见的未来(甚至更多!)中我将跨系统(操作系统,还有Java / JDK版本)生成相同的序列。 总结:Java是否确保其伪随机数生成器在实现和版本中的可重复性/可移植性? 注意:我已经为Python提出了完全相同的问题 。 我之后将实现语言改为Java,但出于其他原因。

“架构中立”和“便携式”之间有什么区别?

我正在阅读Herbert Schildt的书“Java:The Complete Reference”,他在那里写道Java是可移植的,并且是架构中立的。 这两个概念有什么区别? 我从文中无法理解。

在Windows上用Java编写并发文件

当您在同一个文件上同时打开两个(或更多)FileOutputStream时会发生什么? Java API说: 特别是某些平台允许一次只打开一个FileOutputStream(或其他文件写入对象)来写文件。 我猜Windows不是这样一个平台,因为我有两个线程读取一些大文件(每个都是一个不同的文件),然后将其写入相同的输出文件。 抛出没有exception,文件被创建并且似乎包含来自两个输入文件的块。 附带问题: 对于Unix也是如此吗? 而且因为我希望行为是相同的(实际上我希望一个线程正确编写而另一个线程被警告冲突),我怎样才能确定文件已经打开进行写入?

什么是便携性? java如何比其他语言更便携?

我想知道Java如何比C,C ++和.NET以及任何其他语言更具可移植性。 由于解释器和JVM,我已多次读过有关java的可移植性,但JVM只是隐藏了硬件中的架构差异,对吧? 对于不同的机器架构,我们仍然需要不同的JVM。 我在这里想念的是什么? 因此,如果有人为最常见的体系结构为C编写抽象层,让我们说CVM,那么一旦安装了CVM,任何C程序都将在这些体系结构上运行,不是吗? 这个便携性究竟是什么? .NET可以称为可移植吗?

如何使用在所有平台上运行的SWT创建可执行JAR?

SWT每个平台都有一个基础JAR和一个特定的JAR(Windows,Linux / 32位,Linux / 64位,Mac,AIX,…)。 如何创建可在运行时选择正确平台JAR的可执行JAR? [编辑]我想在子目录中提供所有平台JAR,然后在main()修改类加载器。 有没有人试过这个?