자바 의 값 전달,주소 전달,참조 전달
가치 전달 과 주소 전달 에 대해 잘 알 고 있다 고 생각 했 습 니 다.방금 개원 중국 에서 자바 의 가치 전달 과 주소 전달 을 소개 하 는 글 을 보고 깊 은 느낌 을 받 았 습 니 다.더 쉽게 이해 할 수 있 도록 정리 하 겠 습 니 다.
이전 이해 에 따 르 면 자바 의 기본 데이터 형식 은 값 전달 이 고 대상 은 주소(참조)전달 입 니 다.예 를 들 어 보 여 드 리 겠 습 니 다.
public class ObjectTrans {
public static void main(String[] args) {
String name = "123";
SChange(name);
System.out.println(name);
}
public static void SChange (String str) {
str = "234";
}
}
여러분,이 예 가 출력 한 결 과 는 123 일 까요,234 일 까요?결 과 는 123.why?한 마디 로 대상 도 값 전달 이 고 이 대상 의 인용 copy 를 한 부 만 인용 했다.사실 자바 는 원래 값 전달 이 고 c++와 같은 지침 전달 이 없 으 며 단계별 로 위의 코드 를 분석 합 니 다.
1、name = "123"
2.SChange 호출 str 와 name 은 공동으로"123"을 가리 키 고 있 습 니 다.
3.str 재 할당 및"234"지향
4.name 지향 이 변 하지 않 습 니까?아니면"123"입 니까?
아래 에서 다른 코드 를 보십시오.
public class ObjectTrans {
public static void main(String[] args) {
StringBuilder name = new StringBuilder("123");
SChange(name);
System.out.println(name);
}
public static void SChange (StringBuilder str) {
//str = "234";
str.append("234");
}
}
그렇다면 이 코드 출력의 결 과 는 무엇 일 까요?정 답 은 123234,why?같은 단계별 분석:1、name = "123"
2.SChange 호출 str 와 name 은 공동으로"123"을 가리 키 고 있 습 니 다.
3.가리 키 는 대상 의 값"123"+"234"변경
4.인용 은 변 하지 않 고 값 만 변 했 기 때문에 결 과 는 123234 이다.
모 르 시 면 메 시 지 를 남 겨 주세요.잘 분석 해 보 세 요...자바 는 값 만 전달 한 다 는 말 을 기억 하 세 요.
읽 어 주 셔 서 감사합니다. 여러분 에 게 도움 이 되 기 를 바 랍 니 다.본 사이트 에 대한 여러분 의 지지 에 감 사 드 립 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.