Questions tagged «java»

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

10
为什么2 *(i * i)比Java中的2 * i * i快?
以下Java程序平均需要0.50到0.55秒钟才能运行: public static void main(String[] args) { long startTime = System.nanoTime(); int n = 0; for (int i = 0; i < 1000000000; i++) { n += 2 * (i * i); } System.out.println((double) (System.nanoTime() - startTime) / 1000000000 + " s"); System.out.println("n = " + n); } 如果我更换 2 …





23
如何检查Java中是否存在文件?
在打开文件以Java读取之前,如何检查文件是否存在(相当于Perl的文件 -e $filename)? 关于SO的唯一类似问题是写文件,因此得到了回答FileWriter,显然在这里不适用。 如果可能的话,我宁愿使用真正的API调用返回true / false,而不是使用“调用API来打开文件并在引发异常时捕获并在文本中检查'无文件'的情况下捕获”,但是我可以接受后者。
841 java  file-io  io  file-exists 




15
由于对所需库rt.jar的限制而导致对类的访问限制?
我试图在不重新创建存根的情况下编译由IBM的WSDL2Java在Java5上创建的Java 1.4代码,并在Eclipse中看到此错误。 我假设生成的存根应该只要运行时可用就可以编译。 jars Access restriction: The type QName is not accessible due to restriction on required library C:\Program Files\Java\jdk1.5.0_16\jre\lib\rt.jar 完整的班级名称是 javax.xml.namespace.QName 这到底是怎么回事?这是我要用香肠重构猪的情况吗?我最好重新创建存根吗?
824 java  eclipse  wsdl  stub  wsdl2java 

15
Java“双括号初始化”的效率?
Наэтотвопросестьответына 堆栈溢出нарусском:Чтотакое双括号инициализация? 在Java的“ 隐藏功能”中,最常见的答案是Double Brace Initialization,其语法非常诱人: Set<String> flavors = new HashSet<String>() {{ add("vanilla"); add("strawberry"); add("chocolate"); add("butter pecan"); }}; 此成语创建一个匿名内部类,其中仅包含一个实例初始化程序,该实例“可以使用包含范围中的任何方法”。 主要问题:这听起来像效率低下吗?它的使用是否应仅限于一次性初始化?(当然还有炫耀!) 第二个问题:新的HashSet必须是实例初始化程序中使用的“ this”……任何人都可以阐明该机制吗? 第三个问题:这个习惯用法是否太晦涩,无法在生产代码中使用? 摘要:非常非常好的答案,谢谢大家。在问题(3)上,人们认为语法应该明确(尽管我建议您偶尔发表评论,尤其是如果您的代码会传递给可能不熟悉它的开发人员时)。 关于问题(1),生成的代码应快速运行。多余的.class文件确实会导致jar文件混乱,并且会稍微减慢程序启动的速度(这要感谢@coobird进行测量)。@Thilo指出垃圾回收可能会受到影响,并且在某些情况下,额外加载的类的内存成本可能是一个因素。 问题(2)对我来说最有趣。如果我理解答案,那么DBI中发生的事情是匿名内部类扩展了new运算符正在构造的对象的类,因此具有引用此构造实例的“ this”值。井井有条。 总的来说,DBI令我感到好奇。Coobird和其他人指出,使用Arrays.asList,varargs方法,Google Collections和建议的Java 7 Collection文字可以实现相同的效果。较新的JVM语言(例如Scala,JRuby和Groovy)还为列表构建提供了简洁的符号,并且可以与Java很好地互操作。鉴于DBI会使类路径混乱,使类加载速度变慢,并使代码更加模糊,我可能会回避它。但是,我打算将这个介绍给一个刚刚获得SCJP并且喜欢Java语义的自然风趣的朋友!;-) 谢谢大家! 7/2017:Baeldung 对双括号初始化有很好的总结,并认为它是反模式。 12/2017:@Basil Bourque指出在新的Java 9中您可以说: Set<String> flavors = Set.of("vanilla", "strawberry", "chocolate", "butter pecan"); 那肯定是要走的路。如果您使用的是早期版本,请查看Google Collections的ImmutableSet。


30
LINQ的Java等效项是什么?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 4年前关闭。 LINQ的Java等效项是什么?
820 java  linq 



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.