一,動態綁定與靜態綁定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]); } }
能夠看到編譯器將可變參數處理成了數組。編譯