变量的值传递

基本类型、字符串String——传递的是实参的值

初始化定义变量m时,在内存中分配存储空间

m作为传入调用的方法中形参n时,在被调用的方法形参n分配独立于m的存储空间,所以在方法中n改变了值,但当方法调用结束之后,变量m的值仍原先值

集合、数组、对象——传递是集合的引用方法中的集合和传递的集合是一样的指向同一个集合。所以如果改变方法中的集合,方法外的集合也会同步改变

初始化定义变量时,该变量存储的是指向值的引用。

List list = new ArryList()

变量list存储的指向集合的引用地址,而非实际的集合。

所以当传入调用方法时,若在方法中改变传入的值,则方法调用结束之后,变量的值也同步改变

集合、数组、对象存储在堆中,用于动态内存分配,在堆中的内存可以随意的顺序分配和释放。指向的变量存储在栈中

原文地址:https://www.cnblogs.com/gangzi2013/p/6489296.html