可能重复: 我如何计算在Java中的事件经过的时间? 我想要这样的东西: public class Stream { public startTime; public endTime; public getDuration() { return startTime – endTime; } } 在Java中使用哪种types来实现这一点? (另外重要的是,例如,如果startTime是23:00,endTime 1:00是2:00的持续时间。)
在打开Java阅读器之前,如何检查文件是否存在? (相当于Perl的-e $filename )。 SO上唯一类似的问题处理写入文件,因此使用FileWriter来回答,这在这里显然不适用。 如果可能的话,我宁愿一个真正的API调用返回true / false,而不是一些“调用API来打开一个文件,并赶上时,它会抛出一个exception,你检查文本中没有文件”,但我可以住在后者。
回顾这篇文章列举了使用单例的几个问题,并看到了几个Android应用程序使用单例模式的例子,我不知道是否是一个好主意,而不是通过全局应用程序状态共享单个实例(subclassing android.os.Application并获得它通过context.getApplication())。 这两种机制有什么优点/缺点? 说实话,我希望在这篇文章中有同样的答案与Web应用程序的单例模式,不是一个好主意! 但适用于Android。 我对么? DalvikVM有什么不同呢? 编辑:我想对涉及的几个方面有意见: 同步 可重用性 testing
我有一个由两个简单的java swing文件组成的程序。 我如何为我的程序制作一个可执行的jar文件?
我刚刚看到类似这样的代码: public class Scratch { public static void main(String[] args) { Integer a = 1000, b = 1000; System.out.println(a == b); Integer c = 100, d = 100; System.out.println(c == d); } } 运行时,这块代码将打印出来: false true 我明白为什么第一个是false :因为这两个对象是单独的对象,所以==比较引用。 但是我不明白,为什么第二条语句返回true ? 当Integer的值在一定范围内时,是否有一些奇怪的自动装箱规则? 这里发生了什么?
我问了这个问题,以了解如何增加JVM中的运行时调用堆栈大小。 我已经得到了一个答案,而且我也得到了很多有用的答案和评论,这些答案和评论与Java如何处理需要大型运行时堆栈的情况相关。 我已经回答了问题的总结。 最初我想增加JVM堆栈的大小,所以像没有StackOverflowError运行的程序。 public class TT { public static long fact(int n) { return n < 2 ? 1 : n * fact(n – 1); } public static void main(String[] args) { System.out.println(fact(1 << 15)); } } 相应的configuration设置是具有足够大的值的java -Xss…命令行标志。 对于上面的程序TT ,它可以像OpenJDK的JVM一样工作: $ javac TT.java $ java -Xss4m TT 其中一个答案也指出-X…标志是依赖于实现的。 我正在使用 java version "1.6.0_18" OpenJDK […]
我知道如果你把一个盒装的原始Integer与一个常量比较,如: Integer a = 4; if (a < 5) a将自动被拆箱,比较将工作。 然而,当你比较两个盒装Integers并想要比较相等或小于/大于? Integer a = 4; Integer b = 5; if (a == b) 上面的代码会导致检查,看看他们是否是相同的对象,或者它会自动取消箱子在这种情况下? 关于什么: Integer a = 4; Integer b = 5; if (a < b) ?
参考以下线程: Java App:无法正确读取iso-8859-1编码的文件 什么是编程式确定inputstream/文件的正确字符集编码的最佳方法? 我曾尝试使用以下内容: File in = new File(args[0]); InputStreamReader r = new InputStreamReader(new FileInputStream(in)); System.out.println(r.getEncoding()); 但是在我知道用ISO8859_1编码的文件上面的代码会产生ASCII,这是不正确的,并且不允许我正确地将文件的内容呈现回控制台。
我有2个matrix,我需要将它们相乘,然后打印每个单元格的结果。 只要一个单元准备就绪,我需要打印它,但是例如,即使[2] [0]的结果先准备就绪,我需要在单元[2] [0]之前打印[0] [0]单元。 所以我需要按顺序打印。 所以我的想法是使打印机线程等待,直到multiplyThread通知它正确的单元格准备好打印,然后printerThread将打印单元格,并返回到等待等等。 所以我有这个线程,做乘法: public void run() { int countNumOfActions = 0; // How many multiplications have we done int maxActions = randomize(); // Maximum number of actions allowed for (int i = 0; i < size; i++) { result[rowNum][colNum] = result[rowNum][colNum] + row[i] * col[i]; countNumOfActions++; // Reached the number […]
我目前正在构build一个Java应用程序,最终可能会在许多不同的平台上运行,但主要是Solaris,Linux和Windows的变体。 有没有人能够成功地提取信息,如当前使用的磁盘空间,CPU利用率和底层操作系统中使用的内存? 那么Java应用程序本身在消费什么呢? 最好我不想使用JNI来获取这些信息。