草庐IT

block_test

全部标签

java - 没有任何 catch 语句的 Try block

我正在通读一本Java教科书中有关异常和断言的一章,并遇到了我有疑问的这段代码。publicbooleansearchFor(Stringfile,Stringword)throwsStreamException{Streaminput=null;try{input=newStream(file);while(!input.eof())if(input.next().equals(word))returntrue;returnfalse;//notfound}finally{if(input!=null)input.close();}}在下一段中,文本说“searchFor方法声明它抛

java - 有没有办法多次执行静态 block ?如果是这样,那又如何呢?

我的理解静态block在类加载期间执行,如果类已经加载则除了类重新加载之外没有办法加载该类疑问/问题1)JVM是否有重新加载类的时间?我的理解在类加载中,JVM加载Java文件的字节码,因此它无法将所有数千个类的字节码保存在内存中,因此它可能会丢弃很少使用的代码并在必要时重新加载它,并且在重新加载期间JVM不会初始化静态变量和再次阻塞(可能使用了一些跟踪机制)疑问/问题2)如果我上面的理解不正确,请指正 最佳答案 据我所知,JVM本身永远不会重新加载一个类;一旦加载了一个类,它就会永远保持加载状态。出于这个原因,类定义保存在“Per

java - JUnit + Derby + Spring : drop in-memory db after every test

在我的单元测试中,我Autowiring了一些使用URL的数据源jdbc:derby:memory:mydb;create=true创建内存数据库。要删除内存中的Derby数据库,您必须连接:jdbc:derby:memory:mydb;drop=true我希望在每次测试后都发生这种情况,并从一个新的数据库开始。我如何使用Spring执行此操作? 最佳答案 HowtoshutdownDerbyin-memorydatabaseProperly给了我一个解决方案的提示:mydb.drop.url=jdbc:derby:memory:m

java - 在 gradle 的 eclipse 构建中拆分 main 和 test

今天我尝试将一个带有集成测试的项目从maven切换到gradle。一切正常,除了我在testng上遇到严重问题。该项目使用hibernate/JPA2进行数据库访问,并有几个依赖于test/resources/META-INF/persistence.xml中的持久性单元的测试。当我使用gradle运行测试套件时,一切正常。但是当我从eclipse运行xml(或任何测试类本身)时,它似乎试图使用main/resources/META-INF/persistence.xml。因为我的大部分工作都使用TDD,所以我确实需要从eclipse运行/调试测试。当我将持久性单元添加到生产persi

java - 在 JUnit 4 的@Before 中获取当前正在执行的 @Test 方法

我想在@Before中获取当前正在执行的测试方法,以便我可以获得应用于当前正在执行的方法的注释。publicclassTestCaseExample{@BeforepublicvoidsetUp(){//getcurrentmethodhere.}@Test@MyAnnotation("id")publicvoidsomeTest{//code}} 最佳答案 尝试TestName规则publicclassTestCaseExample{@RulepublicTestNametestName=newTestName();@Before

java - Java 编译器是否优化了空的同步块(synchronized block)?

假设我在代码的某处写了一个空的synchronizedblock:synchronized(obj){//Nocodehere}因此,由于同步块(synchronizedblock)不包含任何代码,JIT编译器是否会通过不锁定obj来优化它,因为它没有用?Java编译器会做一些类似的技巧,例如Lockcoarsening,但是这个同步块(synchronizedblock)是否也会被优化掉?编辑:根据assylias的观点,synchronized(newObject()){//emptyblock}JIT编译器现在是否能够优化它,因为我使用的对象不会转义我的方法?

java - 如何仅跳过针对 "compile"和 "install"目标而不是 "test"目标的测试?

我有这样一种情况,我们的单元测试需要很长时间才能为我们的业务域项目执行,因为它将数据库设置为已知状态,然后继续执行每个步骤。我知道这可以通过命令行上的“-Dmaven.test.skip=true”来完成,但希望仅在项目的NetBeans中配置它,如果有人可以阐明如何在IDE中进行配置,则全局是可以接受的。如何将maven2配置为仅在调用“测试”目标时执行测试?即使调用“测试”目标(fromthemavendocos),使用以下命令也会禁用测试。org.apache.maven.pluginsmaven-surefire-plugin2.6true 最佳答案

java - 在 Java 中将字符串拆分为 n 个长度的 block

这个问题在这里已经有了答案:关闭12年前。PossibleDuplicate:SplitstringtoequallengthsubstringsinJava鉴于我有以下实用方法:/***SplitsstringsintochunksofsizechunkSize**@paramsthestringtosplit;mustnotbenull*@paramchunkSizenumberofcharsineachchuck;mustbegreaterthan0*@returnTheoriginalstringinchunks*/publicstaticListsplitInChunks(S

java - 与 Objective-C block 相比,Java 匿名类的局限性

在发现Objective-C中的block后,我才开始关注一阶函数和闭包。Java是另一种我听说过闭包(或没有闭包)以及匿名类如何在某种程度上弥补这一点的语言。在Objective-C中我绝对可以看到闭包作为block的优势,但是匿名Java类的局限性是什么?它们在多大程度上“有点”弥补了真正闭包的不足? 最佳答案 Java匿名类真的非常冗长。除了定义它们所需的大量样板之外,Java的一些设计决策意味着许多常见任务比其他语言要冗长得多。例如,将可变上值导入闭包是Java中的一个难题。基本上,Java不支持上值;相反,它们是通过将它们

java - 如何避免在 Java 中有很多 try catch block

我对java和trycatchblock处理异常的想法还很陌生。这大致就是我要结束的,而且必须有更好的方法:try{JSONObjectjsonObject=newJSONObject(jsonString);intaCount=jsonObject.getInt("acount");StringdevTok=jsonObject.getString("dt");StringqURL=jsonObject.getString("qu");try{DatastoreServicedatastore=DatastoreServiceFactory.getDatastoreService()