cha*_*ger -2 java android garbage-collection memory-management
android和java中这两种代码形式有什么区别..
for(int i = 0; i < 10000; i++){
Student s = myMap.get(key);
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
和:
Student s;
for(int i = 0; i < 10000; i++){
s = myMap.get(key);
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
第一个创建10000个对象,等待垃圾收集器从内存中删除它们,而在第二个代码形式中,只创建了一个对象.我对吗?或者我弄错了?
如果这是真的,那么使用第二种形式的内存是否更好?
你错了,没有理由你应该使用第二种形式.
创建了0个对象,唯一的区别是变量的范围.对象已经创建,它们在地图中.您只是分配对现有对象的引用.
在可能的最小范围内声明变量是一个好习惯,所以如果你没有s在循环之外使用(这没有意义,除非你想要处理最后一个Student),在循环中声明它是有意义的.
| 归档时间: |
|
| 查看次数: |
114 次 |
| 最近记录: |