Interger不可变原理
生活随笔
收集整理的這篇文章主要介紹了
Interger不可变原理
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.先看代碼:
package main.java.db.mq;
public class TestSwap {
public static void main(String[] args) {
Integer a=1;
Integer b=2;
System.out.println("a:"+a+",b:"+b);
Swap(a,b);
System.out.println("a:"+a+",b:"+b);
}
public static void Swap(Integer a,Integer b){
a=3;
b=4;
}
}
輸出結果:
a:1,b:2
a:1,b:2
為什么不可變呢?按道理說對象傳值是傳的應用的拷貝,指向同一個內存地址,應該會改變才對!
原因是虛擬機做了手腳,看編譯后的class文件
查看源碼,Integer.valueOf()方法做了什么
很名顯返回了個新的對象!
還有與String類似,所有的包裝類都是final類,即不可變類,但是類似處理!
總結
以上是生活随笔為你收集整理的Interger不可变原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: spring 两次进入拦截器_过滤器和拦
- 下一篇: sudo修改文件夹名字_修改mac os