小编Cam*_*mpa的帖子

在Java中定义最终字符串是否有意义?

可能重复:
字符串和最终

http://docs.oracle.com/javase/6/docs/api/java/lang/String.html我可以读到:

Strings are constant; their values cannot be changed after they are created. 
Run Code Online (Sandbox Code Playgroud)

这是否意味着final String在某种意义上该final属性在某种程度上是多余的,在Java中实际上没有意义?

java string final

42
推荐指数
4
解决办法
5万
查看次数

Unix时间和闰秒

关于Unix(POSIX)时间,维基百科说:

由于它处理闰秒,它既不是时间的线性表示,也不是UTC的真实表示.

但Unix date命令似乎并没有真正意识到它们

$ date -d '@867715199' --utc
Mon Jun 30 23:59:59 UTC 1997
$ date -d '@867715200' --utc
Tue Jul  1 00:00:00 UTC 1997
Run Code Online (Sandbox Code Playgroud)

虽然那里应该有一个闰秒Mon Jun 30 23:59:60 UTC 1997.

这是否意味着只有date命令忽略了闰秒,而Unix时间的概念却没有?

shell unix-timestamp leap-second

32
推荐指数
4
解决办法
1万
查看次数

不调用TestRule中的@Before方法

我实现了一个JUnit 4 TestRule(扩展一个ExternalResource),并将其作为@ClassRule我的测试类注入:我想在这个类的每个测试中为所有资源初始化一次,并最终将其拆除.

我的问题是在我的方法之前/之后根本没有调用我的@Before@After规则@Test方法:任何想法为什么会发生这种情况?

最小的可编辑示例:

package com.acme.test;

import static org.junit.Assert.assertNull;
import org.junit.ClassRule;
import org.junit.Test;
import org.junit.rules.ExternalResource;

class Coffee {
    public void throwAway() {}
}

class CoffeeMachine extends ExternalResource {
    Coffee whatElse;    
    @Override protected void before() throws Throwable {
        whatElse = new Coffee();
    }

    @Override protected void after() {
        whatElse.throwAway();
    }

    public Coffee gimmieCoffee() { return whatElse; }
}

public class CoffeeTester {
    @ClassRule public static CoffeeMachine CM = …
Run Code Online (Sandbox Code Playgroud)

java junit-rule

10
推荐指数
2
解决办法
1697
查看次数

具有可变行高的SWT表:适用于Linux,但不适用于Mac/Windows

问题:我需要一个具有可变行高的SWT表(JFace TableViewer).事实上,我在我的开发机器(运行Ubuntu 10.10)上解决了这个问题.不幸的是,这在Windows和Mac上都不起作用.

最初,我以为我没有正确使用这些库.但到现在为止,我担心我想要做的事情在Windows上根本不可能.我希望有人能说服我.

重现:我没有在这里提供我的代码,而是构建了一个简单的程序来重现问题.我从以下Snipplet开始:

http://git.eclipse.org/c/platform/eclipse.platform.ui.git/tree/examples/org.eclipse.jface.snippets/Eclipse%20JFace%20Snippets/org/eclipse/jface/snippets/viewers/ Snippet049StyledCellLabelProvider.java

我修改了update()方法,为目录生成两行文本,为文件生成一行(模拟具有可变行高的环境):

...
if (file.isDirectory()) {
    cell.setText(styledString.toString() + "\n"
        + styledString.toString());
    cell.setImage(IMAGE1);
} else {
    cell.setImage(IMAGE2);
}
...

这在Linux上可以正常工作,但在Windows上,所有行都具有相同的高度.具体来说,只能看到一行.

接下来,我试图通过使measure()更加智能来帮助SWT.所以我重写了measure(),如下所示:

protected void measure(Event event, Object element) {
    if (((File) element).isDirectory()) {
        event.height = 32;
    } else {
        event.height = 16;
    }
    super.measure(event, element);
}

结果:所有行都具有高度32.再次,这在Linux上按预期工作.

我担心,在Windows上,所有行都必须是相同的高度.这对我来说是一个显而易见的事.任何人都可以证实这一点,甚至更好,提供一种解决方法吗?

谢谢!

java swt jface

6
推荐指数
1
解决办法
4746
查看次数

如何在Windows批处理中重定向FOR命令

我知道如何使用>|>>|<|<<运算符重定向Windows shell命令,但我无法完成命令中使用的FOR命令?

例如:

for /f "usebackq tokens=*" %%I in (`__COMMAND__ 2>nul`) do (
    set MYVAR=%%I
)
Run Code Online (Sandbox Code Playgroud)

你知道,在这里我想要沉默一下这个__COMMAND__.shell抱怨它不期望2在那个地方(其他重定向的行为相同).

有人可以帮忙吗?

batch-file

5
推荐指数
1
解决办法
49
查看次数

OutOfMemoryError:无法使用ExecutorService创建新的本机线程

我在一夜之间启动了我的实例以了解它是如何处理的,当我今天早上到达时,我正面临着一个问题

Exception in thread "pool-535-thread-7" java.lang.OutOfMemoryError: unable to create new native thread
    at java.lang.Thread.start0(Native Method)
    at java.lang.Thread.start(Thread.java:691)
    at java.util.concurrent.ThreadPoolExecutor.addWorker(ThreadPoolExecutor.java:943)
    at java.util.concurrent.ThreadPoolExecutor.processWorkerExit(ThreadPoolExecutor.java:992)[info] application - Connecting to server A
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
    at java.lang.Thread.run(Thread.java:722)
Run Code Online (Sandbox Code Playgroud)

我的代码的目的很简单:每隔5分钟,我连接到远程服务器列表,发送请求(通过套接字),就是这样.

这是我的代码:

我的"cron"任务:

/** will create a new instance of ExecutorService every 5 minutes, loading all the websites in the database to check their status **/
/** Maybe that's where the problem is ? I need to empty (GC ?) this ExecutorService ? **/
Akka.system().scheduler().schedule(
    Duration.create(0, TimeUnit.MILLISECONDS), …
Run Code Online (Sandbox Code Playgroud)

java multithreading executorservice

2
推荐指数
1
解决办法
3794
查看次数