Questions tagged «java»

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

13
C#vs Java枚举(适用于C#新手)
我已经用Java编程了一段时间,只是被扔到一个完全用C#编写的项目中。我试图加快C#的速度,并注意到在我的新项目中的多个地方都使用了枚举,但是乍一看,C#的枚举似乎比Java 1.5+实现更简单。谁能列举C#和Java枚举之间的差异,以及如何克服这些差异?(我不想发动语言大战,我只是想知道如何用Java来做C#中的某些事情)。例如,有人可以在Sun著名的Planet枚举示例中发布C#副本吗? public enum Planet { MERCURY (3.303e+23, 2.4397e6), VENUS (4.869e+24, 6.0518e6), EARTH (5.976e+24, 6.37814e6), MARS (6.421e+23, 3.3972e6), JUPITER (1.9e+27, 7.1492e7), SATURN (5.688e+26, 6.0268e7), URANUS (8.686e+25, 2.5559e7), NEPTUNE (1.024e+26, 2.4746e7), PLUTO (1.27e+22, 1.137e6); private final double mass; // in kilograms private final double radius; // in meters Planet(double mass, double …

9
为什么要显式抛出NullPointerException而不是让它自然发生?
阅读JDK源代码时,笔者通常会检查参数是否为null,然后手动抛出新的NullPointerException()。他们为什么这样做?我认为没有必要这样做,因为它在调用任何方法时都会抛出新的NullPointerException()。(例如,以下是HashMap的一些源代码:) public V computeIfPresent(K key, BiFunction<? super K, ? super V, ? extends V> remappingFunction) { if (remappingFunction == null) throw new NullPointerException(); Node<K,V> e; V oldValue; int hash = hash(key); if ((e = getNode(hash, key)) != null && (oldValue = e.value) != null) { V v = remappingFunction.apply(key, oldValue); …

5
为什么与Integer.valueOf(String)进行==比较会得出127和128的不同结果?
我不知道为什么这些代码行返回不同的值: System.out.println(Integer.valueOf("127")==Integer.valueOf("127")); System.out.println(Integer.valueOf("128")==Integer.valueOf("128")); System.out.println(Integer.parseInt("128")==Integer.valueOf("128")); 输出为: true false true 为什么第一个返回true,第二个返回false?有什么不同,我不知道之间127和128?(我当然知道127< 128。) 另外,为什么第三个返回true? 我已经阅读了这个问题的答案,但是我仍然没有知道它如何返回true,以及为什么第二行中的代码返回false。
182 java  integer  comparison 


4
使用HeapDumpOnOutOfMemoryError参数进行JBoss的堆转储
有人告诉我可以在-XX:+HeapDumpOnOutOfMemoryError我的JBoss启动脚本中将参数添加到JVM启动选项中,以在我们的应用程序出现内存不足错误时进行堆转储。我想知道这些数据在哪里转储?它只是到控制台还是一些日志文件?如果只是控制台,如果我没有通过控制台登录Unix服务器怎么办?
182 java  jboss  memory-leaks  heap 

10
同步与锁定
java.util.concurrentAPI提供了一个名为的类Lock,该类将基本上对控件进行序列化以访问关键资源。它给出了诸如park()和的方法unpark()。 如果我们可以使用synchronized关键字以及using wait()和notify() notifyAll()方法,我们可以做类似的事情。 我想知道其中哪一个在实践中更好,为什么?

11
现实世界中使用JMS /消息队列?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 改善这个问题 我只是对JMS和Apache ActiveMQ有所了解。并想知道这里的人们将JMS或类似的消息队列技术用于什么吗?
182 java  jms  message-queue 

13
在Android上将字符串转换为整数
如何将字符串转换为整数? 我有一个文本框,我让用户输入一个数字: EditText et = (EditText) findViewById(R.id.entry1); String hello = et.getText().toString(); 并将该值分配给字符串hello。 我想将其转换为整数,以便获得他们键入的数字;稍后将在代码中使用它。 有没有办法得到EditText一个整数?那会跳过中间人。如果不是,则将字符串转换为整数就可以了。

16
getResourceAsStream返回null
我正在从Java项目的已编译JAR中的包中加载文本文件。相关目录结构如下: /src/initialization/Lifepaths.txt 我的代码通过调用Class::getResourceAsStream返回来加载文件InputStream。 public class Lifepaths { public static void execute() { System.out.println(Lifepaths.class.getClass(). getResourceAsStream("/initialization/Lifepaths.txt")); } private Lifepaths() {} //This is temporary; will eventually be called from outside public static void main(String[] args) {execute();} } null无论我用什么,打印出来的东西都会一直打印。我不确定为什么上述方法行不通,所以我也尝试过: "/src/initialization/Lifepaths.txt" "initialization/Lifepaths.txt" "Lifepaths.txt" 这些都不起作用。我 读 了许多 问题至今的话题,但他们都不是有帮助的-通常情况下,他们只是说,使用根路径,这我已经在做负载文件。那,或者只是从当前目录加载文件(只是load filename),我也尝试过。该文件将使用适当的名称编译到JAR的适当位置。 我该如何解决?
182 java  file-io  resources 

3
每次执行时,lambda表达式都会在堆上创建一个对象吗?
当我使用Java 8的新语法糖遍历集合时,例如 myStream.forEach(item -> { // do something useful }); 这不等同于下面的“旧语法”代码段吗? myStream.forEach(new Consumer<Item>() { @Override public void accept(Item item) { // do something useful } }); 这是否意味着Consumer每次迭代集合时都会在堆上创建一个新的匿名对象?这需要多少堆空间?它对性能有什么影响?这是否意味着在遍历大型多级数据结构时,我宁愿将旧样式用于循环?
182 java  lambda  java-8 

15
H2内存数据库。找不到表格
我有一个带有URL的H2数据库"jdbc:h2:test"。我使用创建表格CREATE TABLE PERSON (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(64), LASTNAME VARCHAR(64));。然后,我使用来从此(空)表中选择所有内容SELECT * FROM PERSON。到目前为止,一切都很好。 但是,如果将URL更改为"jdbc:h2:mem:test",唯一的区别是数据库现在仅在内存中,这给了我一个提示org.h2.jdbc.JdbcSQLException: Table "PERSON" not found; SQL statement: SELECT * FROM PERSON [42102-154]。我可能在这里缺少一些简单的东西,但是任何帮助将不胜感激。
182 java  database  h2 

18
Intellij IDEA Java类无法在保存时自动编译
昨天我从Eclipse切换到IntelliJ IDEA。 我也将JRebel与WebSphere Server 7一起使用。 现在,一切似乎都可以正常工作,除了当我修改 Java文件并单击save时,IntelliJ 不会重新编译该文件,以便JRebel进行拾取。 Eclipse的“ 自动构建 ”功能解决了此问题。 在IntelliJ IDEA中,我必须点击CTRL+ SHIFT+ 9以重新编译相关的类,以供JRebel使用。如果对两个文件进行了更改,我有对每个并且由于IntelliJ使用了全部保存机制,因此很难知道要手动重新编译的内容,而我对这样做都不感兴趣。 难道没有办法让IntelliJ 独自做到这一点吗?


1
如何在Linux中为所有用户设置JAVA_HOME
我是Linux系统的新手,并且Java文件夹似乎太多了。 java -version给我: Java版本“ 1.7.0_55” OpenJDK运行时环境(rhel-2.4.7.1.el6_5-x86_64 u55-b13) OpenJDK 64位服务器VM(内部版本24.51-b03,混合模式) 当我尝试构建Maven项目时,出现错误: Error: JAVA_HOME is not defined correctly. We cannot execute /usr/java/jdk1.7.0_05/bin/java 您能告诉我我需要为root用户和非root用户修改哪些文件,并且java到底在哪里?

2
OpenJDK与Adoptium / AdoptOpenJDK之间的区别
由于最近的Oracle Java SE支持路线图政策更新(特别是2019年3月之后Oracle的$ free版本更新结束),我一直在寻找Oracle Java的替代产品。我发现OpenJDK是一种开源替代方案。而且我发现了AdoptOpenJDK(现在称为 Adoptium),它是一个预构建的二进制文件。令人困惑。 OpenJDK和Adoptium / AdoptOpenJDK有什么区别?
182 java  sdk 

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.