Tag: java

Java:检查枚举是否包含给定的string?

这是我的问题…我正在寻找(如果它甚至存在)ArrayList.contains();的枚举等价物。 以下是我的代码问题的示例: enum choices {a1, a2, b1, b2}; if(choices.???(a1)}{ //do this } 现在,我意识到一个String的ArrayList将是更好的路线,但是我必须通过其他地方的switch / case来运行我的枚举内容。 因此我的问题。 假设这样的事情不存在,我怎么去做呢? 谢谢!

一个程序在编译期间是否依赖于库而不是运行时?

我理解运行时间和编译时间之间的区别,以及如何区分这两者,但我不认为需要区分编译时和运行时依赖 。 我ch咽的是这样的:一个程序如何不依赖运行时依赖于编译期间的东西? 如果我的Java应用程序使用log4j,那么它需要log4j.jar文件来编译(我的代码与log4j内部的成员方法集成和调用)以及运行时(我的代码完全不能控制一旦log4j内部的代码发生了什么.jar运行)。 我正在阅读像Ivy和Maven这样的依赖parsing工具,这些工具明确地区分了这两种依赖关系。 我只是不明白它的需要。 任何人都可以给出一个简单的“国王英语”式的解释,最好有一个像我这样的穷人可以理解的实际例子吗?

Hibernate 4有哪些新特性?

我刚刚看到Hibernate 4的testing版发布了。 4和3(.6)相比有什么新东西? 我在testing版发布中找不到这个信息,也没有在Google上search这个问题的标题。

JVM和HotSpot的区别?

HotSpot到底是什么,它与JVM和OpenJDK有什么关系? 这是一个图书馆吗? 它究竟做了什么? 另外,OpenJDK和HotSpot有什么区别?

等效静态和非静态方法的速度差别很大

在这段代码中,当我在main方法中创build一个对象,然后调用这个对象的方法: ff.twentyDivCount(i) (运行在16010毫秒)时,运行速度比使用这个注释调用要快得多: twentyDivCount(i) 59516毫秒)。 当然,当我运行它而不创build一个对象时,我使得这个方法是静态的,所以它可以在main中调用。 public class ProblemFive { // Counts the number of numbers that the entry is evenly divisible by, as max is 20 int twentyDivCount(int a) { // Change to static int…. when using it directly int count = 0; for (int i = 1; i<21; i++) { if (a % […]

在使用Mockito时,模拟和间谍有什么区别?

Mockito间谍的用法是什么? 在我看来,每个间谍用例可以用模拟处理,使用callRealMethod。 我可以看到的一个区别是,如果你想大部分的方法调用是真实的,它会节省一些代码来使用模拟与间谍。 这是我还是错过了更大的图片?

什么是循环反演技术?

我正在阅读一篇关于Java的即时编译器 (JIT)优化技术的文档。 其中之一是“循环倒置”。 文件说: 用一个do-while循环replace一个常规do-while循环。 do-while循环在if子句中设置。 这种替代导致两个较less的跳跃。 循环反转是如何工作的?它如何优化我们的代码path? 注意: 如果有人能够用Java代码的例子来解释,以及JIT如何将其优化为本地代码,那么为什么在现代处理器中它是最优的?

为什么Java的AbstractList的removeRange()方法受到保护?

有没有人有任何想法, 为什么在AbstractList (以及在ArrayList中 )removeRange方法是protected ? 它看起来像一个相当明确和有用的操作,但仍然使用它,我们被迫inheritanceList实现。 有一些隐藏的理由吗? 看来对我来说莫名其妙。

安装父级POM而不构build子模块

我有一个Maven项目中的父POM,具有以下结构: parent | ————— | | child1 child2 我想在本地REPO中安装“parent”的POM,以允许child1在dependencyManagement中进行一些更改,但由于“child2”已损坏,无法进行构build, 因此无法进行常规 “全新 安装” 。 这是用maven做这个的正确的方法(除了去父POM和评论“child2”模块)。

将Java Array转换为Iterable

我有一个原始数组,例如int,int [] foo。 它可能是一个小尺寸的,或不。 int foo[] = {1,2,3,4,5,6,7,8,9,0}; 什么是从它创build一个Iterable<Integer>的最好方法? Iterable<Integer> fooBar = convert(foo); 笔记: 请不要回答使用循环(除非你可以给出一个很好的解释,如何编译器做一些聪明的事情?) 另请注意 int a[] = {1,2,3}; List<Integer> l = Arrays.asList(a); 甚至不会编译 Type mismatch: cannot convert from List<int[]> to List<Integer> 另外检查为什么数组不能分配给Iterable? 在回答之前。 另外,如果你使用一些图书馆(例如番石榴),请解释为什么这是最好的。 (因为它来自Google不是一个完整的答案:P) 最后,由于似乎有一个功课,避免张贴家庭作业代码。