[K-DigitalTraining] JAVA - 자료형
컴퓨터는 기본적으로 0과 1밖에 모르는 바보다. 반면 사람이 사용하는 언어는 무척이나 다양하다. 그렇다면 사람이 사용하는 언어와 컴퓨터가 사용하는 언어를 서로 맞춰주어야 하는데, 이것을 규칙으로 정리한 것이 자료형이다. 기본적으로 우리가 변수를 선언하면 컴퓨터는 메모리에 해당 변수의 크기만큼 메모리를 할당한다. 이 변수가 사용이 종료되기 전까지 변수는 메모리에 남아서 해당 변수의 데이터를 보관하고 있다. 그렇다면 컴퓨터는 어떻게 이 변수의 크기를 알고 메모리를 할당할까? 그것은 변수가 선언될 때 지정되는 자료형에 따라 메모리의 크기가 달라진다.
우리는 문자와 숫자를 혼용해서 사용하지만 컴퓨터는 오로지 숫자만을 사용한다. 그래서 우리는 변수에 문자를 입력하더라도 컴퓨터는 해당 문자에 대응하는 숫자를 저장하고, 다시 그 숫자에 대응하는 문자를 표현하는 방식으로 이루어진다.
또한 1 bit는 0과 1의 값을 가지며, 이것이 8개가 되면 1 byte가 된다. 따라서 타입을 지정한다는 것은 얼만큼의 메모리를 할당할 것인가를 선언하는 것과 같다. byte x는 8bit의 메모리 공간을 할당하며, int x는 32bit의 공간을 할당한다. 이것은 binary - decimal 변환을 통해 우리가 일상적으로 사용하는 10진수와 2진수간의 변환을 통해 숫자를 저장할 수 있는 것이다.
그래서 JAVA에서 데이터를 저장하는 자료형의 종류는 다음과 같다.
String은 조금 다르니까 다음 기회에.
ByteExam이라는 java 파일을 보자. main 메서드 내에 4개의 바이트 변수가 선언되어 있다. 그런데 var4라는 변수는 아래 빨간줄로 오류가 표시된다. 자료형 byte는 -128~127까지의 숫자만 저장할 수 있기 때문에 127보다 큰 128이라는 숫자는 byte 자료형에 저장이 되지 않는다는 것을 eclipse가 알려주는 것이다. 실제로 127에서 +1을 할 경우 var4의 데이터는 128이 아닌 -128이 저장된다.(overflow - 다음 기회에 설명...)
따라서 우리는 저장할 자료에 맞는 적절한 자료형을 통해 변수를 선언해 주어야 한다.