Questions tagged «java»

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

12
如何在开关中使用null
Integer i = ... switch (i){ case null: doSomething0(); break; } 在上面的代码中,我不能在switch case语句中使用null。我该怎么做呢?我无法使用,default因为那之后我想做点其他的事情。

7
java.util.Random和java.security.SecureRandom之间的区别
我的团队收到了一些生成随机令牌的服务器端代码(Java),我对此有一个疑问- 这些令牌的用途非常敏感-用于会话ID,密码重置链接等。因此,它们确实需要进行密码随机处理,以避免有人猜测或对它们进行暴力破解。令牌是“长”的,因此它是64位长。 该代码当前使用java.util.Random该类来生成这些令牌。该文档的java.util.Random明确规定如下: java.util.Random的实例不是加密安全的。可以考虑使用SecureRandom获得加密安全的伪随机数生成器,以供对安全敏感的应用程序使用。 但是,代码当前使用的方式java.util.Random是-实例化java.security.SecureRandom该类,然后使用该SecureRandom.nextLong()方法获取用于实例化java.util.Random该类的种子。然后使用java.util.Random.nextLong()方法生成令牌。 所以,我现在的问题是-仍然java.util.Random使用种子进行播种还是不安全的java.security.SecureRandom?我是否需要修改代码,使其java.security.SecureRandom专门用于生成令牌? 目前,代码种子是Random启动时的一次

8
java.util.Random真的那么随机吗?我该如何生成52!(部分)可能的顺序?
我一直在Random (java.util.Random)洗牌52张牌。有52个!(8.0658175e + 67)的可能性。但是,我发现for的种子java.util.Random是a long,其值小得多,为2 ^ 64(1.8446744e + 19)。 从这里开始,我怀疑是否java.util.Random 真的那么随机;它真的有能力产生全部52个!可能性? 如果没有,我怎么能可靠地产生一个可以产生全部52个更好的随机序列!可能性?


14
如何分割逗号分隔的字符串?
我有一个长度未知的字符串,看起来像这样 "dog, cat, bear, elephant, ..., giraffe" 将这个字符串用逗号分隔的最佳方法是什么,以便每个单词都可以成为ArrayList的元素? 例如 List<String> strings = new ArrayList<Strings>(); // Add the data here so strings.get(0) would be equal to "dog", // strings.get(1) would be equal to "cat" and so forth.
202 java  string  split 



5
如何告诉Mockito模拟对象在下次调用时返回不同的内容?
因此,我正在像这样在类级别上将模拟对象创建为静态变量...在一个测试中,我想Foo.someMethod()返回某个值,而在另一个测试中,我希望它返回一个不同的值。我遇到的问题是,似乎我需要重建模拟才能使其正常工作。我想避免重建模拟,只在每个测试中使用相同的对象。 class TestClass { private static Foo mockFoo; @BeforeClass public static void setUp() { mockFoo = mock(Foo.class); } @Test public void test1() { when(mockFoo.someMethod()).thenReturn(0); TestObject testObj = new TestObject(mockFoo); testObj.bar(); // calls mockFoo.someMethod(), receiving 0 as the value } @Test public void test2() { when(mockFoo.someMethod()).thenReturn(1); TestObject testObj = new TestObject(mockFoo); …

30
在IntelliJ IDEA下使用Lombok时无法编译项目
我正在尝试使用IntelliJ IDEA 11开发的项目中使用Lombok。 我已经为IDEA安装了3rd-party插件,由于IDEA可以看到所有自动生成的方法/字段,因此似乎工作正常。 所以我有一个使用Slf4j的类。我这样注释 import lombok.extern.slf4j.Slf4j; @Slf4j public class TestClass { public TestClass() { log.info("Hello!"); } } 但是,当我构建项目编译器时,它会吐出:cannot find symbol variable log。 你能告诉我我在这里想念的吗? 更新:原来是RequestFactory注释过程失败。 input files: {com.zasutki.courierApp.server.TestServlet, com.mine.courierApp.server.model.DatastoreObject} annotations: [javax.inject.Singleton, javax.inject.Inject, lombok.Getter, lombok.Setter, com.googlecode.objectify.annotation.Id, com.googlecode.objectify.annotation.OnSave] Processor com.google.web.bindery.requestfactory.apt.RfValidator matches [lombok.Getter, com.googlecode.objectify.annotation.Id, javax.inject.Inject, lombok.Setter, com.googlecode.objectify.annotation.OnSave, javax.inject.Singleton] and returns false. cannot find …


8
用Java创建对象数组
我是Java的新手,当时我用Java创建了一个对象数组。 例如,我有A类- A[] arr = new A[4]; 但这只是创建指向(引用)的指针,A而不是创建4个对象。它是否正确?我看到当我尝试访问创建的对象中的函数/变量时,出现空指针异常。为了能够操作/访问对象,我必须这样做: A[] arr = new A[4]; for (int i = 0; i < 4; i++) { arr[i] = new A(); } 这是正确的还是我做错了什么?如果这是正确的,那真的很奇怪。 编辑:我觉得这很奇怪,因为在C ++中,您只是说new A[4],它会创建四个对象。
202 java  arrays  class 




9
如何加快gwt编译器的速度?
我们开始在我们的项目中大量使用GWT,并且GWT编译器的性能变得越来越令人讨厌。 我们将开始改变工作方式以减轻该问题,包括更加强调托管模式浏览器,这推迟了稍后运行GWT编译器的需求,但这带来了自身的风险,特别是直到比我们想要的要晚得多的时候,才真正的浏览器发现问题。 理想情况下,我们希望使GWT编译器本身更快-一分钟才能编译一个相当小的应用程序真是令人不快。但是,如果使用的是相当幼稚的方式,我们将使用编译方式,因此我希望我们可以快速轻松地获得收益。 我们目前正在从ant Ant目标中调用com.google.gwt.dev.Compiler作为Java应用程序,最大堆内存为256m,并且有大量堆栈空间。Ant会使用fork = true和最新的Java 6 JRE启动该编译器,以尝试利用Java6的改进性能。我们将主控制器类与应用程序类路径一起传递给编译器,然后关闭。 我们还能做什么以提高速度?我们可以给它更多的信息,以便花费更少的时间来发现要做的事情吗? 我知道我们只能告诉它仅针对一个浏览器进行编译,但是我们需要进行多浏览器测试,因此这并不实际。 此时欢迎所有建议。
201 java  performance  gwt 

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.