Tag: java

连接和读取套接字的超时有什么区别?

3个问题: 连接和读取套接字的超时有什么区别? 连接超时设置为“无穷大”是什么意思? 在什么情况下可以留在不定式循环中? 什么会触发无限循环死亡? 读取超时设置为“无限”是什么意思? 在什么情况下可以留在不定式循环中? 什么会触发无限循环死亡?

为什么jUnit的fixtureSetup必须是静态的?

我用jUnit的@BeforeClass注解标记了一个方法,并得到这个exception说它必须是静态的。 基本原理是什么? 这迫使我所有的init都在静态的领域,就我所见,没有任何理由。 在.Net(NUnit)中,情况并非如此。 编辑 – 用@BeforeClass注释的方法只运行一次与静态方法无关 – 可以有一个非静态方法只运行一次(如在NUnit中)。

为什么有可能从StackOverflowError中恢复?

即使在Java中发生StackOverflowError之后,我仍然可以继续执行,这让我很惊讶。 我知道StackOverflowError是类错误的一个子类。 Error类被解释为“Throwable的一个子类,表示合理的应用程序不应该试图捕捉的严重问题”。 这听起来更像是一个推荐,而不是一个规则,像一个StackOverflowError捕获错误实际上是允许的,这是由程序员的合理性,不这样做。 而且看,我testing了这个代码,它正常结束。 public class Test { public static void main(String[] args) { try { foo(); } catch (StackOverflowError e) { bar(); } System.out.println("normal termination"); } private static void foo() { System.out.println("foo"); foo(); } private static void bar() { System.out.println("bar"); } } 怎么会这样? 我想在StackOverflowError抛出的时候,堆栈应该足够大,以致于没有空间来调用另一个函数。 error handling块是否在不同的堆栈中运行,或者在这里发生了什么?

leiningen – 如何添加本地jar子的依赖?

我想用leiningenbuild立和发展我的clojure项目。 有没有办法修改project.clj来告诉它从本地目录中select一些jar? 我有一些专有的jar子不能上传到公共仓库。 另外,leiningen可以用来维护clojure项目的“lib”目录吗? 如果我的一些clojure项目共享相同的jar子,我不想为每个jar子保留一个单独的副本。 谢谢

Mockitovalidation方法调用的顺序/顺序

有没有办法来validationmethodTwo之前调用methodTwo在Mockito? public class ServiceClassA { public void methodOne(){} } public class ServiceClassB { public void methodTwo(){} } public class TestClass { public void method(){ ServiceClassA serviceA = new ServiceClassA(); ServiceClassB serviceB = new ServiceClassB(); serviceA.methodOne(); serviceB.methodTwo(); } }

文件到InputStream

我只是想将File转换为InputStream ,我该怎么做? 例如 FileInputStream fis = new FileInputStream("c://filename"); InputStream is = ?; fis.close(); 如何将FileInputStream转换为InputStream ,以便我可以closuresfis或者有任何其他方式将File转换为InputStream ?

function过早返回的效率

这是我经常遇到的一个缺乏经验的程序员的情况,我特别想知道我正在试图优化的一个雄心勃勃,高速度的项目。 对于主要的类C语言(C,objC,C ++,Java,C#等)及其通常的编译器,这两个函数的运行效率如何? 编译代码有没有区别? void foo1(bool flag) { if (flag) { //Do stuff return; } //Do different stuff } void foo2(bool flag) { if (flag) { //Do stuff } else { //Do different stuff } } 从根本上来说,是否有一个直接的效率奖金/罚款提前break或return ? 如何涉及到堆栈? 有没有优化特殊情况? 是否有任何因素(如内联或“做什么”的大小)可能会显着影响这一点? 我总是支持提高可读性,而不是轻微的优化(我在参数validation中看到foo1),但是这样频繁出现,我想一劳永逸地放下所有的担心。 而且我意识到过早优化的陷阱…呃,那些是一些痛苦的回忆。 编辑:我接受了一个答案,但EJP的答案很简洁地解释了为什么使用return几乎可以忽略不计(在汇编中, return创build了一个'分支'到函数结束,这是非常快速的分支改变PC注册,也可能会影响caching和pipe道,这是非常微不足道的。)对于这种情况下,特别是,它没有区别,因为无论是if/else和return创build相同的分支到函数的结尾。

将JSONstring转换为使用Jackson的漂亮打印JSON输出

这是我拥有的JSONstring, {"attributes":[{"nm":"ACCOUNT","lv":[{"v":{"Id":null,"State":null},"vt":"java.util.Map","cn":1}],"vt":"java.util.Map","status":"SUCCESS","lmd":13585},{"nm":"PROFILE","lv":[{"v":{"Party":null,"Ads":null},"vt":"java.util.Map","cn":2}],"vt":"java.util.Map","status":"SUCCESS","lmd":41962}]} 我需要将上面的JSONstring转换为Pretty Print JSON Output(使用Jackson) { "attributes": [ { "nm": "ACCOUNT", "lv": [ { "v": { "Id": null, "State": null }, "vt": "java.util.Map", "cn": 1 } ], "vt": "java.util.Map", "status": "SUCCESS", "lmd": 13585 }, { "nm": "PROFILE "lv": [ { "v": { "Party": null, "Ads": null }, "vt": "java.util.Map", "cn": 2 } ], "vt": […]

如何在java中显示简单的警报消息?

来自.NET我很习惯在桌面应用程序中调用Alert()。 然而,在这个Java桌面应用程序,我只是想警告一条消息,说:“感谢您使用Java”我必须经历这么多的痛苦: (使用JOptionPane) 有更容易的方法吗?

如何在Java中延迟?

我正在尝试在Java中做一些事情,我需要在while循环中等待/延迟一段时间。 while (true) { if (i == 3) { i = 0; } ceva[i].setSelected(true); //need to wait here ceva[i].setSelected(false); //need to wait here i++; } 我想build立一个步序列器,我是Java的新手。 有什么build议么 ? 谢谢!