int num = 10; String str = "hello";
num = 20;
str = "java";
//第一個例子:基本類型 void foo(int value) { value = 100; } foo(num); // num 沒有被改變 //第二個例子:沒有提供改變自身方法的引用類型 void foo(String text) { text = "windows"; } foo(str); // str 也沒有被改變 //第三個例子:提供了改變自身方法的引用類型 StringBuilder sb = new StringBuilder("iphone"); void foo(StringBuilder builder) { builder.append("4"); } foo(sb); // sb 被改變了,變成了"iphone4"。 //第四個例子:提供了改變自身方法的引用類型,可是不使用,而是使用賦值運算符。 StringBuilder sb = new StringBuilder("iphone"); void foo(StringBuilder builder) { builder = new StringBuilder("ipad"); } foo(sb); // sb 沒有被改變,仍是 "iphone"。