方法的參數傳遞通常分爲兩種:值傳遞和引用傳遞。
1.傳入的是基本類型
如果傳入的是基本類型會在棧中分配內存,當按基本類型傳遞時,實參會多複製一份,因此,在方法內修改參數值時不影響原實參。
示例:基本類型傳遞
public class Demo1{
static int x = 10;
public static void main(String[] args) {
Demo1 demo = new Demo1();
demo.getX(x);
System.out.println("x="+x); //x=10;
}
public void getX(int x){
x--;
}
}
當方法結束之後,穿入的x值會被垃圾回收,但是在方法內部確實是改變的。
2.引用類型傳遞
引用類型傳遞是在棧中聲明,在堆中分配內存,列如:
T t; //在棧中聲明
t = new T(); //在堆中分配內存
如果沒有給對象初始化,會報NullPointerException異常,也就是空指針異常,意思就是對象沒有初始化。
當通過“對象名.屬性名”實際上就是每一個對應的堆內存空間。