Questions tagged «java»

Java是一种流行的高级编程语言。如果您在使用或理解语言本身时遇到问题,请使用此标签。这个标签很少单独使用,最常与[spring],[spring-boot],[jakarta-ee],[android],[javafx],[gradle]和[maven]结合使用。

21
为什么要实现finalize()?
我一直在阅读许多关于Java的新手问题finalize(),发现令人困惑的是,没有人真的说过finalize()是清理资源的不可靠方法。我看到有人评论说他们用它来清理Connections,这确实很吓人,因为要保证关闭Connection的唯一方法就是最终实现try(catch)。 我没有在CS上学,但是近十年来我一直在用Java专业编程,而且从未见过有人finalize()在生产系统中实现过程序。这仍然并不意味着它没有用途,或者与我一起工作的人都在正确地做它。 所以我的问题是,有哪些用例可以实现 finalize()无法通过语言中的其他过程或语法更可靠地处理? 请提供特定的方案或您的经验,仅仅重复一本Java教科书,或完成最终的预期用途是不够的,这不是此问题的意图。
371 java  jvm 

11
用Mockito模拟静态方法
我已经写了一家工厂来生产java.sql.Connection物体: public class MySQLDatabaseConnectionFactory implements DatabaseConnectionFactory { @Override public Connection getConnection() { try { return DriverManager.getConnection(...); } catch (SQLException e) { throw new RuntimeException(e); } } } 我想验证传递给的参数DriverManager.getConnection,但不知道如何模拟静态方法。我在测试用例中使用的是JUnit 4和Mockito。有没有模拟或验证此特定用例的好方法?

