Questions tagged «java»

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

1
CMSPermGenSweepingEnabled与CMSClassUnloadingEnabled
我之前曾问过这个问题-JVM标志CMSClassUnloadingEnabled实际做什么?,但是这次略有不同! 如果我启动-XX:+CMSPermGenSweepingEnabled设置了标志的Java VM,则会显示以下消息: 以后请使用CMSClassUnloadingEnabled代替CMSPermGenSweepingEnabled 该-XX:+CMSPermGenSweepingEnabled标志通常用于减轻PermGen OutOfMemory错误,但是我在其他地方读到,人们发现通过遵循上述建议,他们仍然存在这些错误,但是坚持使用-XX:+CMSPermGenSweepingEnabled以及-XX:+CMSClassUnloadingEnabled他们的VM在重新启动之间停留的时间更长。 难道-XX:+CMSClassUnloadingEnabled真的优先于-XX:+CMSPermGenSweepingEnabled或者是仍然在他俩都有些什么好处? 提前致谢 Rich ps:我知道perm gen问题的根本原因通常仍然是Classloader泄漏,这更多地是关于使用上述选项时JVM产生的消息。

4
与Maven进行集成测试的最佳实践?
我有一个正在使用Maven构建的项目,该项目使用Hibernate(和Spring)从数据库中检索数据,等等。 我对项目中DAO的“测试”扩展了Spring的功能,AbstractTransactionalDataSourceSpringContextTests以便可以将DataSource连线到我的被测类中,从而能够实际运行查询/休眠逻辑,获取数据等。 在其他几个项目中,我将这些类型的测试与HSQL数据库(内存中或指向文件的)配合使用,从而能够有效地测试实际的数据库查询逻辑,而无需依赖外部数据库。这很好用,因为它避免了任何外部依赖关系,并且在运行测试之前将数据库的“状态”(每个状态都包装在回滚的事务中)进行了很好的定义。 不过,我对组织这些测试的最佳方法感到好奇,这实际上是使用Maven进行的集成测试的一种松散风格。保留这些测试有点脏src/test/java,但是据我所读,似乎没有一致的策略或实践来组织与Maven的集成测试。 从到目前为止的内容来看,似乎可以使用Failsafe插件(或Surefire的第二个实例)并将其绑定到integration-test阶段,并且还可以绑定自定义启动或关闭逻辑(例如用于启动/停止HSQL实例)到pre-integration-test或post-integration-test。但是,这真的是最好的方法吗? 所以我的问题基本上是-与Maven一起组织此活动的公认最佳实践是什么?我在文档中找不到任何一致的答案时遇到麻烦。 我想要的是: 将单元测试与集成测试分开,因此在此test阶段仅运行单元测试 可以将自定义启动/关闭逻辑绑定到pre-integration-test和post-integration-test 将来自集成测试的报告与单元测试Surefire报告合并/提交

4
为什么Java 5+中的volatile不能确保另一个线程的可见性?
根据: http://www.ibm.com/developerworks/library/j-jtp03304/ 在新的内存模型下,当线程A写入易失性变量V,而线程B从V读取时,现在保证了在写入V时A可见的任何变量值对B可见。 互联网上的许多地方都指出,以下代码永远不应显示“错误”: public class Test { volatile static private int a; static private int b; public static void main(String [] args) throws Exception { for (int i = 0; i < 100; i++) { new Thread() { @Override public void run() { int tt = b; // makes …

11
我可以在运行时替换Spring bean定义吗?
请考虑以下情形。我有一个带有bean的Spring应用程序上下文,其属性应该是可配置的,认为DataSource或MailSender。可变的应用程序配置由单独的Bean管理,我们称之为configuration。 管理员现在可以更改配置值,例如电子邮件地址或数据库URL,我想在运行时重新初始化配置的bean。 假设我不能只是简单地修改上述可配置bean的属性(例如,通过FactoryBean或构造函数注入创建),而必须重新创建bean本身。 关于如何实现这一点的任何想法?我很高兴收到有关如何组织整个配置内容的建议。没有固定的东西。:-) 编辑 为了澄清一点:我不是在问如何更新配置或如何注入静态配置值。我将尝试一个示例: <beans> <util:map id="configuration"> <!-- initial configuration --> </util:map> <bean id="constructorInjectedBean" class="Foo"> <constructor-arg value="#{configuration['foobar']}" /> </bean> <bean id="configurationService" class="ConfigurationService"> <property name="configuration" ref="configuration" /> </bean> </beans> 因此,有一个constructorInjectedBean使用构造函数注入的bean 。想像一下,bean的构建非常昂贵,因此,使用原型范围或工厂代理不是一种选择DataSource。 我想做的是,每次更新配置时(通过重新创建configurationServicebeanconstructorInjectedBean并将其重新注入到应用程序上下文和从属bean中)。 我们可以放心地假设constructorInjectedBean正在使用接口,因此代理魔术确实是一种选择。 我希望这个问题更加清楚。
68 java  spring 


