JAVA

[JAVA와 친해지기] 자료형

다들 기억하시나요?? 지난 시간에 우리는 변수가 무엇인지 배웠습니다! 프로그래밍을 하면서 사용하는 변수는 그 변수에 해당하는 "자료형" 이 필요합니다. 자료형이 어떤 것인지 사전적 의미부터 확인하고 가겠습니다!

자료형(資料形) 또는 데이터 타입(영어: data type)은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류로서, 더 나아가 해당 자료형에 대한 가능한 값, 해당 자료형에서 수행을 마칠 수 있는 명령들, 데이터의 의미, 해당 자료형의 값을 저장하는 방식을 결정한다.

< 자료형 : 출처 위키백과 https://ko.wikipedia.org/wiki/%EC%9E%90%EB%A3%8C%ED%98%95 >

"자료형"은 컴퓨터 과학과 프로그래밍 언어에서 실수치, 정수, 불린 자료형 따위의 여러 종류의 데이터를 식별하는 분류라고 합니다. 조금 쉽게 그림으로 보면 다음과 같이 분류할 수 있겠습니다!

 

변수는 자신이 어떤 type인지 지정하는 "그릇"인 "자료형"을 지정해야 사용할 수 있습니다! 잠깐 저번시간의 코드를 보겠습니다.

// VarConst.java

public class VarConst{

	public static void main(String[] args){
		int x = 1;			// x는 정수 1, 처음 선언 시 정수자료형(int)를 명시
		int y = 3;			// x는 정수 3, 처음 선언 시 정수자료형(int)를 명시
		String name = "REDUCTO";	// name은 문자열, 처음 선언 시 문자열자료형(String)을 명시
        
       	 	//x="abc" 			// ERROR! x는 정수형이기 때문에 문자열 저장불가

		System.out.println(x);
		x = y;
		System.out.println(y);
		System.out.println(x);
		System.out.println(name);
	}

}

이 프로그램에서 사용하는 변수는 x / y // name입니다. 각각은 정수형 / 정수형 / 문자열형 자료형으로 선언(변수를 어떻게 코드에서 사용하겠다고 코드에 명시하는 것을 선언이라고 합니다.)되었습니다. 따라서 이 코드에서 다시 문자열로 선언하지 않는 이상 x="abc"같이 정수가 아닌 값을 대입(변수에 값을 변경하는것을 대입이라고 합니다.)하는것은 오류입니다.

 

그러면 JAVA의 자료형은 어떤 것들이 있을까요? JAVA자료형 분류는 아래의 그림과 같습니다!

기본형(Primitive Type)의 자료형은 논리 / 정수 / 실수 / 문자(1글자)를 나타내는 자료형입니다. 기본형의 특징은 다음과 같은 것들이 있습니다.

  • 소문자로 시작(boolean / int / char / float / double / long)
  • OS에 따라 자료형의 길이(표현범위)가 다르지 않음
  • null값을 가질 수 없음

기본형 자료의 세부적인 정보는 다음과 같습니다!

자료형 크기 표현범위 사용
byte 8bits -2^7 ~ 2^7-1 정수
short 16bits -2^15 ~ 2^15-1 정수
int 32bits -2^31 ~ 2^31-1 정수
long 64bits -2^63 ~ 2^63-1 정수
float 32bits -3.4*10^38 ~ 3.4*10^38 실수
double 64bits -1.7*10*308 ~ 1.7*10^308 실수
char 16bits 0 ~ 2^16-1 문자
boolean 1bit true / false 논리

참조형(Reference Type)은 기본형을 제외한 자료형입니다. 우리가 코드에서 사용한 String 등 기본형이 아닌 자료형을 모두 참 조형이라고 부릅니다.(char는 한 글자만을 저장하기에 "name"이라는 [문자열]을 저장하기 위해 String을 사용했습니다.) JAVA를 JAVA 답게 만드는 개념이며 지금 당장은 이해가 어렵더라도 아래와 같은 특징이 있습니다.

  • 대문자로 시작(String / Hashmap등)
  • java.lang.Object를 상속받아 생성된 자료형
  • null을 가질 수 있음

 

이번 시간에는 자료형에 대해서 알아보겠습니다! 모르는 단어가 나와 막막하게 느껴져도 오히려 배울게 많아졌다는 기대감으로 같이 끝까지 읽어주시면 좋겠습니다! 다음 시간에는 연산에 대해서 알아보도록 하겠습니다!