Tip
char =/= byte: char type은 음수가 없으므로 오류 발생
.MAX_VALUE 와 .MIN_VALUE: Math클래스 (java.lang.package에 포함)
double로 형 변환: 연산의 기본형은 int이기 떄문에, 정수와 정수끼리 연산 할 때 최소한 한 개를 실수로 바꿔야 한다!!
package ch03;
public class CastingExam {
public static void main(String[] args) {
//강제 타입 변환: 큰 타입 > 작은 타입, 작은타입 변수명 = (작은타입)변수명;
int intValue = 123456789;
byte byteValue = (byte)intValue;
System.out.println(intValue);
System.out.println(byteValue);
intValue = 44032; //정수형 값 삽입
char charValue = (char)intValue;
System.out.println(charValue);
double doubleValue = 3.14;
intValue = (int)doubleValue;
System.out.println(intValue);
}
}
package ch03;
public class CheckValueExam {
public static void main(String[] args) {
//java가 가지고 있는 타입의 최솟값, 최대값을 활용하여 변환되는 값을 체크
//byte의 범위
int i = 128; //int타입 i변수에 128값을 넣는다.
if((i >= Byte.MIN_VALUE) && (i <= Byte.MAX_VALUE)) {
byte byteValue = (byte)i; //int타입을 byte타입으로 강제 타입 변환
System.out.println(byteValue);
} else {
System.out.println("byte로 변환할 수 없는 값입니다.");
} //if문 종료
//int의 범위
long l = 1000000000; //int타입 i변수에 128값을 넣는다.
//byte의 범위
if((i >= Integer.MIN_VALUE) && (i <= Integer.MAX_VALUE)) {
int intValue = (int)l; //int타입을 byte타입으로 강제 타입 변환
System.out.println(intValue);
} else {
System.out.println("int로 변환할 수 없는 값입니다.");
} //if문 종료
}
}
package ch03;
//지원해주는 자동 타입 변환
public class PromotionExam {
public static void main(String[] args) {
byte byteValue = 10;
int intValue = byteValue;
System.out.println(intValue);
//큰 타입 > 작은 타입 '불가능'
//byte byteValue1 = intValue;
char charValue = '가'; // 0 ~ 65535 처리, 유니코드 매핑, 음수 X
intValue = charValue;
System.out.println("가의 유니코드 값은: " + intValue);
intValue = 500;
long longValue = intValue;
System.out.println("long으로 자동 타입 변환 값: " + longValue);
double doubleValue = intValue;
System.out.println("double으로 자동 타입 변환 값: " + doubleValue);
}
}
package ch03;
public class OperationExam {
public static void main(String[] args) {
//연산 실행 시 기본 타입 == int, double
byte byteValue1 = 10;
byte byteValue2 = 20;
int intValue1 = byteValue1 + byteValue2;
System.out.println(intValue1);
char charValue1 = 'A'; //65
char charValue2 = 1;
int intValue2 = charValue1 + charValue2;
System.out.println("유니코드 값: " + intValue2);
System.out.println("출력문자 값: " + (char)intValue2);
int intValue5 = 10;
int intValue6 = intValue5 / 4;
System.out.println(intValue6);
//double로 형 변환: 정수와 정수끼리 연산 할 때 최소한 한 개를 실수로 바꿔야 한다!!
double doubleValue = intValue5 / 4.0;
System.out.println(doubleValue);
}
}