본문 바로가기
👨‍🏫Study/JAVA

[JAVA] 02-3 타입 변환

by 코푸는 개발자 2021. 8. 2.
728x90
자동 타입 변환

큰 허용 범위 타입 = 작은 허용 범위 타입

위와 같은 변환이 자동으로 이루어지는 것을 의미합니다.

 

허용 범위 크기 순

byte < short < int < long < float < double

ex)

int = byte

 

주의사항

char(양수) = byte(음수도 가능) -> 컴파일 에러 발생

 

//자동 타입 변환
byte byteValue = 10;
int intValue = byteValue;
System.out.println("intValue: " + intValue);
		
char charValue = '가';
intValue = charValue;
System.out.println("가의 유니코드: " + intValue);

intValue = 50;
long longValue = intValue;
System.out.println("longValue: " + longValue);

longValue = 100;
float floatValue = longValue;
System.out.println("floatValue: " + floatValue);

floatValue = 100.5F;
double doubleValue = floatValue;
System.out.println("doubleValue: " + doubleValue);

실행결과)

intValue: 10
가의 유니코드: 44032
longValue: 50
floatValue: 100.0
doubleValue: 100.5

 

강제 타입 변환

작은 허용 범위 타입 = (작은 허용 범위 타입) 큰 허용 범위 타입

ex)

int intValue = 10;
byte byteValue = (byte) intValue;//강제 타입 변환

 

정수 연산에서의 자동 타입 변환
byte x = 10;
byte y = 10;
byte a = 10+20; // byte크기로 저장됨
byte result = x+y; // 컴파일 에러, 연산은 자동으로 int로 변환
int result = x+y;

char c1 = 'A';
char c2 = 1;
char c3 = c1+c2; // 컴파일 에러 // char은 연산에서 int타입으로 바뀐다.
int c3 = c1+c2; 

System.out.println("유니코드=" + c3);
System.out.println("출력문자=" + (char)c3);

*byte = byte (연산자) byte 불가능

long, float타입 역시 존재

 

+ 연산에서의 문자열 자동 타입 변환

문자열 + 숫자 = 문자열 (서로 붙어서 문자열이 됨)

int value = 3 + 7; // 10
String str = "3" + 7; // "3"+"7" -> "37" 문자열 37이 들어감

String str = 1 + 2 + "3"; // 3 + "3" -> "33"
String str = 1 + "2" + 3; // "12" + 3 -> "123"
String str = "1" + 2 + 3; // "12" + 3 -> "123"

 

문자열을 기본 타입으로 강제 타입 변환
//String -> byte
String str = "10";
byte value = Byte.parseByte(str);

//String -> short
short value1 = Short.parseShort(str);

//String -> int
int value2 = Integer.parseInt(str);

//String -> long
long value3 = Long.parseLong(str);

//String -> float
float value4 = Float.parseFloat(str);

//String -> double
double value5 = Double.parseDouble(str);

//String -> boolean
boolean value6 = Boolean.parseBoolean(str);

 

위와 반대로 기본 타입을 문자열로 변경하는 경우
String str = String.valueOf(기본타입값);
String str = "" + 3 // 빈문자열 사용하여 문자열로 만들기도 가능


String str = String.valueOf(3);
728x90

댓글