대상과 인용된 코드에 대한 실행 결과 분석
1722 단어 대상
클립보드로 복사
프린트
public class MyClass{
sf1.append(sf2);
}
StringBuffer sf1 = new StringBuffer("A");
aMethod(sf1,sf2);
}
public class MyClass{
static void aMethod(StringBuffer sf1,StringBuffer sf2{
sf1.append(sf2);
sf2 = sf1;
}
public static void main(String[] args){
StringBuffer sf1 = new StringBuffer("A");
StringBuffer sf2 = new StringBuffer("B");
aMethod(sf1,sf2);
System.out.println(sf1+":"+sf2);
}
}
이 결과가 왜 AB:B야?
분석:
1 기본 메서드는 2개의 객체StringBuffer를 참조로 전달합니다.
2방법에서도 2개의 인용이 매개 변수로 이 2개의 대상을 가리켰다. 그들은 sf1과 sf2이다. 이곳의 sf1과main방법의 sf1은 같은 것이 아니라 서로 다른 작용역을 가진다.
3 호출 방법, 대상의 내용을 수정했기 때문에 이때 sf1이 가리키는 대상의 내용은 AB이다
4 방법 중의 sf2를 sf1을 가리키는데 이 조작의 영향은 호출 방법의 인용에 영향을 주고main 방법의 인용에 영향을 주지 않는다
5 되돌아왔다.main 방법에서 sf1이 가리키는 대상은 이미 AB가 되었고, sf2가 가리키는 대상은 아무런 변화가 없다
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
List 컬렉션 객체에서 서로 다른 속성 크기로 정렬된 인스턴스인스턴스는 다음과 같습니다. 테스트: 출력 결과는 다음과 같습니다. 두 번째 방법은 컬렉션에 따라.sort 재부팅 방법(예: 마스터 클래스에서 이렇게 작성하면 됩니다. 출력 결과는 다음과 같습니다. 전자의 코드 구조...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.