Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- 논리연산자
- 연산자
- CSS 박스모델 구성
- 실수 타입
- 논리부정
- 변수사용범위
- 새싹 출력
- CSS
- 부호/증감 연산자
- 위치속성
- 이클립스
- 박스 모델의 성격
- oracle
- 백준 문제풀기
- background-size 속성
- 콘솔로 변수값 출력
- HTML
- CSS 정리
- 삼항연산자
- ul 태그
- 대입연산자
- 자바
- 정수 연산
- background-repeat 속성
- 강아지 출력
- 연산의 방향
- 데이터베이스
- 키보드입력데이터
- java
- 고양이 출력
Archives
- Today
- Total
너와 나의 개발 고리
[JAVA] chap02 변수와 타입_강제 타입 변환 본문
강제 타입 변환은 큰 허용 범위 타입을 작용 허용 범위 타입으로 쪼개서 저장하는 것을 말하며 캐스팅 연산자로 괄호()를 사용한다.
강제 타입의 목적은 원래 값이 유지되면서 타입만 바꾸는 것으로 작은 허용 범위 타입에 저장될 수 있는 값을 가지고
강제 타입 변환을 해야한다.

int → byte
int 타입은 byte 타입보다 더 큰 허용 범위를 가진다.
따라서 int 타입은 byte 타입으로 자동 변환되지 않고,
(byte) 캐스팅을 해서 byte 타입으로 강제 변환시켜야 한다.
int intValue = 10;
byte byteValue = (byte) intValue; // 강제 타입 변환
long → int
long 타입은 int 타입보다 큰 허용 범위를 가진다.
따라서 long 타입은 int 타입으로 자동변환되지 않고, (int)캐스팅을 해서 강제 변환시켜야 한다.
int 타입으로 강제 변환하면 앞 4byte는 버려지고 끝4byte만 int 타입 변수에 저장된다.
long longValue = 300;
int intValue = (int) longValue; // 강제 타입 변환 후에 300이 그대로 유지
int → char
int 타입은 char 타입보다 큰 허용 범위를 가진다.
따라서 int 타입은 char 타입으로 자동 변환되지 않고, (char) 캐스팅을 해서 강제 변환시켜야 한다.
주의할 점은 char 타입의 허용 범위인 0 ~ 65535 사이의 값만 원래의 값을 유지한다.
int intValue = 65;
char charValue = (char) intValue;
System.out.println(charValue); //'A'가 출력
실수 → 정수
실수 타입(float, double)은 정수 타입(byte, short, int, long)보다 항상 큰 허용 범위를 가진다.
따라서 대상 정수 타입으로 캐스팅해서 강제 변환시켜야 한다.
이 경우 소수점 이하 부분은 버려지고 정수 부분만 저장된다.
double doubleValue = 3.14;
int intValue = (int) doubleValue; // intValue는 정수 부분인 3만 저장
강제 타입 변환이 생기는 예제를 보면 이해하기 쉽다.

'JAVA > 이것이 자바다' 카테고리의 다른 글
| [JAVA] chap02 변수와 타입_문자열을 기본 타입으로 변환 (0) | 2023.08.07 |
|---|---|
| [JAVA] chap02 변수와 타입_연산식에서 자동 타입 변환 (0) | 2023.08.05 |
| [JAVA] chap02 변수와 타입_자동 타입 변환 (0) | 2023.08.03 |
| [JAVA] chap02 변수와 타입_문자열 타입 (1) | 2023.08.03 |
| [JAVA] chap02 변수와 타입_실수 타입 (0) | 2023.08.03 |