안녕하세요 .
국비 기록용으로 남길려고합니다
참고 하실때 도움되셨으면좋겠습니다 ..!(너무믿지 말아주세요 ...)
형변환
값의 기본자료형을 바꾸는것(int > long), 단 boolean(논리형) 은 형변환을 사용할수가 없다.
형변환은 자동형변환과 강제형변환 2종류가 있다 .
값의 범위
자동형변환
컴파일러가 자동으로 값의 범위가 작은 자료형을 큰자료형으로 변환 해주는것
위에 표처럼 작은타입에서 큰타입으로 변경할때는 자동형변환이 되어서 따로 형타입 작성안해도됩니다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
package com.test;
public class Test {
public static void main(String[] args) {
//자동 형변환
//작은 자료형의 타입을 큰 자료형타입으로 컴파일러가 자동적으로 변경해준다.
int iNum = 1;
double dNum = iNum;
//원래 형변환시 변수타입과 리터럴타입이 똑같아야 하는데, int가 double보다 공간이더 작기때문에 자동형변환이일어난다.
//원래는 아래와 같이 변환해야할 타입을 (타입) <<안에 표시해줘야한다 .
//자동형변환은 컴파일러가 대신 처리해준다.
double dNum2 = (double)iNum;
}
}
|
cs |
강제형변환
값의 범위가 큰자료형값은 작은자료형으로 변경하는것
이럴때는 항상 (자료형타입) 으로 표시를해주어야한다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
package com.test;
public class Test {
public static void main(String[] args) {
//강제 형변환
// 큰자료형 값을 작은자료형으로 대입을할때 (형변환자료형) 값; 이런식으로 표시를해주어야한다.
double dNum = 30.5;
// int iNum = dNum; //에러, 값보다 작은자료형이기 때문에 자동형변환불가 이럴경우 강제형변환해주어야함
int iNum = (int)dNum; //주의 : double형에서 int 형으로 변환할때는 int는 정수이기떄문에 double의 소수점 버려지게됨 30.5 > 30;
char ch = 'A';
int iNum2 = ch;
//char보다 int형의 자료형 범위가 더크기때문에 자동형변환 되지만 'A' 문자값은 숫자 65로변경된다.
//왜 65가 나오냐하면 유니코드 값 에 의해결정된다.
//아래에 유니코드 이미지 첨부참조
}
}
|
cs |
유니코드 표
'프로그래밍 > JAVA' 카테고리의 다른 글
JAVA - 연산자 (0) | 2021.05.12 |
---|---|
JAVA - 데이터 오버플로우 (0) | 2021.05.12 |
JAVA - 상수 (0) | 2021.05.12 |
JAVA - Scanner 클래스 (0) | 2021.05.11 |
JAVA - 변수 (0) | 2021.05.11 |