您好,登錄后才能下訂單哦!
這篇文章給大家介紹JAVA中怎么利用for循環重復調用list.size(),內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
代碼如下:
public class Test2 { public static void main(String[] args) { List list = new ArrayList<String>(); list.add("1"); list.add("2"); for (int i = 0; i < list.size(); i++) { System.out.println(i); } } }
這里將list.size()放在了for循環里,按朋友的說法,這里應該會調用多次。
接下來我查看了字節碼發現,這里確實會調用多次list.size()方法,字節碼如下:
具體字節碼指令解析可查看:http://www.blogjava.net/DLevin/archive/2011/09/13/358497.html
接著查看了ArrayList調用size()方法的源碼是直接返回一個int 型的 size變量的,而這個size變量是每次新增和刪除都會改變這個size的值
結論:經過網友們熱情的探討與更正,for循環里會多次調用list.size(),list.size()方法會直接返回一個聲明在類中的size全局變量,雖然這個size會直接保存在堆中,但每次發生函數調用確實會發生壓棧出棧的性能開銷。
關于JAVA中怎么利用for循環重復調用list.size()就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。