我想创build一些Producer/Consumer线程应用程序。 但是我不确定在两者之间实现一个队列的最佳方式。 所以我有两个想法(这两个可能是完全错误的)。 我想知道哪个更好,如果他们都吸了,那么执行队列的最好方法是什么。 主要是我在这些例子中执行的队列,我很关心。 我正在扩展一个Queue类,它是一个内部类,并且是线程安全的。 以下是每个4个类的两个示例。 主要类 – public class SomeApp { private Consumer consumer; private Producer producer; public static void main (String args[]) { consumer = new Consumer(); producer = new Producer(); } } 消费者阶层 – public class Consumer implements Runnable { public Consumer() { Thread consumer = new Thread(this); consumer.start(); } public […]
克隆方法vs在java复制构造函数。 哪一个是正确的解决scheme。 在哪里使用每个案例?
我正在开发一个用Java编写的项目,这个项目要求我构build一个非常大的二维稀疏数组。 非常稀疏,如果这有所作为。 无论如何:这个应用程序的最关键的方面是时间效率(假设内存负载,尽pipe没有那么大的限制,使我可以使用标准的二维arrays – 关键的范围是在两个数十亿)。 在arrays中的kajillion单元格中,将会有数十万个包含对象的单元格。 我需要能够很快修改单元格内容。 无论如何:有没有人知道这个目的特别好的图书馆? 它必须是伯克利,LGPL或类似的许可证(没有GPL,因为产品不能完全开源)。 或者,如果只有一个非常简单的方法来制作一个自制稀疏数组对象,那也可以。 我正在考虑MTJ ,但没有听到任何意见的质量。
build立在这个问题上写的最好的单例实现在Java中 – 即关于使用枚举来创build一个单例 – 什么是差异/优点/缺点之间(构造函数省略) public enum Elvis { INSTANCE; private int age; public int getAge() { return age; } } 然后调用Elvis.INSTANCE.getAge() 和 public enum Elvis { INSTANCE; private int age; public static int getAge() { return INSTANCE.age; } } 然后调用Elvis.getAge()
我如何重新启动Java AWT应用程序? 我有一个我附加了一个事件处理程序的button。 我应该使用什么代码重新启动应用程序? 我想和Application.Restart()在C#应用程序中做同样的事情。
我第一次看到这个关键字,我想知道是否有人可以向我解释它是什么。 什么是continue关键字? 它是如何工作的? 什么时候使用?
什么是Java中的类,对象和实例?
说我创build一个对象,并将其添加到我的ArrayList 。 如果我然后创build具有完全相同的构造函数input的另一个对象,将contains()方法评估这两个对象是相同的? 假设构造函数不会对input做任何有趣的事情,并且存储在两个对象中的variables是相同的。 ArrayList<Thing> basket = new ArrayList<Thing>(); Thing thing = new Thing(100); basket.add(thing); Thing another = new Thing(100); basket.contains(another); // true or false? class Thing { public int value; public Thing (int x) { value = x; } equals (Thing x) { if (x.value == value) return true; return false; } } 这是如何实现class有contains()返回true […]
当我运行时,每次我尝试运行该程序时,都会重复出现以下exception。 VM初始化期间发生错误 无法为对象堆预留足够的空间 无法创buildJava虚拟机。 我试图增加我的虚拟内存(页面大小)和内存大小,但无济于事。 谁能告诉我如何消除这个错误?
如果String和其他类一样,如何使用双引号来初始化?