Questions tagged «java»

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

8
在JAVA中生成UUID字符串的有效方法(不带破折号的UUID.randomUUID()。toString())
我想要一个高效的实用程序来生成唯一的字节序列。UUID是一个很好的候选人,但会UUID.randomUUID().toString()生成类似的东西44e128a5-ac7a-4c9a-be4c-224b6bf81b20,但我更喜欢无破折号的字符串。 我正在寻找一种仅从字母数字字符(无破折号或任何其他特殊符号)生成随机字符串的有效方法。
154 java  random  uuid 


12
如何获取Java中的第一个非空值?
Java是否等效于SQL COALESCE函数?也就是说,有什么方法可以返回多个变量的第一个非空值? 例如 Double a = null; Double b = 4.4; Double c = null; 我想无论如何都将返回的第一个非NULL值的语句a,b以及c-在这种情况下,它会返回b,或4.4。(类似于sql方法-return COALESCE(a,b,c))。我知道我可以使用类似的方法来明确地做到这一点: return a != null ? a : (b != null ? b : c) 但是我想知道是否有内置的,可接受的功能来完成此任务。
153 java  coalesce 

15
在Java中使用不推荐使用的方法或类是错误的吗?
我正在使用eclipse开发Web应用程序。就在今天,我已经通过更改JAR文件更新了我的struts版本。我在某些地方收到不赞成使用方法的警告,但是代码可以正常工作。 我想知道一些事情 在Java中使用不推荐使用的方法或类是错误的吗? 如果我不更改任何方法并在有警告的情况下运行我的应用程序,将会造成性能问题。
153 java  methods  deprecated 

15
System.nanoTime()完全没用吗?
如博客文章《当心 Java中的System.nanoTime()》所述,在x86系统上,Java的System.nanoTime()使用CPU专用计数器返回时间值。现在考虑以下情况,我用它来衡量通话时间: long time1= System.nanoTime(); foo(); long time2 = System.nanoTime(); long timeSpent = time2-time1; 现在,在多核系统中,可能是在测量了time1之后,将该线程调度到了另一个计数器,该计数器的计数器小于以前的CPU的计数器。因此,我们可以在time2中获得一个小于 time1的值。因此,我们将在timeSpent中得到一个负值。 考虑到这种情况,是不是System.nanotime到目前为止几乎没有用? 我知道更改系统时间不会影响纳米时间。那不是我上面描述的问题。问题在于,每个CPU自打开以来都会保留一个不同的计数器。与第一个CPU相比,该计数器在第二个CPU上可以更低。由于操作系统可以在获取time1之后将线程调度到第二个CPU,因此timeSpent的值可能不正确,甚至为负数。
153 java  nanotime 

7
为什么我应该使用Hamcrest-Matcher和assertThat()而不是传统的assertXXX()-方法
当我查看Assert类JavaDoc中的示例时 assertThat("Help! Integers don't work", 0, is(1)); // fails: // failure message: // Help! Integers don't work // expected: is <1> // got value: <0> assertThat("Zero is one", 0, is(not(1))) // passes 可以说,我看不出有什么大的优势assertEquals( 0, 1 )。 如果结构变得更复杂,但是对于消息,这很好,但是您看到更多的优势了吗?可读性?
153 java  testing  junit  junit4  hamcrest 

11
在哪里可以找到Java JDK源代码?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow 的主题。 3年前关闭。 改善这个问题 我想看看Java API中的方法是做什么的。所以我想要JDK源代码。在重新安装Linux之前,我先安装了src.zip包含所有正式源代码的软件包。我只需要告诉Eclipse这个文件在哪里,就可以看到代码。但是现在我没有文件了... 所以问题是:在哪里可以找到它?
153 java 

10
HashSet与LinkedHashSet
它们之间有什么区别?我知道 LinkedHashSet是HashSet的有序版本,可在所有元素上维护双链列表。当您关心迭代顺序时,请使用此类而不是HashSet。当您遍历HashSet时,顺序是不可预测的,而LinkedHashSet可让您按插入元素的顺序来遍历元素。 但是在LinkedHashSet的源代码中,只有HashSet的调用构造函数。那么双向链接的列表和插入顺序在哪里?

7
在Android Studio中更改作者模板
我想更改在AndroidStudio中创建文件时出现的自动作者。 /** * Created by a556520 on 16/01/14. */ public class POI { 作者的名字是“ a556520”,但我希望显示我的名字,而不是雇员人数。那可能吗?我在设置中找不到。


13
如何从Java Servlet返回JSON对象
如何从Java servlet返回JSON对象。 以前,当使用servlet执行AJAX时,我返回了一个字符串。是否有需要使用的JSON对象类型,或者您只是返回了一个看起来像JSON对象的String,例如 String objectToReturn = "{ key1: 'value1', key2: 'value2' }";
153 java  json  servlets 

4
Java当前的计算机名和登录用户?
是否可以获取当前登录用户的名称(Windows / Unix)和计算机的主机名? 我认为这只是某些静态环境类的属性。 我已经找到该用户名了 com.sun.security.auth.module.NTSystem NTSystem = new com.sun.security.auth.module.NTSystem(); System.out.println(NTSystem.getName()); 这是机器名称: import java.net.InetAddress; ... String computerName; ... try { computerName = InetAddress.getLocalHost().getHostName(); } catch(Exception ex) { ... } 第一个仅用于Windows吗? 如果您没有设置主机名,第二个将做什么?
153 java  environment 

9
如何使用BigInteger?
我有这段代码,它不起作用: BigInteger sum = BigInteger.valueOf(0); for(int i = 2; i < 5000; i++) { if (isPrim(i)) { sum.add(BigInteger.valueOf(i)); } } sum变量始终为0。我在做什么错?
153 java  biginteger 

9
编译无法完成:程序类型已经存在:com.google.android.gms.internal.measurement.zzabn
编译项目时,出现以下错误消息: Program type already present: com.google.android.gms.internal.measurement.zzabn Message{kind=ERROR, text=Program type already present: com.google.android.gms.internal.measurement.zzabn, sources=[Unknown source file], tool name=Optional.of(D8)} 要么 D8: Program type already present: com.google.android.gms.internal.measurement.zzabo 在Gradle Log中使用以下stacktrace at com.android.builder.profile.Recorder$Block.handleException(Recorder.java:55) at com.android.builder.profile.ThreadRecorder.record(ThreadRecorder.java:104) at com.android.build.gradle.internal.pipeline.TransformTask.transform(TransformTask.java:212)\\nat sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:73) at org.gradle.api.internal.project.taskfactory.IncrementalTaskAction.doExecute(IncrementalTaskAction.java:46) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:39) at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:26) at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$1.run(ExecuteActionsTaskExecuter.java:121) …

8
是否有可能解决“为varargs参数创建T的通用数组”的编译器警告?
这是所讨论代码的简化版本,一个泛型类使用另一个具有泛型类型参数的类,并且需要将其中一个泛型类型传递给具有varargs参数的方法: class Assembler<X, Y> { void assemble(X container, Y... args) { ... } } class Component<T> { void useAssembler(T something) { Assembler<String, T> assembler = new Assembler<String, T>(); //generates warning: // Type safety : A generic array of T is // created for a varargs parameter assembler.assemble("hello", something); } } …
153 java  generics 

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.