본문 바로가기
JAVA/기본 이론

3. 자료형(DataType)

by D.O.T 2024. 1. 2.

이전 포스트에서 변수를 설명했습니다.

자료형이란 변수에 값을 할당할 때, 어떤 값을 할당할 것인지? 미리 알려주는 것입니다.

 

변수 포스트를 잘 생각해 봅시다.

1. a = 10을 작성하고 바로 다음에 a = 22억이라고 작성해 봅시다.

2. Symbol Table에서 a의 주소가 0x0004라고 가정을 합시다.

3. 0x0008 주소에 이미 다른 값이 있다고 가정합시다.

4. 0x0004에 10을 저장할 때는 아무 문제가 없습니다.

5. 0x0004에 22억을 저장할 때는 문제가 발생합니다.

 

이유가 뭘까요?

컴퓨터에서 기본적인 정수는 4byte(32bit, 대략 21억)까지 표현을 하고 공간을 차지합니다.

a라는 변수가 0x0004, 0x0005, 0x0006, 0x0007의 공간을 차지하는 것이죠.

n비트를 표현할 때 2^(n-1)까지 표현

그런데 22억을 저장할 때는 4byte를 넘어갑니다. 0x0008의 공간까지 건드리게 되는 문제가 발생할 수 있죠.

만약 0x0008에 중요한 값이 들어 있다면 문제가 발생하게 되죠.

 

그래서 미리 공간을 확보하기 위해 자료형을 사용합니다.

 

PDT(Primitive Data Type) - 기본 자료형
데이터 타입 크기 종류 기본 값
byte 1byte 정수 0
short 2byte 정수 0
int 4byte 정수 0
long 8byte 정수 0L
float 4byte 실수 0.0f
double 8byte 실수 0.0d
char 2byte 문자 null
boolean 1byte 불린 false

자바에서는 unicode를 사용하기 때문에 char형이 2byte의 크기를 갖습니다.

 

우리는 이런 자료형을 통해 변수를 선언하고 할당하게 됩니다.

int myAge; // 선언

myAge = 25; // 할당

 

참고로 char는 'A'와 같은 하나의 문자만 표현할 수 있습니다.

Ace와 같은 하나의 문자열을 표현하기 위해서는 String이라는 자료형을 사용해야 하는데요.

String은 기본 자료형이 아니고 Java에서 직접 만든 자료형입니다. 이런 것을 User Define Data Type이라고 합니다.

기본 자료형 외 사용자에게 더욱 편리한 기능을 제공하는 것입니다. API(Application Programing Interface)라고도 하죠.

API에는 추후에 다룰 예정이고 Interface에 대한 글은 여기서 확인할 수 있습니다.

 

컴퓨터에서 Interface란?

먼저, Interface의 뜻은 상호 작용이라고 합니다. (Google 번역기) 상호 작용이라고 하면 A와 B가 서로 물건을 주고 받든, 대화를 하든 싸움을 하든(?) 두 개 이상의 무언가가 서로 무언가를 하는 것이

dev-dot.tistory.com

 

UDDT(User Define Data Type) - 사용자 정의 자료형

UDDT는 Reference Data Type (참조형) 이라고 부를 수도 있는데 클래스나 배열 등에서 사용되는 개념입니다.

나중에 더 자세히 다루겠지만 PDT(기본 자료형) 또는 또 다른 UDDT(사용자 정의 자료형)의 집합으로 이루어진 자료형입니다. 예를 들어 String은 문자열을 표현하는데 문자열은 하나의 문자들로 나눌 수 있습니다.

이 말은 char 자료형으로 String 자료형을 만들어 볼 수 있습니다.

java.base/java/lang/String.java
매개변수가 char 자료형임.

 

여러 PDT를 가지고 있는 String UDDT

 

UDDT는 Class를 공부하게 되면 조금 더 쉽게 알 수 있으므로 지금은 여기까지만 알아두면 될 것 같습니다.

 


이제, 우리는 PDT, UDDT, Variable, Assign을 알았습니다.

우리는 하나의 프로그램을 작성할 수 있습니다.

컴퓨터에 값을 저장하고 출력하는 것이죠.

출력에 대해서는 아직 작성하지 않았지만 기본적으로 맛은 봐야하니까

System.out.println(value); 로 자기소개를 출력해보면 자료형에 대해 더 자세히 알 수 있겠네요 

public static void main(String[] args) {	
    String name = "dot";
    int age = 25;
    char gender = 'M';
    boolean girlFriend = false;
    
    System.out.println("이름 : " + dot);
    System.out.println("나이 : " + age);
    System.out.println("성별 : " + gender);
    System.out.println("여자친구 여부 : " + girlFriend);
}

 

자료형에 대한 노션 정리입니다.

https://www.notion.so/24jihwan/295b00df286d4f3f92d72119afd997ee

 

자료형 | Notion

자료형의 종류 알아보기

24jihwan.notion.site

'JAVA > 기본 이론' 카테고리의 다른 글

7. 다차원 배열 (Multi Dimensional Array)  (1) 2024.02.10
6. 배열 (Array)  (1) 2024.02.10
5. 연산자(Operator)와 연산 순위  (1) 2024.02.10
2. 변수(Variable)와 할당(Assign)  (1) 2024.01.02
1. 자바 시작하기  (1) 2024.01.02