变量的值传递
基本类型、字符串String——传递的是实参的值
在初始化定义变量m时,在内存中分配存储空间。
m作为传入调用的方法中的形参n时,在被调用的方法中形参n会再分配独立于m的存储空间,所以在方法中n改变了值,但当方法调用结束之后,变量m的值仍为原先值。
集合、数组、对象——传递的是集合的引用。即方法中的集合和传递的集合是一样的,指向同一个集合。所以,如果改变方法中的集合,方法外的集合也会同步改变
初始化定义变量时,该变量存储的是指向值的引用。
如:List list = new ArryList();
变量list存储的是指向集合的引用地址,而非实际的集合。
所以当传入调用方法时,若在方法中改变传入的值,则方法调用结束之后,变量的值也同步改变
集合、数组、对象存储在堆中,堆用于动态内存分配,在堆中的内存块可以按随意的顺序分配和释放。指向的变量存储在栈中