Does Java return by reference or by value

前端 未结 4 1637
旧时难觅i
旧时难觅i 2020-12-14 09:38

I have a HashMap:

private HashMap cardNumberAndCode_ = new HashMap();

And later I do this:

4条回答
  •  -上瘾入骨i
    2020-12-14 10:04

    The Integer variable contains a reference to an Object. The Integer object is immutable and you cannot change it. When you perform

    balance = 10; // replace the previous Integer reference with a different one.
    

    The normal way to do this is to use

    cardNumberBalance_.put(cardNumber, 10);
    

    An alternative which is not used so often is to use AtomicInteger or use your own MutableInteger

    private final Map cardNumberAndCode_ = new HashMap();
    
    AtomicInteger balance = cardNumberBalance_.get(cardNumber);
    balance.set(10);
    

提交回复
热议问题