java4

 一,动态绑定与静态绑定java

动态绑定:动态绑定的缘由是重写,在编译期间不知道要调用哪一个类的方法,绑定被推迟到运行时。数组

静态绑定:static,final和private方法的绑定始终是静态绑定。code

二,可变参数索引

public class MyTest{

public static void main(String[] args) {
    int a = 100;
    varArgMethod(5, 7,8,9,10,a);
 }

public static void varArgMethod(int b,int... arr) {
    //索引遍历
    for(int i=0;i<arr.length;i++) {
        System.out.println(arr[i]);
    }
 }

}

反编译class文件:编译器

public class MyTest {

    public static void main(String args[]) {
        int a = 100;
        varArgMethod(5, new int[]{7, 8, 9, 10, a});//参数列表被编译器处理成了一个int[]数组
    }

    public static transient void varArgMethod(int b, int arr[]) { //形参被编译器处理成数组
        for (int i = 0; i < arr.length; i++)
            System.out.println(arr[i]);

    }
}

能够看到编译器将可变参数处理成了数组。编译

相关文章
相关标签/搜索