java的引用:用C++/C的引用和指针去理解
引用和C++的引用的概念基本一样,但是也有一些易错点:
static class ElementPara{
String name = new String();
String func = new String();
}
List<ElementPara> element_list = new ArrayList<>();
element_list.add(element_tmp);
element_tmp.name = new String(); // 会直接改变element_list里的值。
element_tmp = new ElementPara(); // 不会改改变element_list里的值。
从中,可以看出,如果用C++/C的引用和指针去理解,就完全没有问题了,一切都可以解决的清楚。
比如, String name 可以理解为定义了一个指针。
name = new String(), 可以理解为分配了内存(堆)给这个指针。