나는 뭔가를 시도하고 있었고이 흥미로운 시나리오를 발견했습니다. 이 두 단편의 주요 차이점을 이해하고 싶었습니다.Java의 참조 동작 이해
초기에는 두 세트를 초기화하고 하나를 초기화하고 other에 대한 참조를 할당했습니다. I가 설정 취소하면 내가 설정 B 크기가이의 출력이 같은 있었다뿐만 아니라
Set<String> A = new HashSet<String>();
A.add("hello");
A.add("HEY");
A.add("hey");
Set<String > B = A;
System.out.println("initial sizes :" + A.size() + " " + B.size());
A.clear();
System.out.println("final sizes :" + A.size() + " " + B.size());
0으로 변경 것으로 나타났습니다 : 이제
initial sizes :3 3
final sizes :0 0
, 나는에 대해 동일한 동작을 묘사하는 시도 객체를 다음과 같이
Object a1 = new Object();
Object b1 = a1;
System.out.println("initial sizes :" + b1.toString() + " " + a1.toString());
a1 = null;
System.out.println("initial sizes :" + b1.toString() + " " + a1);
이의 출력은 무언가 같은 :
initial sizes :[email protected] [email protected]
initial sizes :[email protected] null
여기에 정확한 차이가 무엇
, 나는 내가 여기 b1.toString()
@ ha9u63ar 자바에서 모든 것이 값으로 전달됩니다. 참조에 맞을 수도 있지만 객체에 대한 참조도 값으로 전달됩니다. – SomeJavaGuy
@KevinEsche 게시하기 전에 내 의견을 수정하고있었습니다. 사과. – ha9u63ar
코드 스 니펫에서'Object'를 사용하여 출력을 얻는 방법을 잘 모르겠습니다 - [this] (http://ideone.com/pZWzNl) – ha9u63ar