[Java] 변수와 자료형(data type)

isohyeon·2022년 10월 29일
0
post-custom-banner

변수는 데이터를 저장할 수 있는 메모리 공간을 의미한다. Java의 변수는 자료형(data type)에 따라 저장할 수 있는 데이터의 종류와 특징이 다르다.

자료형은 크게 다음과 같이 구분한다.

  1. 기본형 (primitive type)
  2. 참조형 (reference type)

자료형을 구분하는 이유는 기본형과 참조형이 메모리에서의 값 저장 방식이 다르기 때문이다. 기본형 변수는 실제 값을 저장하는 반면, 참조형 변수는 실제 값이 저장되어 있는 주소를 값으로 갖는다.

기본 자료형은 8가지가 있으며, 이외의 모든 자료형은 참조 자료형이다.

기본 자료형

8가지 기본 자료형이 차지하는 메모리의 크기와 저장할 수 있는 값의 범위는 아래의 표와 같다.
이때, 자료형의 종류와 크기 그리고 정수 자료형이 저장할 수 있는 값의 범위 정도는 기억해두면 좋다.

정수 자료형

  • 1byte = 8bit
  • nn 개의 비트로 표현할 수 있는 정수는 2n2^n 개다.
  • nn 개의 비트로 표현된 정수가 가질 수 있는 값의 범위는 2n1-2^{n-1} ~ 2n112^{n-1}-1 이다.

정수 자료형의 최솟값과 최댓값을 구하는 코드를 작성해보자.

public class Main {

    public static void main(String[] args) {
        System.out.println(Byte.MAX_VALUE); // 127
        System.out.println(Byte.MIN_VALUE); // -128
        
        System.out.println(Short.MAX_VALUE); // 32767
        System.out.println(Short.MIN_VALUE); // -32767
        
        System.out.println(Long.MAX_VALUE); // 9223372036854775807
        System.out.println(Long.MIN_VALUE); // -9223372036854775808
        
        System.out.println(Integer.MAX_VALUE); // 2147483647
        System.out.println(Integer.MIN_VALUE); // -2147483648
        
        System.out.println((int)Character.MAX_VALUE); // 65535
        System.out.println((int)Character.MIN_VALUE); // 0
    }
}

문자 자료형

기본 자료형은 메모리에 실제 값을 저장한다고 했다. 따라서 char a = 'A' 라는 코드는 메모리에 변수 a의 공간이 만들어지고, 그 안에 A 문자가 들어가야 할 것이다. 하지만 메모리는 1과0만 저장할 수 있기 때문에 문자를 기록할 수 없다.

그렇다면 Java의 char 타입은 문자를 어떻게 저장하는 것일까?
자바는 유니코드 표에 맞게 모든 문자를 정숫값으로 바꿔 저장하고, 출력할 때는 메모리에 저장된 정수에 해당하는 문자를 출력한다.

문자 'A'의 유니코드 값은 65이다.

char 자료형을 이용해서 정수를 문자로, 문자를 정수로 표현하는 코드를 작성해보자. 그리고 알파벳 A부터 Z까지 출력하는 코드를 작성해보자.

public class Main {

    public static void main(String[] args) {
        char ch = 'A';
        System.out.println(ch); // A, println 이 ch의 타입 확인 -> 문자 타입 확인 후 '숫자를 아스키문자로' 출력
        System.out.println((int)ch); // 65, 현재 코드에서는 ch를 int타입으로 봐! (강제 형 변환, type casting)
        System.out.println((char)65); // A
        System.out.println("----------------------");

        // A~Z 출력
        char ch2 = 'A';
        for (int i = 0; i < 26; i++) {
            System.out.println((char)(ch2 + i));
        }
    }
}

핵심 정리

  • Java의 자료형은 기본 자료형과 참조 자료형이 있다.
  • 기본 자료형은 8가지이다. (boolean, byte, short, int, long, float, double, char)
  • nn 개의 비트로 표현할 수 있는 정수는 2n2^n 개다.
  • nn 개의 비트로 표현된 정수가 가질 수 있는 값의 범위는 2n1-2^{n-1} ~ 2n112^{n-1}-1 이다.
  • 문자 'A'의 유니코드 값은 65이다.

Reference

profile
junior developer (●'◡'●)
post-custom-banner

0개의 댓글