JAVA

java 데이터 타입 변환

초코파이쩡 2023. 2. 10. 14:40
반응형

변수 선언하고 데이터타입에 따라 데이터값을 지정하고 그다음 연산자를 이용해서

데이터를 사용하는데 사용하면서 뭐가 필요하냐면 데이터타입 변환이 필요하다 

 

이 데이터타입을 우리가 int에서 double로 바꾼다던가 했을때 이런걸 데이터타입 이라고 이야기하고

또는 type casting이라고 이야기 한다  

데이터 타입 변경 또는 type casting (원래 지정했던 타입에서 다른 타입으로 변경)

1)자동 타입 변경

자신보다 큰 타입의 변수에 저장하는 경우 자동으로 변환된다

byte a = 23; // a라는 변수가 byte이다 1바이트 
int b = a; // a변수를 어디에 저장해라? int에 저장해라 작은데이터(a) 를 큰쪽(int b)에 저장하고있다
// 이건 별도로 데이터타입 지정안해도 자동으로 변경이 된다

 

연산 시 가장 큰 타입으로 변경

byte a =23; // c는 byte타입
short d = 47; // d는 short 타입
int e = 65; // e는 int타입
int f = c + d + e; // c + d + e라고  byte,short,int 3개의 데이터 타입이 연산이 되고 있다
// 그러면 java는 연산을 할때 데이터 타입이 다 다르다 그러면 자동으로 가장 큰 type 연산에 참여한
// 변수중에서 가장 큰타입으로 자동으로 바뀐다

 


2)직접 타입 변경

작은타입에서 큰타입으로 신경을 안쓰고 자동으로 알아서 바뀌는데

반대로 큰타입에서 작은타입으로 바꿀때는 신경을 써야 한다

 

- 자신의 크기보다 작은 타입으로 변경하는 경우

- 데이터 타입 변경 문법

(데이터 타입) 변수 또는 값;  // 바꿔주고 싶은 타입 앞에다가 ()괄호 하고 괄호 안에다가 타입을 주면 된다
// byte h = (byte)g; 예를 들어서 나는 g를 byte로 바꿀꺼야 라고 하면 ()괄호 하고 바꿔주고 싶은타입
// g타입을 뭘로 바꿔주라? byte타입 으로 바꿔줘라, 이게 강제로 타입을 변경하는 방ㅂ

 

예제

int g = 23; // g안에 int타입 23이 들어가 있다.
byte h = (byte)g; // int g이거를 byte h로 저장을 하고싶다 그러면
// int는 4byte인데, byte는 1byte이다 그런데 작은타입에서 큰타입으로 바꿔주는건 상관없지만
// 큰타입 에서 작은타입 으로 바꿔주겟다? 그러면 1byte 밖에 저장이 안되는데 
// 그럼 나머지3byte는 어떻게할거냐? 이거는 개발자가 책임지겟다 내가 이 3byte 손실이 되는거는
// 책임질게 무조건 강제로 바꿔줘 라고 타입을 바꿔줄 수 있는데 
// 그때쓰는 문법이  (데이터타입) 변수 또는 값;

 

반응형

'JAVA' 카테고리의 다른 글

eclipse egovframework 설치 4.0  (0) 2023.03.07
클래스 객체  (0) 2023.02.10
java 데이터 연산  (0) 2023.02.10
java 데이터 종류 Data type  (0) 2023.02.09
변수 기본 (variable)  (0) 2023.02.09