728x90
반응형
#형변환(Casting)
프로그래머가 그 순간의 자료형을 다른 타입으로 변환하는 것을 의미한다.
1. 형변환 규칙
- 기본형과 참조형 사이에는 형변환을 할 수 없다. 기본형은 기본형으로만 참조형은 참조형으로만 형변환이 가능하다.
- 기본형을 Object 클래스나 wrapper 클래스 같은 참조형으로 변환할 수 있다.
- 범위가 큰 자료형에서 작은 자료형으로 형변환시 값 손실이 발생할 수 있다.
- 범위가 작은형에서 큰 자료형으로 변환시 손실이 없으므로 Casting 연산자를 사용 하지 않아도 된다.
2. 형변환 방법
- (타입) 피연산자
3. 자바 컴파일러가 자동으로 수행하는 타입 변환은 언제나 데이터의 손실이 최소화되는 방향으로 이루어집니다.
따라서 자바에서는 타입의 표현 범위에 따라 다음과 같은 방향으로 자동 타입 변환이 이루어집니다.
* byte형 → short형 → int형 → long형 → float형 → double형
char형 ↗
● 자동 형변환 : 작은 범위에서 큰 범위로 이동할 때는 자동으로 형변환된다.
byte var1 = 10; // 1byte 범위 : -128 ~ 127
int var2 = var1;
System.out.println(var2);
● 범위가 큰 곳에서 작은 곳으로 바뀔 때, 가능한 범위더라도 () 가로안에 타입을 지정해주면 강제로 형변환이 일어난다.
int var3 = 127;
byte var4 = (byte)var3;
System.out.println(var4);
● 강제 형변환 결과적으로 데이터가 변질된다.
int var5 = 128;
byte var6 = (byte)var5;
System.out.println(var6);
● char는 2byte int는 4byte 이므로 자동 형변환
char var7 = 'A';
int var8 = var7;
System.out.println(var8);
● 정수 / 소수 -> 소수 and 정수 / 정수 -> 정수
int var9 = 10;
double var10 = 3;
int var11 = 3;
System.out.println(var9 / var10);
System.out.println(var9 / var11);
728x90
반응형
'🎨 Programming > JAVA' 카테고리의 다른 글
[JAVA] 6. 조건문( if문 / switch문) (0) | 2020.06.13 |
---|---|
[JAVA] 5. Scanner (0) | 2020.06.12 |
[JAVA] 3. 연산자 및 연산자 우선순위 (0) | 2020.06.12 |
[JAVA] 2. 변수 (Feat . IntelliJ) (0) | 2020.06.12 |
[JAVA] 1. 기초 개념 및 출력 (Feat . IntelliJ) (0) | 2020.06.11 |