2013-03-05 2 views
0

Java로 데이터로 채워진 배열이 있습니다.Java 변경 포인터가 값을 변경합니까?

int[] array = new int[2]; 
array[0] = 0; 
array[1] = 1; 

//other statements... 

array[1] = array[0]; 

내가 다시 array[1]의 값을 변경하는 경우 것 array[0] 변화의 가치뿐만 아니라, : 나는 같은 것을 할 경우 내가 알고 싶은 것은 무엇입니까? 감사합니다.

+4

시도해 보셨습니까? –

+0

아니요, int는 객체에 대한 포인터가 아닌 기본 요소이므로 – Patashu

답변

3

그리고 array [1]의 값을 다시 변경하면 array [0]의 값도 변경됩니까?

호 본 문 : 첫 번째 요소로 두 번째 요소의

array[1] = array[0]; 

다만 복사 값. -하지만 더 미묘하게 - 당신이 참조의 배열이있는 경우, 예를 들어,

int x = 10; 
int y = x; 
// Further changes to x don't affect y 

같은도 사실이다 : 그것은 당신이 두 개의 변수를 가지고 것처럼입니다

StringBuilder[] builders = new StringBuilder[10]; 
builders[0] = new StringBuilder("Original"); 
builders[1] = builders[0]; 
builders[0] = new StringBuilder("Hello"); 
System.out.println(builders[1]); // Prints Original 

마지막 할당 문 하지 변화를 builders[1]의 가치를 않습니다 ... 대신 경우 우리가 작성했던 :

builders[0].append("Foo"); 
System.out.println(builders[1]); // Prints OriginalFoo 

다음 builders[0]builders[1]의 값이 변경되지 않은 - 그들은 여전히 ​​동일한 객체를 참조하지만, 객체이 변경된 의 내용이 변경되었으므로 최종 행의 출력이 변경되었습니다.

관련 문제