본문 바로가기
Programing/JAVA (& 혼공자Java)

자바(Java) - 타입변환

by a.k.a DUKI 2020. 9. 5.
728x90
반응형

자바는 두 개의 변수가 서로 다른 타입이 되면 값이 저장될 수도 있고, 그렇지 않을 수도 있다.

결과는 10

이것을 타입 변환 이라고 한다.

 

자동 타입 변환, 값의 허용범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생

(말그래도 자동으로 타입 변환한다는 뜻)

만약, 값의 허용범위가 맞지 않다면, 컴파일 오류가 생긴다!

 

기본 타입 허용 범위 크기 순

byte < short < int < long < float < double

 

 

강제 타입 변환, 큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 나눠서 저장하는 것

강제 타입 변환은 () 를 사용하는데, 괄호 안에 들어가는 타입은 나누는 단위 이다.

 

또한, 실수 타입(float, double)은 정수 타입(byte, short, int, long)으로 자동 변환되지 않아 강제타입 변환을 해야한다.

이러한 경우는 소수점 이하 부분은 버려지고, 정수 부분만 저장

 

정수연산 자동 타입 변환

정수 타입 연산자가 결과를 받은 int 타입이라면, 연산이 되는 타입은 int타입보다 작은 byte, short 타입으로 자동 타입 변환되어 수행된다. 

(쓰면서도 어렵다.. 예제로 이해..)

byte는 int보다 작으니 자동으로 int로 변환되어 결과값이 나오는 것이다

모두 int로 변환되는 것은 아니다. 두 타입중 허용범위가 큰쪽 타입으로 적용되어 변환 된다!

만약, long이 있으면, int대신 long으로 변경된다.

 

 

실수 연산 자동 타입 변환

실수 타입 변수가 사용될 경우 두 피연산자가 같으면 같은 타입으로, 둘 중 하나가 double이면 double로 자동 타입이 변경되어 연산된다.

 

더보기

그럼 이건 무슨 값이 나올까?

0.5 ? 

 

 

결과는 0.0 이다

정답은 0.0

그 이유는 x,y 가 정수연산의 결과이기 때문에 값이 0.0 이 나온것이다.

0.5가 나오게 하려면 둘 중 하나 혹은 둘다 double로 타입 변환을 해야한다.

0.5값을 확인 할 수 있다.

 

문자열 기본 타입으로 강제 타입 변환

오늘 정리한 부분 중에서 아마 제일 중요할 듯 하다.

 

연습 예제를 하다보니 String -> int 변환이 가장 많았다. 실제로 많이 쓰는 것 같다.

아래 내용은 다 비슷하나, 약간 다른 부분이 있어 외우면 좋겠지만, 우선 int만 외우고 쓰면서 익히면 좋을 듯 하다.

 

double은 int에 비해 빈도수는 떨어지는데 float보다는 아무래도 값을 많이 저장하는 double을 쓰니, double로 익혀두는게 좋지 않을 까... 한다...

 

기본 타입 -> String으로 변환 하는 경우String.vlaueOf() 메소드를 이용하면된다.

string은 String.parseString()이런 모양이 아니므로 외워둬야겠다.

 

 

본 내용은 #혼자공부하는자바 책을 참고해 공부하려 작성했습니다.
728x90
반응형

댓글