这篇文章给大家介绍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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。