学长今天又帮我讲了一遍关于java“只传值,不传引用”的说法,这样理解,主要是为了解释为什么swap作交换的时候没有效果。
1、弄清楚栈、堆、常量池 可参照http://blog.youkuaiyun.com/shimiso/article/details/8595564
2、弄清string的特殊存储方式 ----其中的问号:运行结果是 s1==s2 返回false http://www.importnew.com/15671.html
3、弄清数组的内存分配
List<Integer> l1 = new ArrayList<>();
List<Integer> l2 = new ArrayList<>();
l1.add(2);
l2.addAll(l1); //深拷贝
l1.clear();
System.out.println("p");
这里,l2不为空,l1为空。正是因为上述原因,数组是索引类型
4、final 修饰类 表示不能继承;修饰方法,表示不能重写(override),重写是父类跟子类的关系;修饰 变量,引用不能指向其他地方,但是本身的值是可以改变的