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
'👨🏫Study > JAVA' 카테고리의 다른 글
[JAVA] 03 연산자 (0) | 2021.08.03 |
---|---|
[JAVA] 02-4 변수와 시스템 입출력 (0) | 2021.08.02 |
[JAVA] 02-2 데이터 타입 (0) | 2021.08.02 |
[JAVA] 02-1 변수 (0) | 2021.08.02 |
[JAVA] 01-1 프로그래밍 언어와 자바, 01-2 이클립스 개발 환경 구축, 01-3 자바 프로그램 개발 과정 (0) | 2021.08.01 |
댓글