Java 是一種面向對象的編程語言,在編寫代碼時,我們需要對變量進行傳遞,在 Java 中有兩種傳遞方式:值傳遞和引用傳遞。
值傳遞是指將變量的值作為參數傳遞給方法,方法使用變量的副本,修改副本的值不會影響原始變量的值。
public class ValuePassingExample { public static void main(String[] args) { int value = 10; increaseValue(value); System.out.println(value); //output: 10 } public static void increaseValue(int x) { x++; } }
從上面的代碼例子中我們可以看到,即使我們在方法中修改了變量的值,但是輸出結果仍然是原始值 10。
引用傳遞是指將對象的引用作為參數傳遞給方法,方法使用對象的引用,通過引用訪問和修改對象的變量。
public class ReferencePassingExample { public static void main(String[] args) { Person person = new Person("Tom"); changeName(person); System.out.println(person.getName()); //output: John } public static void changeName(Person person) { person.setName("John"); } } class Person { private String name; public Person(String name) { this.name = name; } public void setName(String name) { this.name = name; } public String getName() { return this.name; } }
從上面的代碼例子中我們可以看到,即使在方法中修改了對象的變量的值,輸出結果也會是修改后的值。
在 Java 中,除了基本類型的變量是值傳遞外,所有的對象類型都是引用傳遞。對于值傳遞和引用傳遞,需要根據不同的需求進行選擇,在編寫代碼時務必謹慎選擇。