正文
String 不变性以及 Java 值传递和引用传递
小程序:扫一扫查出行
【扫一扫了解最新限行尾号】
复制小程序
【扫一扫了解最新限行尾号】
复制小程序
String 不变性以及 Java 值传递和引用传递
public class Example {
String str = new String("good");
char[] ch = { 'a', 'b', 'c' };
public static void main(String args[]) {
Example ex = new Example();
ex.change(ex.str, ex.ch);
System.out.print(ex.str + " and ");
System.out.print(ex.ch);
}
public void change(String str, char ch[]) {
str = "test ok";
ch[0] = 'g';
}
}
点击查看结果
```
good and gbc
```
good and gbc
```
public class TestStringFinal {
public static void main(String[] args) {
String a = "hello";
change(a);
System.out.println(a);
}
public static void change(String name) {
name = "world";
}
}
点击查看结果
```
hello
```
hello
```
public class Test {
public static void main(String[] args){
Test test = new Test();
int a = 1;
test.addInt(a);
System.out.println(a);
String str = "hello";
test.addString(str);
System.out.println(str);
StringBuilder sb = new StringBuilder("hello");
test.addBuilder(sb);
System.out.println(sb.toString());
Long m = 1L;
Long n = 1L;
System.out.println(m==n);
m = 200L;
n = 200L;
System.out.println(m==n);
String x = new String("hello");
String y = "hello";
System.out.println(x.equals(y));
System.out.println(x == y);
}
public void addInt(int a){
a = a + 1;
}
public void addString(String str){
str = str + "world";
}
public void addBuilder(StringBuilder sb){
sb.append("world");
}
}
点击查看结果
```
1
hello
helloworld
true
false
true
false
```
1
hello
helloworld
true
false
true
false
```
public class Test {
// swap() doesn't swap i and j
public static void swap(Integer i, Integer j) {
Integer temp = new Integer(i);
i = j;
j = temp;
}
public static void main(String[] args) {
Integer i = new Integer(10);
Integer j = new Integer(20);
swap(i, j);
System.out.println("i = " + i + ", j = " + j);
}
}
点击查看结果
```
i = 10, j = 20
```
i = 10, j = 20
```