一、关于 ” = “ 什么时候是赋值,什么时候是将引用地址复制?
① 赋值
public class MainActivity extends Activity {
int a;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test();
}
public void test() {
int b = a;
b = 3;
Log.i("msg", "" + a); // 也就是说a等于0.
}
}
② 将引用地址复制
public class MainActivity extends Activity {
ArrayList mList = new ArrayList();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
test();
}
public void test() {
ArrayList list = mList; // 也就是说list和mList在内存中占的地址是一样的
// 以上这句话等同于
// ArrayList list = new ArrayList();
// list = mList;
for (int i = 0; i < 3; i++) {
list.add(i); // 0,1,2
mList.add(i + 1); // 1,2
}
Log.i("msg", mList.toString()); // 0,1,1,2,2,3
}
}