2013년 6월 24일 월요일

(130624) 1일차 PrimitiveTest.java (데이터형 타입)

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형으로 나옴
 }
}