2017-03-28 2 views
-2

I I는 "단어"변수가 여전히 내가 reverseString 방법에 변경에도 불구하고 "최고"를 인쇄하는 인쇄있을 때 왜 이해가 안 다음 코드Java에서 참조로 전달. 나를 이해하는 데 도움이

public static void main(String[] args) { 

String word = "Super"; 

reverseString(word); 

System.out.println(word); 

} 

public static String reverseString(String word) { 

String helper = ""; 

int i = word.length() - 1; 

while (i >= 0) { 
    helper += word.charAt(i); 
    i--; 

} 

return helper; 

에게 있습니다. 나는 문자열이 참조에 의해 전달되고 원시 값과 같은 복사본이 아니라는 것을 이해합니다.

내가 word = reverseString(word)을 할 경우는 내가 "repuS"

감사

+1

문자열이 Java에서 변경 불가능 – Jens

+0

가능한 복제가 참조의 통과 논리에 도움이 될 수 있습니다. http://stackoverflow.com/questions/9404625/java-pass-by-reference – Arindam

답변

1

당신은, 당신은 새로운 하나를 생성하고 새로운 하나를 반환하고 reverseString 문자열을 변경하지 않는를 기대 역 인쇄 (당신은 helper이라고 불렀다).

Java에서 문자열에 대해주의해야 할 두 번째 사항은 변경 불가능하다는 것입니다. 모든 문자열 메서드는 메서드를 호출하는 문자열을 수정하는 대신 새 문자열을 반환합니다.

관련 문제