본문 바로가기
Java

4강 기본자료형

by 보라코끼리 2021. 7. 30.
728x90
  • [인프런]자바 프로그래밍 입문강좌 4강 기본자료형 정리입니다.
  • 데이터가 메모리에서 차지하는 크기에 대해서 학습합니다.

4.1 기본자료형과 객체자료형

  • 기본 자료형은 데이터가 변수에 직접 저장되고, 객체 자료형은 객체 메모리 주소가 변수에 저장된다.

  • 기본자료형
    • 메모리에 데이터가 직접 저장 
    • 정수, 실수, 문자, 문자열, boolean(true, false) 
    • 자료형의 종류에 따라 메모리의 크기가 달라진다.
    • int i = 10;
      • 메모리에 i라는 상자를 만들어두고 데이터 10을 담는다.
  • 객체 자료형
    • 객체를 담고 있는 메모리가 존재하고, 객체를 가리키는 다른 메모리의 공간(i)이 있다.
    • 다른 메모리의 공간에는 객체를 담고있는 메모리 공간의 주소값이 담겨있다.
    • 객체를 가리키고 있는 주소를 담고있는 변수
    • 객체 자료형의 변수는 항상 주소만 들어가기 때문에 4byte 크기로 고정되어있다.

 

4.2 Java 기본자료형

  • 저장할 수 있는 크기를 넘게되면 오버플로우가 발생된다.
  • char : 문자 한 개
    • 문자를 표현하는 char가 왜 정수형일까?
      • 문자 한 개를 표현하는 ASCII 코드라는 것이 있는데 이는 문자를 숫자로 표현한다.
      • 때문에 pc는 문자 한 개를 숫자로 인식한다.
  • 일반적으로 사용하는 숫자들은 int(32bit) 범위 안에서 해결할 수 있다. 
  • 논리형(참, 거짓)
    • String
      • 문자열을 다루는 자료형
      • String str = "ABCDEFG";
      • String은 기본자료형이 아닌 객체자료형이다.
    char c = 'a';
    System.out.println("c = " + c);

    int i = 10;
    System.out.println("i = " + i);

    double d = 10.258;
    System.out.println("d = " + d);

    boolean b = false;
    System.out.println("b = " + b);

    String s = "Hello Java World!";
    System.out.println("s = " + s);
    
    String str = new String("원래 사용법");
    System.out.println("str = " + str);
    
    // 결과
    //    c = a
    //    i = 10
    //    d = 10.258
    //    b = false
    //    s = Hello Java World!
    //    str = 원래 사용법
  • String의 경우 원래는 new String 을 사용해야하는데 많이 사용되기 때문에 기본형과 같이 사용되기도 한다.

4.3 형 변환

    // 자동(묵시적) 형 변환 : 
    // 작은 공간의 메모리에서 큰 공간의 메모리로 이동
    byte by = 10;
    int in = by;
    System.out.println("in = " + in);

    // 명시적 형 변환 : 
    // 큰 공간의 메모리에서 작은 공간의 메모리로 이동
    int ivar = 100;
    byte bvar = (byte)ivar;
    System.out.println("bvar = " + bvar);

    ivar = 123456;
    bvar = (byte)ivar;
    System.out.println("bvar = " + bvar);
    
    // 결과
    //    in = 10
    //    bvar = 100
    //    bvar = 64 => 데이터 누실
  • byte 크기를 각각의 크기에 비례하는 컵이고 데이터를 그 안에 담긴 물이라고 생각하면 이해하기 쉽다.
  • 명시적 형 변환은 데이터가 누실될 수 있다. => 보통 큰 자료형을 미리 사용한다.
728x90

'Java' 카테고리의 다른 글

6강 연산자  (0) 2021.07.31
5강 특수 문자와 서식 문자  (0) 2021.07.30
3강 변수  (0) 2021.07.30
2강 Java 프로그램의 실행 구조  (0) 2021.07.28
1강 Java 프로그래밍이란?  (0) 2021.07.28