9
找不到Android资源异常?
我在使用findViewById(id)时遇到了一个奇怪的问题。即使资源肯定存在,它也返回找不到资源。它是布局中的一个textview,紧挨另一个textview,我可以通过id找到其中一个textview,但另一个显示未找到资源。有什么可能会发生这种情况吗?
68 java  android 




11
我应该避免使用Java Label语句吗?
今天,我有一个同事建议我重构代码,以使用label语句控制通过我创建的2个嵌套的for循环的流。我以前从未使用过它们,因为我个人认为它们会降低程序的可读性。如果论点足够扎实,我愿意改变使用它们的想法。人们对标签陈述有何看法?
68 java  loops 

8
禁用Tomcat中的所有默认HTTP错误响应内容
默认情况下,Tomcat的发送一些HTML内容返回给客户端,如果它通过遇到类似的HTTP 404。我知道,web.xml一个<error-page> 可以配置自定义此内容。 但是,我只希望Tomcat不发送任何响应内容(当然,我仍然希望状态码)。有什么方法可以轻松配置它吗? 我试图避免A)从我的Servlet在响应流上显式发送空内容,以及B)在我的中为一堆HTTP错误状态配置自定义错误页面web.xml。 在某些背景下,我正在开发HTTP API并控制自己的响应内容。例如,对于HTTP 500,我在响应中填充了一些XML内容,其中包含错误信息。对于HTTP 404之类的情况,HTTP响应状态对于客户端来说足够了,并且tomcat正在发送的内容是不必要的。如果有其他方法,我愿意听。 编辑: 经过不断调查,我仍然找不到解决方案的方法。如果有人可以肯定地说这是不可能的,或者提供了一个资源证明它行不通,那么我将接受它作为答案并尝试解决它。

12
在Java中移位位是否比乘法和除法快?。净?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 改善这个问题 如果您恰好使用2的幂,则在大多数(甚至甚至是所有)CPU上,向左和向右移位位显然比乘法和除法运算快。但是,对于某些阅读器和某些算法,这样做可能会降低代码的清晰度。移位确实是提高性能所必需的,还是我可以期望编译器或VM注意到这种情况并对其进行优化(特别是当2的幂是文字时)?我主要对Java和.NET的行为感兴趣,但也欢迎对其他语言实现有深入的了解。

5
在Java中发送电子邮件时抛出javax.mail.AuthenticationFailedException
我是Java的初学者,我想用Java发送电子邮件,因为我正在Java中使用此代码。但是我的代码抛出了异常,所以我需要一个提示,为什么…… 这是异常的堆栈跟踪: javax.mail.AuthenticationFailedException: 534-5.7.14 <https://accounts.google.com/ContinueSignIn?sarp=1&scc=1&plt=AKgnsbsNX 534-5.7.14 No6jJbDc4l7fZ_WLdBD0sNHIIp_nLvplRMm0bYFBnZBF_XOyVvNSdd1FenDZJPwBTFQyRH 534-5.7.14 lriPK3myMm-dXkW3zK0-6XpO7BzI8hfRcByG1k7YiVzXlddTvs7QhjtgCWNcrzMBuPhoof 534-5.7.14 GjME2TgYzXJVHz5MV98nRnr_kq-kP7RmgOtX3IQHLwM5E8QGBC9-2THVQr_Ch_U0-1nZsc 534-5.7.14 yoPuNEw> Please log in via your web browser and then try again. 534-5.7.14 Learn more at 534 5.7.14 https://support.google.com/mail/bin/answer.py?answer=78754 wr6sm26888533wjc.24 - gsmtp at com.sun.mail.smtp.SMTPTransport$Authenticator.authenticate(SMTPTransport.java:892) at com.sun.mail.smtp.SMTPTransport.authenticate(SMTPTransport.java:814) at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:728) at javax.mail.Service.connect(Service.java:364) at javax.mail.Service.connect(Service.java:245) at SendEmail.sendFromGMail(SendEmail.java:50) at SendEmail.main(SendEmail.java:18) sent 这是我的代码 …
68 java 



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.