我有一个简单的问题。通常我会写这样的代码:
String myString = "hello";
for (int i=0, i<10; i++)
{
myString = "hello again";
}
因为我认为以下不会是好的样式,因为它会创建太多不必要的对象。
for (int i=0, i<10; i++)
{
String myString = "hello again";
}
这是否正确?或者这只是当我得到一个显式对象(例如我创建的类中的对象)时的情况?如果它是布尔值或整数怎么办?什么是更好的编码风格?在循环之前实例化一次并在循环中使用它还是每次在循环中都实例化它?为什么?因为程序速度更快或者使用的存储空间更少或者...?
有人告诉我,如果它是一个布尔值,我应该直接在循环中实例化它。他说这不会对堆产生影响,而且变量属于循环内部会更清楚。那么什么是正确的呢?
感谢您的答复! :-)
====
感谢您的所有回答!
结论:最好在尽可能小的范围内声明一个对象。即使在每次循环中重新实例化对象,在循环外部声明和实例化对象也不会提高性能。
不,后一个代码实际上无效。不过,它会带有大括号:
for (int i=0; i<10; i++)
{
String myString = "hello again";
}
(基本上你不能使用变量声明作为单语句体if
语句、循环等)
这毫无意义,但却有效——并且优选到第一个版本,IMO。它不需要更多的内存,但通常最好为局部变量提供尽可能窄的范围,尽可能晚地声明,最好在同一点初始化。它使每个变量可以在哪里使用变得更加清晰。
当然,如果您需要在循环外部(之前或之后)引用变量,那么您也需要在循环外部声明它。
你需要区分变量 and objects当你考虑效率时。上面的代码最多使用了oneobject - 文字“hello Again”引用的 String 对象。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)