相关疑难解决方法(0)

New Integer vs valueOf

我正在使用Sonar使我的代码更清洁,它指出我正在使用new Integer(1)而不是Integer.valueOf(1).因为它似乎valueOf没有实例化一个新对象所以更加内存友好.怎么valueOf不能实例化一个新对象?它是如何工作的?对所有整数都是如此吗?

java sonarqube

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

编译器为自动装箱生成了什么代码?

当Java编译器将一个原语自动装箱到包装器类时,它会在幕后生成什么代码?我想它叫:

  • 包装器上的valueOf()方法
  • 包装器的构造函数
  • 其他一些魔术?

java autoboxing

29
推荐指数
2
解决办法
3646
查看次数

在性能,隐式(自动)拆箱或显式拆箱方面哪个更好?

把它放在代码中 - 性能更好(如果有差异的话)?

鉴于这种:

public class Customer
{
    ....

    public Boolean isVIP(){...}
    ...
}
Run Code Online (Sandbox Code Playgroud)

哪个更快?

public void handleCustomer(Customer customer)
{
    if (customer.isVIP())  // Auto Unboxing
    {
        handleNow(customer);
    }
    else
    {  
        sayHandlingNowButQueueForTomorrow(customer);
    }
}
Run Code Online (Sandbox Code Playgroud)

或这个:

public void handleCustomer(Customer customer)
{
    if (customer.isVIP().booleanValue()) // Explicit unboxing
    {
        handleNow(customer);
    }
    else
    {  
        sayHandlingNowButQueueForTomorrow(customer);
    }
}
Run Code Online (Sandbox Code Playgroud)

java performance unboxing

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

标签 统计

java ×3

autoboxing ×1

performance ×1

sonarqube ×1

unboxing ×1