相关疑难解决方法(0)

我应该使用int还是Int32

在C#中,int并且Int32是同样的事情,但我读了许多那个时代int优于Int32没有给出理由.有原因,我应该关心吗?

c# variable-types

345
推荐指数
12
解决办法
18万
查看次数

Why do == comparisons with Integer.valueOf(String) give different results for 127 and 128?

I have no idea why these lines of code return different values:

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"));
Run Code Online (Sandbox Code Playgroud)

The output is:

true
false
true
Run Code Online (Sandbox Code Playgroud)

Why does the first one return true and the second one return false? Is there something different that I don't know between 127 and 128? (Of course I know that 127 < 128.)

Also, why does the third one return true?

I have read the answer of this question, but I still didn't get …

java comparison integer

179
推荐指数
5
解决办法
2万
查看次数

为什么int num = Integer.getInteger("123")抛出NullPointerException?

以下代码抛出NullPointerException:

int num = Integer.getInteger("123");
Run Code Online (Sandbox Code Playgroud)

我的编译器是否getInteger在null上调用,因为它是静态的?这没有任何意义!

发生了什么?

java autoboxing integer api-design nullpointerexception

100
推荐指数
3
解决办法
6万
查看次数

为什么将Integer与int进行比较可以在Java中抛出NullPointerException?

观察这种情况让我非常困惑:

Integer i = null;
String str = null;

if (i == null) {   //Nothing happens
   ...                  
}
if (str == null) { //Nothing happens

}

if (i == 0) {  //NullPointerException
   ...
}
if (str == "0") { //Nothing happens
   ...
}
Run Code Online (Sandbox Code Playgroud)

因此,我认为首先执行装箱操作(即java尝试从中提取int值null),并且比较操作具有较低的优先级,这就是抛出异常的原因.

问题是:为什么在Java中以这种方式实现它?为什么拳击优先于比较参考?或者为什么他们没有null在拳击前实施验证?

目前,当NullPointerException使用包装的基元抛出它时看起来不一致,并且不会抛出真正的对象类型.

java boxing nullpointerexception

77
推荐指数
2
解决办法
3万
查看次数

NullPointerException,在三元表达式中具有自动装箱功能

运行以下Java代码:

boolean b = false;
Double d1 = 0d;
Double d2 = null;
Double d = b ? d1.doubleValue() : d2;
Run Code Online (Sandbox Code Playgroud)

为什么会出现NullPointerException?

java autoboxing nullpointerexception

23
推荐指数
2
解决办法
6343
查看次数

比较Java中的数字

在Java中,所有数字类型都从java.lang.Number扩展.拥有如下方法是一个好主意:

public boolean areEqual(Number first, Number second) {
    if (first != null && second != null) {
        return first.equals(second);
    }
}
Run Code Online (Sandbox Code Playgroud)

我担心双重2.00000不等于int 2的情况.这些是由内置等于处理吗?如果没有,有没有办法在java中编写一个简单的数字比较函数?(apache commons等外部库都可以)

java comparison numbers

20
推荐指数
3
解决办法
7万
查看次数

我什么时候应该使用原语而不是包装对象?

实际上这里是一个类似的主题,没什么实际价值.据我所知,原语表现更好,应该在任何地方使用,除了需要与对象相关的功能(例如null检查)的情况.对?

java performance primitive object

15
推荐指数
3
解决办法
1万
查看次数

如果在Java中它是整数数组,如何检查null元素?

我是Java的新手,并且在整数数组中检查null元素时遇到问题.我正在使用Eclipse进行编辑,并且检查null元素的行显示错误:

抱怨的行:

if(a[i] != null) {
Run Code Online (Sandbox Code Playgroud)

来自Eclipse的错误信息:

The operator != is undefined for the argument type(s) int, null
Run Code Online (Sandbox Code Playgroud)

在PHP中,这没有任何问题,但在Java中,似乎我必须将数组类型从整数更改为Object以使该行不被抱怨(如下所示)

Object[] a = new Object[3];
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,如果我仍然想要声明为整数数组并且仍然想要检查null,它的语法是什么?

码:

public void test() {
        int[] a = new int[3];
        for(int i=0; i<a.length; i++) {
            if(a[i] != null) { //this line complains...
                System.out.println('null!');
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

java arrays int null

14
推荐指数
2
解决办法
4万
查看次数

int不会覆盖Java中的Integer

我在Java中有一个带方法签名的函数

public void myMethod (int someInt, String someString) 
Run Code Online (Sandbox Code Playgroud)

在我的抽象类中,我用方法覆盖了它

public void myMethod (Integer someInt, String someString)
Run Code Online (Sandbox Code Playgroud)

过度骑行不起作用.这是不一致吗?我认为自动装箱也适用于方法签名覆盖.

java

10
推荐指数
1
解决办法
5113
查看次数

int []和Integer []数组 - 有什么区别?

考虑以下基础知识:

  1. 任何Object生活只在堆上,
  2. 数组IS-A Object
  3. Integer IS-A Object

我发现自己很难回答这么简单的问题:JVM之间int[]Integer[] 内部有什么区别吗?或者仅在"编译时"才有意义?

java arrays int integer

9
推荐指数
2
解决办法
1万
查看次数