java引用傳遞,值傳遞

2個interger的引用對象傳給一個swap方法在方法內部進行交換

1.1 java中方法參數傳值方式

java中方法傳參數都是值傳遞的,只不過根據參數的類型是引用類型仍是非引用類型java

引用類型傳遞的是該類型的地址
非引用類型傳遞的是該變量的副本緩存

1.2 Integer 源代碼存在 一個int value變量中

1.3 能夠經過反射變量來改private final 變量

package com.java.yj;

import java.lang.reflect.Field;

/**
 * Created by yejian on 2018/7/9.
 */
public class MethodVarialble {
    public static void main(String[] args) {
        Integer i1=10;
        Integer i2=20;
        swap(i1,i2);
        System.out.println("i1="+i1+" i2="+i2);
    }

    public static void swap(Integer i1, Integer i2)  {
        try {
            Field field = Integer.class.getDeclaredField("value");
            field.setAccessible(true);
            //int temp = i1.intvalue();  //指向同一分內存地址
            Integer temp = new Integer(i1.intValue());
            field.set(i1,i2.intValue());
            field.set(i2,temp);
        } catch (Exception e) {
            e.printStackTrace();
        }

    }

}

1.4 Integer -128到127之間的數會放入緩存,取這些數是從緩存取的

1.5 自動裝箱和拆箱

相關文章
相關標籤/搜索