首頁 > Java > java教程 > 淺析java中Integer傳參方式的問題

淺析java中Integer傳參方式的問題

高洛峰
發布: 2017-01-16 16:12:54
原創
1642 人瀏覽過

Java本身都是值傳遞式的調用,對於物件傳遞的是位址值。將位址值重新賦值等於重新指向,不會影響外層。
而且這裡Integer物件也有特殊性。其實實作上可能類似

class Integer{
final int value; //一旦赋值,就不能改变。
}
登入後複製

這就出現:呼叫時傳的位址值不能改變外層+物件本身又不能改變。導致這個值沒法改變


解很多
1、java風格就是,單一值用回傳值。 return i; 外面再i=foo();賦值;多個值用數組或物件。
2、傳遞自己的封裝類別。 class MutableInteger{ int value;}
3、傳遞專用AtomicInteger原子整數物件

    public static void main(String[] 参数) {     
  AtomicInteger i=new AtomicInteger(40);
  i.intValue();
  System.out.println(i);
 }
    public static void change(AtomicInteger i) {
     i.set(55);
}
登入後複製

也可以實現傳遞後改值,
推薦方案1,盡量避免

更多淺析javajava中Integer參照方式的問題相關文章請關注PHP中文網!

相關標籤:
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
最新問題
java可以做為web的後端嗎?
來自於 1970-01-01 08:00:00
0
0
0
安裝JAVA
來自於 1970-01-01 08:00:00
0
0
0
無法安裝java
來自於 1970-01-01 08:00:00
0
0
0
求救:JAVA加密的資料PHP解密
來自於 1970-01-01 08:00:00
0
0
0
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板