인프런 커뮤니티 질문&답변

오기훈님의 프로필 이미지
오기훈

작성한 질문수

자바 ORM 표준 JPA 프로그래밍 - 기본편

기본값 타입

값 타입 분류에서 래퍼 클래스 Integer 값 수정 질문

작성

·

565

2

안녕하세요 기본값 타입 설명을 듣던중 Integer 타입이 변경이 안된다고 설명해 주셨는데
 
        Integer a = new Integer(10);
        Integer b = a;
 
      //a.setValue(20); // 없는 기능이지만, a를 수정할 수 있었다면 있었을 것
 
a = 20; <<<< 이런식으로 할당하여도 b는 a를 참조할텐데
 
 
      System.out.println("a = " + a); //a = 20 //으로 나오고
      System.out.println("b = " + b); //b = 10 //으로 나오는데
 
a.setValue()와 a = 과 어떤 차이점이 있는지 궁금합니다.
 
 
 

답변 1

4

안녕하세요, 오기훈 님. 공식 서포터즈 codesweaver 입니다.
.
a = 20; 이 코드는 다음과 같습니다.

a = Integer.parseInt(20);

이 과정에서 새로운 Integer 객체가 생성되며 b와는 관계 없는 객체가 됩니다.

그래서 a의 값이 바뀌어도 b의 값은 그대로 10을 유지합니다.
.
감사합니다.

안녕하세요! 질문글을 읽다가 궁금한게 생겨 답글 달게되었습니다. 혹시 a = 20 과 a = Integer.parseInt(20) 가 같은 코드임을 확인할 수 있는 자바 소스코드나 구글링 검색키워드를 알려주실 수 있을까요?

오기훈님의 프로필 이미지
오기훈

작성한 질문수

질문하기