Java是一種面向對象的編程語言,也是應用最廣泛的編程語言之一。在Java中,有兩種傳參的方式:傳引用和傳值。
首先,我們來看一下傳值是什么。傳值是指將變量的值復制一份后傳入方法中。在方法內部,對這個值的改變不會影響到原來的變量。
public class PassByValueExample { public static void main(String[] args) { int a = 10; change(a); System.out.println(a); // 輸出結果是10 } public static void change(int b) { b = 20; } }
接下來,我們看一下傳引用是什么。傳引用是指將變量的地址引用作為參數傳入方法中。在方法內部,對這個引用所指向的對象的改變會影響到原來的變量。
public class PassByReferenceExample { public static void main(String[] args) { Person person = new Person(); person.name = "Tom"; change(person); System.out.println(person.name); // 輸出結果是Jerry } public static void change(Person p) { p.name = "Jerry"; } } class Person { String name; }
由此可見,傳值和傳引用的區別在于,傳值只是將變量的值傳入方法中,對變量的改變不會影響到原來的變量。而傳引用則是將變量的地址引用傳入方法中,對變量所指向的對象的改變會影響到原來的變量。