12
用于System.out.println()的JUnit测试
我需要为设计欠佳的旧应用程序编写JUnit测试,并将旧的错误消息写入标准输出。该getResponse(String request)方法的行为正确时,将返回XML响应: @BeforeClass public static void setUpClass() throws Exception { Properties queries = loadPropertiesFile("requests.properties"); Properties responses = loadPropertiesFile("responses.properties"); instance = new ResponseGenerator(queries, responses); } @Test public void testGetResponse() { String request = "<some>request</some>"; String expResult = "<some>response</some>"; String result = instance.getResponse(request); assertEquals(expResult, result); } 但是,当XML格式错误或无法理解请求时,它将返回null并将某些内容写入标准输出。 有什么方法可以在JUnit中声明控制台输出?要捕获类似的情况: System.out.println("match found: " + …
370 java  console  junit 


30
找不到用于logger(log4j)的附加程序?
我已经将log4j放到了我的构建路径中,但是在运行应用程序时收到以下消息: log4j:WARN No appenders could be found for logger (dao.hsqlmanager). log4j:WARN Please initialize the log4j system properly. log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 这些警告是什么意思?这里的追加器是什么?
368 java  eclipse  log4j 

27
完成之前的所有活动
我的应用程序具有以下流程屏幕: Home->screen 1->screen 2->screen 3->screen 4->screen 5 现在我log out 在每个屏幕上都有一个通用按钮 (Home/ screen 1 / screen 2 /screen 3/ screen 4 / screen 5) 我希望当用户单击注销按钮(从任何屏幕)时,所有屏幕都将完成,并且Log in将打开一个新屏幕。 我几乎已经尝试了所有方法FLAG_ACTIVITY来实现这一目标。我也在stackoverflow中经历了一些答案,但无法解决问题。我的应用程序位于Android 1.6上,因此无法使用FLAG_ACTIVITY_CLEAR_TASK 有什么办法解决这个问题?

14
如何使UTF-8在Java Webapps中工作?
我需要在Java webapp(servlet + JSP,不使用框架)中使用UTF-8来支持äöå诸如常规芬兰文字和西里尔字母等ЦжФ特殊情况。 我的设置如下: 开发环境:Windows XP 生产环境:Debian 使用的数据库:MySQL 5.x 用户主要使用Firefox2,但也使用Opera 9.x,FF3,IE7和Google Chrome访问该站点。 如何实现呢?
367 java  mysql  tomcat  encoding  utf-8 

29
Windows 7上的Android Studio安装失败,未找到JDK
我下载了Android Studio,并尝试启动该程序。 它在带有Java 1.7的Windows 7 64位上运行。在安装过程中,我的Java 1.7被检测到,其余的安装过程都很好。但是,当尝试从桌面图标启动应用程序时,没有任何反应。查看任务管理器,将加载CMD中的新流程。这是因为它正在尝试运行批处理文件studio.bat。 通过CMD执行时,出现以下错误: 错误:无法启动Android Studio。找不到JDK。请验证ANDROID_STUDIO_JDK或JDK_HOME或JAVA_HOME指向有效的JDK安装。回音关闭。按任意键继续 。。。 我试图打开idea属性文件,以查看是否可以为此配置ANDROID_STUDIO_JDK某些内容或类似的内容。但是,我什么也没找到。我希望你们中的一些人可以让我知道您是否能够安装它或遇到问题。

11
不是封闭的类Java
我正在尝试制作俄罗斯方块游戏,但出现编译器错误 Shape is not an enclosing class 当我尝试创建对象时 public class Test { public static void main(String[] args) { Shape s = new Shapes.ZShape(); } } 我为每个形状使用内部类。这是我的代码的一部分 public class Shapes { class AShape { } class ZShape { } } 我究竟做错了什么 ?

18
如何从Java中的类路径真正读取文本文件
我正在尝试读取在CLASSPATH系统变量中设置的文本文件。不是用户变量。 我正在尝试将输入流传输到文件,如下所示: 将文件(D:\myDir)的目录放在CLASSPATH中,然后尝试以下操作: InputStream in = this.getClass().getClassLoader().getResourceAsStream("SomeTextFile.txt"); InputStream in = this.getClass().getClassLoader().getResourceAsStream("/SomeTextFile.txt"); InputStream in = this.getClass().getClassLoader().getResourceAsStream("//SomeTextFile.txt"); 将文件(D:\myDir\SomeTextFile.txt)的完整路径放在CLASSPATH中,然后尝试上述3行代码中的相同路径。 但是不幸的是,它们都没有起作用,我一直都在null进入InputStream in。
366 java  classpath 

25
Java中的HTTP URL地址编码
我的Java独立应用程序从用户那里获取URL(指向文件),我需要点击它并下载它。我面临的问题是我无法正确编码HTTP URL地址... 例: URL: http://search.barnesandnoble.com/booksearch/first book.pdf java.net.URLEncoder.encode(url.toString(), "ISO-8859-1"); 返回我: http%3A%2F%2Fsearch.barnesandnoble.com%2Fbooksearch%2Ffirst+book.pdf 但是,我想要的是 http://search.barnesandnoble.com/booksearch/first%20book.pdf (空格替换为%20) 我猜URLEncoder不是为了对HTTP URL进行编码而设计的。JavaDoc说“用于HTML表单编码的实用程序类”。还有其他方法可以做到这一点吗?
366 java  http  urlencode 

4
有条件地忽略JUnit 4中的测试
好的,因此@Ignore注释非常适合标记不应运行测试用例。 但是,有时我想忽略基于运行时信息的测试。例如,如果我有一个并发测试需要在具有一定数量内核的计算机上运行。如果此测试是在单处理器计算机上运行的,那么我认为仅通过测试是不正确的(因为尚未运行),并且通过测试并破坏构建肯定不是正确的选择。 因此,我希望能够在运行时忽略测试,因为这似乎是正确的结果(因为测试框架将允许构建通过,但记录未运行测试)。我相当确定注释不会给我这种灵活性,并且怀疑我需要为相关类手动创建测试套件。但是,文档中没有提及任何内容,并且通过API查看还不清楚如何以编程方式完成此操作(即,如何以编程方式创建Test与@Ignore注释所创建的实例相同的实例或类似实例?)。 如果有人在过去做过类似的事情,或者对我还能做些什么有一个聪明的主意,那么我很乐意听到。

30
在IntelliJ中可能无法在Eclipse中完成的事情?
已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 我听说有人改变了选择的方式,并且互相誓约。 作为Eclipse的忠实拥护者,但没有时间尝试IntelliJ,我感兴趣的是IntelliJ用户,他们是“前Eclipsians”,您可以使用IntelliJ来完成某些您无法使用Eclipse来完成的特定工作。 注意:这不是主观问题,也不是要成为IDE的圣战。请否决任何烈火的答案。



By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.