lhy880518
-20
2019-04-08 09:32:16
0
171

Wrapper Class인 Integer이거저거 만져보다가 질문드립니다.


먼저 제가 아는 byte의 범위는 -128~127로 알고 있습니다. 

그때문에 byte변수에는 해당범위의 데이터만이 들어가는걸로 알고 있습니다.

아래의 테스트를 진행하던중 의문점이 생겨서 질문 드립니다.

========================================

Integer obj = new Integer(255);
byte a = obj.byteValue();
System.out.println(a);

========================================

-1

========================================

어... 127넘었는데 왜 에러가 안나지?

Integer클래스를 보자

========================================

    /**
     * Returns the value of this {@code Integer} as a {@code byte}
     * after a narrowing primitive conversion.
     * @jls 5.1.3 Narrowing Primitive Conversions
     */
    public byte byteValue() {
        return (byte)value;
    }

========================================

확인 해 보니 형변환을 해주면 해결이 되는걸로 확인했습니다.

그러나 형변환을 했을때 어떤 방식으로 돌아가는지를 보고싶은데 어디서 봐야할지 감이 잡히질 않습니다.

혹 직접 해당 형변환이 이루어 질때 어떤방식으로 변환이 이루어지는지 직접 코드를 보려면 어디서 봐야하는지

알려주시면 감사하겠습니다.


0
0
  • 답변 0

  • 로그인을 하시면 답변을 등록할 수 있습니다.