찾다

 >  Q&A  >  본문

java - 도움말: 다음 코드를 자세히 분석해 보니 헷갈립니다.

공개반 T1 {

으아악

}
내 이해:
rename 메서드의 aa는 스택 메모리에 있고, 기본 메서드의 aa는 힙 메모리에 있습니다. rename 메서드를 실행하면 기본 메서드의 aa 값이 수정되지 않습니다. 맞습니까?

阿神阿神2750일 전714

모든 응답(3)나는 대답할 것이다

  • 迷茫

    迷茫2017-05-17 10:01:16

    값에 의한 호출은 가장 일반적으로 사용되는 평가 전략입니다. 함수의 형식 매개변수는 호출 시 전달된 실제 매개변수의 복사본입니다. 형식 매개변수의 값을 수정해도 실제 매개변수에는 영향을 주지 않습니다.

    참조로 호출되면 함수의 형식 매개변수는 복사본이 아닌 실제 매개변수에 대한 암시적 참조를 받습니다. 즉, 함수 매개변수의 값이 수정되면 실제 매개변수도 수정된다는 의미입니다. 동시에 둘 다 동일한 값을 가리킵니다.

    Java 핵심 기술(I)은 Java가 모두 값으로 전달된다고 언급했습니다. 우선 기본 유형의 경우 함수는 해당 값을 수정할 수 없으며 참조 유형의 경우 다른 객체를 가리키도록 수정할 수 없습니다. 그래서 그것은 모두 가치로 전달되었습니다.

    회신하다
    0
  • PHP中文网

    PHP中文网2017-05-17 10:01:16

    아니요, 함수 내부의 aa는 새 주소를 가리키고 외부 aa는 여전히 "BB" 주소를 가리키므로 결과는 BB입니다

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-05-17 10:01:16

    함수는 값을 전달할 때 MAIN 함수에 AA를 전달하지 않고 AA 값을 복사한 다음 전달합니다

    회신하다
    0
  • 취소회신하다