Это мой первый класс Hello.javaПочему это приложение Java напечатано «true»?
public class Hello {
String name = "";
}
Это мой второй класс Test1.java
public class Test1 {
public static void main(String[] args) {
Hello h = new Hello();
Test1 t = new Test1();
t.build(h);
System.out.println(h.name);
}
void build(Hello h){
h.name = "me";
}
}
Когда я бегу Test1.java, он печатает "меня". Я думаю, я понимаю, из-за «ссылки передачи».
Это мой третий класс Test2.java
public class Test2 {
public static void main(String[] args) {
Hello h = null;
Test2 t = new Test2();
t.build(h);
System.out.println(h == null);
}
void build(Hello h){
h = new Hello();
}
}
Когда я бегу Test2.java, он печатает "истина", то почему? Это «передача ссылок» больше не существует? Я запутался.
Возможный дубликат [Is Java pass by reference?] (Http://stackoverflow.com/questions/40480/is-java-pass-by-reference) – polygenelubricants
Java проходит по значению. Java передает ссылки по значению. – polygenelubricants
эти круглые скобки? программист? : -P –