Java的for迭代的實現原理

相信大家都使用過for去實現ArrayList的迭代。是很方便的一個功能,能夠這樣實現的原因是這些類都繼承terator接口。編譯期間編譯器將for的迭代轉化爲for循環的實現形式。具體我們下面看一下

 這是使用的代碼

public class Main5{
	public static void main(String ...arg) throws Exception{
		ArrayList<Integer> list = new ArrayList<Integer>();
		for(int i:list){
			System.out.println(i);
		}
	}
}

使用jad對上面代碼的class文件反編譯後結果如下

import java.util.Iterator;

public class Main5
{

    public Main5()
    {
    }

    public static transient void main(String arg[])
        throws Exception
    {
        ArrayList list = new ArrayList();
        int i;
        for(Iterator iterator = list.iterator(); iterator.hasNext(); System.out.println(i))
            i = ((Integer)iterator.next()).intValue();

    }
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章