2024. 10. 11. 11:24ㆍjava
Type Casting(자료형 변환): 자료형을 바꾸는 개념
- = (대입 연산자)를 기준으로 왼쪽 오른쪽이 같은 자료형이어야 함
- 같은 자료형에 해당하는 리터럴값만 대입할 수 있음
- 자료형이 다를 경우 ? == 값을 바꿔서 대입해야 함 - 같은 자료형들끼리만 연산이 가능
- 자료형이 다른데 연산이 하고싶을 경우 둘 중에 하나를 "형변환"해서 나머지 하나와 동일하게 맞춰야 함 - 연산의 결과물도 동일한 자료형이어야 함
- 1 + 1 = 2 (정수), 1.1 + 1.1 = 2.2 (실수)
형변환의 종류
1. 자동형변환(Promotion):
- 자동으로 형변환이 진행됨
- 작은 크기의 자료형 -> 큰 크기의 자료형
2. 강제형변환(Type Casting):
- 자동형변환이 이루어지지 않은 경우에 진행
- ()을 통해서 진행
[ 표현법 ] (바꿀자료형)값
(int)data
문자형 → 정수형 - → 실수형 순서대로 데이터 타입이 큼
boolean : 1Byte
char : 2Byte
byte : 1Byte
short : 1Byte
int : 4Byte
long : 8Byte
float : 4Byte
double : 8Byte
자동형변환: 작은자료형 → 큰 자료형
1. int(4Byte, 정수) → double(8Byte, 실수)
int iNum = 10;
System.out.println(iNum);
double dNum = (double)iNum;
System.out.println(dNum);
System.out.println(iNum);
자동형변환
2.int(4Byte, 정수) -> long(8Byte, 정수)
int iNum2 = 120;
long lNum = /*(long)*/iNum2;
System.out.println(lNum);
3. long(8Byte, 정수) -> float(4Byte, 실수) 특이케이스
정수가 실수로 변환될 때 큰 사이즈의 정수타입이 작은 사이즈의 실수타입으로 변환할 수 있음
4Byte float형이 long형보다 표현할 수 있는 값의 범위가 더 크기 때문
long lNum2 = 1000L;
float fNum = lNum2;
System.out.println('a'); // a
System.out.println((int)'a'); // 97
System.out.println('a' + 3 ); // 100
System.out.println('a' + '3'); // 148
System.out.println((int)'3'); // 51
System.out.println('a' + "3"); // a3
System.out.println("비교연산자를 사용해보자~");
System.out.println(1 == 2); // false
System.out.println('a' == 'b'); // false
System.out.println(2 == (int)'2'); // false
System.out.println((int)'2');
System.out.println((char)2 == '2'); // false
System.out.println((int)'2' == '2');// true
}
'java' 카테고리의 다른 글
| 배열(array), 인덱스 (index) (3) | 2024.10.18 |
|---|---|
| 반복문_for문, while문, do-while문, break, continue (3) | 2024.10.18 |
| 조건문 _ if, if-else, switch, (1) | 2024.10.18 |
| 산술연산자, 증감연산자, 복합대입연산자, 비교연산자, 논리연산자, 삼항연산자 (1) | 2024.10.11 |
| 변수(variable)선언 & 초기화 & 명명규칙 & 변수의 자료 (2) | 2024.10.01 |