Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Java] 값의 허용범위와 캐스팅(Casting) 본문
자동 타입 변환
- char타입이 int타입에 대입될 때, 유니코드값(정수)이 대입된다.
- byte타입(음수포함)은 char타입(음수x)으로 자동 타입 변환 될 수 없다.
강제 타입 변환(Casting)
캐스팅 연산자 ()를 쓰고, 이를 '캐스팅'이라 한다.
만일, 4byte 크기의 int타입을 1byte 크기의 byte타입으로 캐스팅하면
앞의 3byte는 삭제된다.
즉, 작은 허용범위 타입이 저장할 수 있는 값을 '캐스팅' 해야한다.
앞의 3byte는 삭제된다.
즉, 작은 허용범위 타입이 저장할 수 있는 값을 '캐스팅' 해야한다.
❗ 타입 변환은 크기 비교**가 가능해야 한다. (그래서, boolean은 캐스팅이 안된다.)
❗ 자바에서 객체는 크기가 없다 => 캐스팅이 안된다.
(단, 상속관계에 있을 때는 타입 변환할 수 있다.)
❗ 자바에서 객체는 크기가 없다 => 캐스팅이 안된다.
(단, 상속관계에 있을 때는 타입 변환할 수 있다.)
피연산자 중 값의 허용범위가 큰 타입으로 자동 형변환 된다.
단, byte/ short타입의 변수가 피연산자로 사용되면 int 타입으로 타입 변환된다
byte a = 10;
byte b = 20;
byte sum = a + b; (x)
int sum = a + b; (0) //30
단, 피연산자 중 하나가 문자열이면 문자열로 자동 타입 변환된다
String str = "3";
int c = 7;
int sum = str + c; (x)
String str = str + c (0) //37
'Backend > 자바' 카테고리의 다른 글
[Java] 운영체제 위에서 돌아가는 프로그램과 운영체제에 독립적인 자바 (0) | 2023.03.08 |
---|---|
[Java] int 타입과 double 타입 예외처리와 NaN, Infinity (0) | 2023.03.06 |
[Java] 이스케이프 문자와 텍스트 블록 문법(Java13) (0) | 2023.02.27 |
[Java] 메모리번지와 변수 (0) | 2023.02.20 |
[Java] 프로젝트 생성과 JavaSE, JRE / 패키지와 src 디렉터리, bin 디렉터리 / 클래스와 main 메서드 (0) | 2023.02.18 |