public class PrimitiveTest {
public static void main(String[] args) {
/* byte a = 10; // byte를 넘어가면 거의 int로 인식한다.
short b = 20;
int c = 30;
long d = 40L;
// byte, short는 연산지 int형 데이터 타입으로 자동형변환 됩니다.
// 결과를 int 데이터형 타입으로 받아줘야 합니다.
int result = a+b;
System.out.println(a*b);
System.out.println(result);
System.out.println(c*10);
long re1 = d*10L; // int가 자동형변환에 의해서 Long 타입이 된 것이다. L을 붙여주지 않으면 자동 형변환 되지 않음.
System.out.println(re1);
int m = 123;
Integer y = 10;
int hhh = m*y; // 오토박싱, 오토언박싱 (stack 영역과 heap 영역 직접 연산) */
////////// 실수형 = 소수점을 포함하는 수
float a = 10.0f; // int 타입의 데이터형 타입이 자동으로 캐스팅 되어서 정수형 10을 넣으면 10.0f가 들어간다.
double b = 20.0;
double c = 20.0d; // double은 d를 붙이든 안붙이든 상관 없지만, float는 f를 반드시 붙여줘야 한다.
// double이 기본데이터형 타입
double m = a;
////////// char
char i = 'a'; // 공백이 들어가면 안됨
char j = 48; // 0, 대문자 A는 65, 소문자 a는 97
System.out.println(j); // 아무것도 안나옴
////////// bool
boolean k = true;
// 크기 비교
// byte -> short -> char -> int -> long -> float -> double
// 큰 데이터형 타입을 작은 데이터형 타입으로 변환하는 과정을 Casting 이라고 부른다.
int g = 20;
float result = a*g; // int형과 float형 중에 float형이 더 크므로 float로 받는다.
System.out.println((short)result); // 소수점을 없애기 위해서 형변환
int kk = 10;
Integer mm = kk; // 오토박싱
Integer gg = 30;
int nn = gg; // 오토언박싱
int resultmm = nn*mm; // int형으로 나옴
System.out.println(mm*nn); // int형으로 나옴
}
}